GLB is a user-space TCP load balancer similar to Pen. It lacks most advanced Pen features, as the aim was to make a user-space TCP proxy that is as fast as possible. It can utilize multiple CPU cores. A list of destinations can be adjusted in runtime. Destination "draining" is supported. It supports "least connected", "round-robin", "random", and "source tracking" balancing policies.
|Tags||Clustering/Distributed Networks Networking|
Release Notes: This release fixes broken destination failover (which didn't manifest on Ubuntu and so was present in many previous releases). It also adds a -l|--linger option to disable socket lingering on close() and must be buildable on FreeBSD.
Release Notes: This is a major feature and bugfix release. It has an optional watchdog module that can monitor destinations using custom service-specific scripts and update the routing table accordingly. It also can automatically discover newly added nodes in a Galera cluster and take them into use. There is a GLB_OPTIONS environment variable to allow configuration of libglb using the same command line options as for glbd. libglb initialization was not thread safe, and failed for applications that opened several connections simultaneously (e.g. sysbench); this has been fixed. A number of issues reported by valgrind have been fixed.
Release Notes: New in this release are a "single" balancing policy where all connections are directed to a single destination chosen by highest weight, a --top option that forces balancing only between the destinations with the highest weight, and a SO_KEEPALIVE option on destination connections (default: on) for timely detection of the destination failure.
Release Notes: This is a rather major feature release. It adds support for asynchronous connects (default; can be disabled), a more intuitive weighting algorithm (where weight 100 means that destination will receive at least 99 connections before another destination with weight 1 is considered), and a better connect() compliance in libglb (more applications should work now).
Release Notes: This release fixes division by 0 from the 0.9.0 beta. The main highlight is the introduction of libglb.so, which can add balancing capability to any Linux application by overloading the libc connect() call in runtime, providing direct connections from client to server. No application recompilation or relinking is needed. This release adds a "round-robin" balancing policy.