On 6/1/09 3:00 PM, Manik Surtani wrote:
I believe the problem is that C discards messages before its view is
installed. A & B could receive this view and send messages to C,
which C will not see. Initially we thought FLUSH will work around
this problem, and while it reduces the window of occurence, the
problem still exists since there is a race between A & B receiving
unblock() and then broadcasting queued messages, and C receiving these
queued messages and receiving unblock().
One solution which Mircea proposed is for FLUSH to queue messages
received during a blocked state, so that this race condition on C is
removed. However it would be better to do this without FLUSH, for C
to queue messages received between joining and its view being installed.
In another
words you want a solution in JGroups, huh :)? I am not sure
how this could be done without tagging each message with a view id....
Bela?