[Spread-users] Current view number

John Lane Schultz jschultz at spreadconcepts.com
Thu Feb 27 14:38:50 EST 2014


> I know that message delivery occurs asynchronously for … But, what about … message delivery? I think that they will be synchornized with view change messages ?  

What I meant by "message delivery and view changes occur asynchronously” is that when a Spread / Extended Virtual Synchrony (EVS) client sends, it cannot know in which view their message will ultimately be delivered (and, therefore, to which clients it might be delivered).  View changes can happen and are ordered into the stream of delivered messages without any coordination with clients.

What I believe you are referring to is that with Spread an UNRELIABLE, RELIABLE, FIFO or CAUSAL message can be delivered in different views at different receivers while an AGREED or SAFE message can only be delivered in the same view at all receivers.

==================

>> then you may want to look into the flush layer of Spread that provides exactly such a service.
> I don't understand this statement. Can you explain me about it?

Some applications want a simpler Group Communication System model than what Spread provides and instead demand sending-view / Virtual Synchrony (VS) semantics.  With sending-view semantics, a client does know in which view its messages will be sent+delivered.  A client’s messages are sent and delivered in the view most recently delivered to it. Because of that, the sending client also knows that its messages can be delivered to at most the members of that view in that view.  View changes are explicitly coordinated with each client.  A view change at a client can only occur once the client affirmatively agrees to allow a view change.

Spread comes with an alternative API that we call the Flush Library that provides sending-view / VS semantics instead of Spread’s normal semantics.  The API for this service is contained in fl.h and is very similar looking to Spread’s API with some additional signaling between the client application and the library to affirmatively allow for view changes.  If you are interested, then the documentation can be found in your distribution in docs/flush/.

Cheers!

-----
John Lane Schultz
Spread Concepts LLC
Cell: 443 838 2200

On Feb 27, 2014, at 2:09 PM, Pablo Pessolani <ppessolani at hotmail.com> wrote:

Hi John:
 
I am working on a project with similarities to wackamole (a distributed resources allocation algorithm).
 
>> Or are you just marking messages so that they can be easily ignored if they are delivered in a different view than the one in which the client thought they were sent?
PAP: Yes, I am interesting to know the view version to discard messages outside the current view.
 
 
>>However, in EVS (Spread) semantics, message delivery and view changes occur asynchronously. That is, there is little ordering dependence between them. A message is not necessarily ordered and delivered in the view in which the client *thinks* it is sending. Several views might be installed between the time a client sends a message and it gets to delivered in EVS.
 
PAP:  I know that message delivery occurs asynchronously for 
• UNRELIABLE_MESS
• RELIABLE_MESS
• FIFO_MESS
• CAUSAL_MESS
But, what about.
• AGREED_MESS
• SAFE_MESS
message delivery? I think that they will be synchornized with view change messages ?  
 
>>> then you may want to look into the flush layer of Spread that provides exactly such a service.
PAP: I don't understand this statement. Can you explain me about it?
 
Thanks John.
PAP
 
_______________________________________________
Spread-users mailing list
Spread-users at lists.spread.org
http://lists.spread.org/mailman/listinfo/spread-users




More information about the Spread-users mailing list