[Linux-ha-dev] Re: Flow control in heartbeat
gshi at ncsa.uiuc.edu
Mon Jul 12 10:22:15 MDT 2004
At 09:45 AM 7/11/2004 -0600, Alan Robertson wrote:
>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.
Do we have the goal to maximize the bandwidth besides flow control? How do we make sure that the memory usage is consistent with media usage, i.e. even the memory usage
is high, the media is still in low usage?
>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.
I guess we could assign each client a priority and only read those high priority traffic until we reach full-stop level.
>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.
That's what I thought control flow would come from. With spread and transis as conmmunication, is the internal control flow like a duplicate effort? Will this internal control work
as temporary? Will it become un-important when spread/transis is integrated into heartbeat?
More information about the Linux-HA-Dev