Scaling Internet services by dynamic allocation of connections
German S. Goldszmidt, G. Hunt
IM 1999
ShockAbsorber is a software router of TCP connections that supports load sharing across multiple TCP servers that share a set of virtual IP addresses. It consists of the Executor, a O/S kernel extension that supports fast IP packet forwarding, and a user level Manager process that controls it. The Manager implements a novel dynamic load-sharing algorithm for allocation of TCP connections among servers according to their real-time load and responsiveness. This algorithm produces weights that are used by the Executor to quickly select a server for each new connection request. The Executor forwards client TCP packets to the servers without performing any TCP/IP header translations. Outgoing server-to-client packets are not handled by ShockAbsorber and can follow a separate network route to the clients. Depending on the workload traffic, the performance benefit of this half-connection method can be significant. Prototypes of ShockAbsorber were used to scale up several large and high-load Internet sites serving millions of TCP connections per hour.
German S. Goldszmidt, G. Hunt
IM 1999
German S. Goldszmidt
NOMS 1998
A. Iyengar, Edward A. MacNair, et al.
GLOBECOM 1997
German S. Goldszmidt, S. Katz, et al.
ACM SIGPLAN Notices