Hi,
Draft-06 section 9.4 describes how a peer (JP) join the overlay. From the admitting peer (AP) point of view, it is a two-phase process:
Phase-1: AP receives the JOIN request from JP and replies. Then AP send a series of STORE to to JP to forward resources that will belong to JP.
Phase-2: When the last STORE from AP to JP is acknowledged by JP, AP can now internally take JP as its predecessor and send a UPDATE indicates just that.
The problem is what if two peers X and Y happen to join the overlay via AP at the same time, and their two-phase admit on the AP side interleaved like this:
Phase-1-for-X
Phase-1-for-Y
Phase-2-for-Y
Phase-2-for-X
If their Chord ring positions are X < Y < AP, Y will join successfully, but AP might have incorrectly forwarded to X some of the resources that should have belong to Y. Also, at Phase-2-for-X, AP will discover that X is no longer AP's immediate predecessor (Y is), so AP should not admit X at all.
What should AP do?
If AP still send the UPDATE to X which shows Y is now X's immediate sucessor, then X should regard the JOIN failed. X will then try to attach to Y and JOIN via Y. Have I answer my own question? :)
--Michael
_______________________________________________ P2PSIP mailing list [email protected] https://www.ietf.org/mailman/listinfo/p2psip
