[Openais] Best solution for safe request / reply protocol

Mark Haverkamp markh at osdl.org
Mon Aug 21 09:56:45 PDT 2006


On Sat, 2006-08-19 at 10:47 -0500, Muni Bajpai wrote:
> yes there is no guarantee that the evt message will be delivered. There is a 
> guarantee that it will be delivered in order. So in essence if the message 
> is not delivered then you can be sure that no messages post this message 
> will be delivered either. 

The specification says that an event may be dropped and others following
may be delivered.  What is required is that the application is notified
that one or more events have been dropped. Check out paragraph 1 on page
14 of the sai-ais-evt-B.01.01 specification (Section 3.1.2).


> What that means is that if that message is not 
> delivered then a critical problem has happened and it will manifest itself 
> in the way of a configuration change i.e the node will drop out of the 
> cluster which tells you to start taking cleanup action.

This is not necessarily true.  If the application can not process
incoming events fast enough the event service can drop events to that
application as long as the application is notified.  This will not cause
a reconfiguration.  There are config file tweaks to increase the size of
the event delivery queue if applications are having a hard time keeping
up.


> 
> Another way .. is to checkpoint a counter that you increment every message 
> that is recieved on the server side and the client doesnt send the next 
> message until the counter its reading is updated by the server. (This is a 
> little wasteful) but it guarantees the result you are looking for.
> 
> Muni
> ----- Original Message ----- 
> From: "Fabien THOMAS" <fabien.thomas at netasq.com>
> To: <openais at lists.osdl.org>
> Sent: Friday, August 18, 2006 9:05 AM
> Subject: [Openais] Best solution for safe request / reply protocol
> 
> 
> I would like to do a simple application to remotely execute an action
> and wait for a result.
> 
> I've seen some different messaging API in openais (evs, evt, msg) and
> i would like to known what is the best method to do that.
> 
> the protocol will look likes that:
> 
> client:
> 
> open channel to <id>
> send request (here i would like to be sure the message is delivered
> but it seems that safe message is not implemented ?)
> wait for reply
> close channel
> 
> server:
> 
> create channel <id>
> loop:
> wait for request
> doit
> send reply
> 
> Maybe someone can help me to make the best choice.
> 
> Regards,
> Fabien
> _______________________________________________
> Openais mailing list
> Openais at lists.osdl.org
> https://lists.osdl.org/mailman/listinfo/openais 
> 
> _______________________________________________
> Openais mailing list
> Openais at lists.osdl.org
> https://lists.osdl.org/mailman/listinfo/openais
> 
-- 
Mark Haverkamp <markh at osdl.org>




More information about the Openais mailing list