[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ha-dev
Subject:    [Linux-ha-dev] Flow control in heartbeat
From:       Alan Robertson <alanr () unix ! sh>
Date:       2004-07-11 15:45:20
Message-ID: 40F16090.7090504 () unix ! sh
[Download RAW message or body]

Hi Goushun,

I think it's important to think about how to add flow control to heartbeat 
internally.  I woke up thinking about it this morning ;-).

At the moment, I'm not so worried about end-to-end flow control, but more 
about just client->media flow control.

The basic idea is that we should implement some kind of flow control scheme 
  that can stop reading packets from client processes when the amount of 
memory consumed gets over some kind of a threshold.

In an ideal world, we would have three levels of flow control:

	full-stop	don't read from any client
	part-stop	read from those clients which aren't sending us
			lots of packets
	full-open	read all packets from everyone

And, the way to determine which mode we're in is by looking at the 
downstream readers, and how full their output queues are after queueing the 
latest packet to it.

As the output packet queues reach various levels, then the various levels 
of flow control are changed correspondingly.

I'm not quite sure how to distinguish which clients should be classified as 
"low traffic" clients, and which are "high-traffic" clients.  But, I'm sure 
some kind of heuristic could be created to make this distinction.

Of course, something which does full end-to-end flow control would be 
ideal, but if we add "spread"  or "transis" as a communications method, 
then this will happen naturally.

-- 
     Alan Robertson <alanr@unix.sh>

"Openness is the foundation and preservative of friendship...  Let me claim 
from you at all times your undisguised opinions." - William Wilberforce

_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic