Re: About the downlist selection algorithm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jason,

> Hi All,

During code study, I have a question about the  downlist selection
algorithm in cpg. What is the driving factor of this global downlist
selection algorithm? Why not simply use downlist respectively? for
example, lets say after two clusters {A,B} and {C,D} are both splited,
node A and node C trying to merge a new cluster {A,C}. In this
situation, if both A and C choose downlist respectivel, thus, node A
chooses downlist {B}, node C chooses downlist {D}, then, both A and C
can remove left members info correctly. But if node C chooses downlist
sent from node A(as the current downlist selection algorithm), it will
not remove the left member(node D for this example) until it calls
joinlist_remove_zombie_pi_entries() which seems is not really for this
purpose, right?

Please help to understand this algorithm, your help will be appreciate!


Honestly, probably nobody understands this algorithm. It is overcomplicated. Main idea was to have same membership change on every node... sadly it is simply impossible to achieve (node A and B creates membership. Which view (node A sees node B as joining, node B sees node A as joining) is right?). There is kind of heuristics, but ... as you said, at the end of the day, joinlist_remove_zombie_pi_entries is the one who creates real membership.

Complete removal of downlist and use only joinlist is one of top priority TODO tasks for 3.0. But for now, everything work as it should, so it's better to not to touch it (golden rule of engineering ;) )

Regards,
  Honza

_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss




[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux