As I described before, one of the reasons behind the waiting is to switch
primary nodes to prevent two simultaneous lock owners.

Consider the following scenario:
* Client node c1 acquired a lock L1 on node A
* Topology changes and primary node for L1 is now new joined node B
* Client node c2 wants to acquire lock L1 and sends lock request to B
* Node B successfully grants the lock to c2 because it does not know about
the previous lock
*  Two threads now hold the lock

There is a theoretical possibility of transferring lock ownership
information during rebalancing, but this opens up whole lot new race
conditions and failover difficulties.


2017-05-19 12:52 GMT+03:00 Дмитрий Рябов <somefire...@gmail.com>:

> May be let second node to finish join and enter the ring, but start
> rebalance after all lock will be released.
>
> 2017-05-19 12:30 GMT+03:00 ALEKSEY KUZNETSOV <alkuznetsov...@gmail.com>:
>
> > If we acquired a lock and a new node is joining cluster, should it wait
> for
> > lock release?
> > May be it could proceed joining ?
> > The question comes from my ticket
> > https://issues.apache.org/jira/browse/IGNITE-2671
> >
> > чт, 18 мая 2017 г. в 20:05, Alexey Goncharuk <alexey.goncha...@gmail.com
> >:
> >
> > > Hi Aleksey,
> > >
> > > The main purpose of this method is to wait for all ongoing updates
> > > (transactional and atomic), initiated on the previous topology version,
> > to
> > > finish to prevent inconsistencies during rebalancing and to prevent two
> > > different simultaneous owners of the same lock.
> > >
> > > We will be adding documentation pages on Apache Ignite wiki which will
> > > explain transactions mechanics in greater detail.
> > >
> > > Hope this helps,
> > > AG
> > >
> > > 2017-05-18 16:50 GMT+03:00 ALEKSEY KUZNETSOV <alkuznetsov...@gmail.com
> >:
> > >
> > > > Hi Igntrs!
> > > > What is the point of waiting partition release in the end of
> > > > GridDhtPartitionsExchangeFuture#init() method ?
> > > > In what scenarious do we need it ?
> > > > --
> > > >
> > > > *Best Regards,*
> > > >
> > > > *Kuznetsov Aleksey*
> > > >
> > >
> > --
> >
> > *Best Regards,*
> >
> > *Kuznetsov Aleksey*
> >
>

Reply via email to