On Tue, May 15, 2012 at 03:01:46PM +0800, Yunkai Zhang wrote: > With a second thought on this patch: > https://mail-attachment.googleusercontent.com/attachment/u/0/?ui=2&ik=4a47af2829&view=att&th=1374cd782bf1a84a&attid=0&disp=inline&safe=1&zw&saduie=AG9B_P_WkgHa4wEYljmyBoplbIV_&sadet=1337064897009&sads=1zqvBm3krrhYKhyRnQOuHJT3znY > > I think your solution have changed too more things: a lot of > function's prototype. But with my solution, they are not necessary. We > should not introduce difficult solution just because it could let you > not need to rebase them. I don't think your patch actually helps fixing the join race - the cluster information is still not updated before sending the join response on the master. That beein said I like your changes anyway, as they resuce the latency of updating the cluster information for all other cases. Another thing I noticed: I don't think it's actually nessecary to let the cluster drivers call update_cluster_info and update_epoch_info directly, it should be perfectly fine to call them from inside sd_join_handler and sd_leave_handler, and thus keep the interface for the cluster drivers simpler. That also means the local driver gets updated automatically, which was missing in your patch. |