[Openais] flow control and merge recovery

Steven Dake sdake at mvista.com
Wed Sep 22 12:04:17 PDT 2004


On Wed, 2004-09-22 at 09:02, Mark Haverkamp wrote:
> On Fri, 2004-09-17 at 13:24, Steven Dake wrote:
> > Mark & Sakai-san,
> > 
> > I have considered what happens during a merge when alot of data needs to
> > be synchronized.  Right now, the gmi_mcast will eventually fail to queue
> > messages because it runs out of buffer space.  (after 173 small
> > messages, I think)
> > 
> > I was thinking to solve this to add a mechanism to queue a token
> > callback.  The callback would be called during token posession after the
> > current pending messages are transmitted.  Then remaining recovery
> > efforts could be done when the callback is called.  If the recovery is
> > still not complete, the token callback could be requeued for the
> > remaining work until all work is completed.  
> > 
> > This would allow recovery to be done on every rotation of the token,
> > until recovery is complete.  I think this solves this particular
> > problem.  Does that mechanism work for the event service and AMF?  Would
> > you be able to keep track of the state to synchronize in such a fashion
> > as to work on the syncronization multiple times?
> > 
> > I can't think of any other solutions.
> 
> I have been thinking about how to do this.  So far, I had considered
> using the plug support and sending one message at a time.  So, when I
> needed to mcast a lot of messages for a recovery, I'd send them out one
> at a time, when I received my own message, I'd send the next.  Once all
> the messages had been sent, I'd clear the plug.  I haven't had a chance
> to test this out yet (I see that you just got the plug support checked
> in).  Anyway, I suppose that I could do something similar with the token
> callback too.
> 

This will work.  The performance wont be maximized, though, because it
will take 1 token rotation to send each message.  If you have 50000
events, thats alot of token rotations (50000 token rotations) :) 
Whereas, if you max out the transmit window (20 small messages) there
will be 2500 token rotations instead.

Regards
-steve

> Mark.
> 
> 
> > 
> > Thanks
> > -steve
> > 
> > 
> > ______________________________________________________________________
> > _______________________________________________
> > Openais mailing list
> > Openais at lists.osdl.org
> > http://lists.osdl.org/mailman/listinfo/openais




More information about the Openais mailing list