summaryrefslogtreecommitdiff
path: root/net/pen/DESCR
blob: 866200b66fa00938c97c733370d99c966ca7cafc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Pen is a load balancer for "simple" tcp based protocols such as http or
smtp.  It allows several servers to appear as one to the outside and
automatically detects servers that are down and distributes clients among
the available servers.  This gives high availability and scalable
performance.

  The load balancing algorithm keeps track of clients and will try to
send them back to the server they visited the last time.  The client
table has a number of slots (default 2048, settable through command-line
arguments).  When the table is full, the least recently used one will
be thrown out to make room for the new one.

  This is superior to a simple round-robin algorithm, which sends a client
that connects repeatedly to different servers.  Doing so breaks
applications that maintain state between connections in the server,
including most modern web applications.

  When pen detects that a server is unavailable, it scans for another
starting with the server after the most recently used one.  That way
we get load balancing and "fair" failover for free.