John Vines 2013-06-21, 22:13
Keith Turner 2013-06-21, 22:53
Nope, that is sufficient. That solves that mystery.
On Fri, Jun 21, 2013 at 6:53 PM, Keith Turner <[EMAIL PROTECTED]> wrote:
> I think this code is just to avoid race conditions between the master and
> The tserver will create a node X and then create an ephemeral node Y under
> X. Y is the lock. So the code helps avoid the following situation.
> * tserver creates X
> * master sees X has no children/locks and deletes X
> * tserver tries to create Y as a child of X and fails because X does not
> It seems like above situation may have caused some sort of problem, but I
> can not remember. So I think the delayed delete may have been added to
> avoid a problem. I can try to dig up tickets if you need more info.
> On Fri, Jun 21, 2013 at 6:13 PM, John Vines <[EMAIL PROTECTED]> wrote:
> > Eric probably knows the answer to this, but if anyone else can chime in
> > would be great.
> > LiveTServerSet is what is used to maintain the set of all functional
> > tservers the master is aware of. Part of the logic for it is when it
> > that a znode for a tserver (tserver lock) goes missing, it will mark is
> > lockless as well as reporting it as doomed to the master. The latter
> > has the master try to phase it out of everything, etc.
> > The lockless part of it though seems a little foreign, but it may be
> > because my branch has changed substantially around ZooCache. It appears
> > wait 10 minutes and if it is still lockless it will delete the lock
> > explicitly. But isn't the lock already gone? Or is the lock znode empty
> > nonexistant?