LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

[lvs-devel] Two patches for handling the synced connections

To: Simon Horman <horms@xxxxxxxxxxxx>
Subject: [lvs-devel] Two patches for handling the synced connections
Cc: Wensong Zhang <wensong@xxxxxxxxxxxx>, LVS Development mailing list <lvs-devel@xxxxxxxxxxxxxxxxxxxxxx>, jmack@xxxxxxxx, Julian Anastasov <ja@xxxxxx>, graeme@xxxxxxxxxxx
From: Rumen Bogdanovski <rumen@xxxxxxxxxxxx>
Date: Sun, 11 Nov 2007 23:47:02 +0200
Hi, 
I have been thinking about the best way to handle the 
synchronization created connections and I decided (since 
there was no comment on that) that the best way to do so 
is as they are locally created. The only difference is that
synced connections will have IP_VS_CONN_F_SYNC set. The 
reasons are:

1. If the sync connections are treated as inactive, on 
fail-over the task schedulers will use them with lower 
weight making the scheduling not quite adequate.

2. Introducing new counter for synced connection means 
that schedulers should be altered to take these connections
in to account. And the existing tools should be changed too 
in order to show the real connection status. 

3. No backward compatibility issues, no new data to be sent 
to the user space. All active connections will be listed as 
active and all inactive will be listed as inactive regardless
of the connection origin.

4. The previous patch I have sent several days ago makes it 
possible to distinguish the locally created from sync-created
connections via /proc/net/ip_vs_conn_sync.

5. It is less intrusive and much easier to implement.

6. Active connections are active no matter where they were created.
On fail-over they will load the new director the same way the local 
connections do. And their life cycle will be just the same as if they
were locally created. So why should they be treated differently? 
Any reason for that? I could not think of any.  

So I am sending again the patch that
implements /proc/net/ip_vs_conn_sync. And a new one that creates the
synced connections according to their 
real state allowing the backup director, in case of fail-over, to handle
them in more appropriate way, avoiding scheduling and compatibility
issues. Well In case somebody wants to know which connections are
created locally which are sync-created he is always welcome to look in 
/proc/net/ip_vs_conn_sync.

Any comments please!
Simon, if you are happy with this let me know and I will provide a brief
description and sign-off.

Regards, 
Rumen



On Wed, 2007-11-07 at 15:36 +0900, Simon Horman wrote:
> On Mon, Nov 05, 2007 at 05:25:16PM +0200, Rumen Bogdanovski wrote:
> > I was thinking about some cosmetics by using currently unused
> > connection flag IP_VS_CONN_F_SYNC and introducing dest.syncconns (sync
> > connection counter). This way we should introduce additional field in
> > /proc/net/ip_vs and make it show dest.syncconns in addition to
> > inactconns and activeconns.  Also a new field in /proc/net/ip_vs_conn
> > to designate whether it is a local or sync connection should be added.
> > IMHO this way it should be much nicer and more informative to the
> > user. However changing this will not be well accepted (I guess), so I
> > have other idea: to introduce /proc/net/ip_vs_sync and
> > /proc/net/ip_vs_conn_sync to show only syncconns the same way
> > /proc/net/ip_vs and /proc/net/ip_vs_conn does.  I can work on this in
> > my free time if one of the ideas is accepted.
> > 
> > Do you like the idea?  I am waiting for comments.
> 
> Hi,
> 
> yes, I like the idea. But for compatibility reasons I think that for
> compatibility reasons we will have to go with the /proc/net/ip_vs_sync
> and /proc/net/ip_vs_conn_sync version of the idea.
> 
LVS Development mailing list - lvs-devel@xxxxxxxxxxxxxxxxxxxxxx
Send requests to lvs-devel-request@xxxxxxxxxxxxxxxxxxxxxx
or go to http://lists.graemef.net/mailman/listinfo/lvs-devel
<Prev in Thread] Current Thread [Next in Thread>