Talk:Locality-Based Least-Connection Scheduling

From LVSKB
Revision as of 18:31, 15 September 2006 by Jkrzyszt (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Expiration algorithm

I find it usefull for understanding why subsequent connections to the same destination IP address may not follow the same path.

ServerNode[] is a list of maps from destination IP address to server;
C(ServerNode[]) is the current number of not NULL maps in the list;
Now is the current system time;
net.ipv4.vs.lblc_expiration is the sysctl parameter (default 24 hours).

Every 1 minute:

Count = C(ServerNode[]);
if (Count > 16384) then {
  for (dest_ip = 0.0.0.0;
       C(ServerNode[]) > min((Count-16384)*4/3, 8192);
       dest_ip++) {
    if (ServerNode[dest_ip].server is not NULL AND
        ServerNode[dest_ip].lastuse < Now - 6 minutes) then
      ServerNode[dest_ip].server = NULL;
  }
}

Every 30 minutes:

for (dest_ip = 0.0.0.0; dest_ip < 255.255.255.255; dest_ip++) {
   if (ServerNode[dest_ip].server is not NULL AND
       ServerNode[dest_ip].lastuse < Now - net.ipv4.vs.lblc_expiration) then
     ServerNode[dest_ip].server = NULL;
}

Please correct me if I am wrong.

Jkrzyszt 02:31, 16 September 2006 (CST)