TacoPleX implements some new approaches to load leveling and high availability. The typical highly available cluster has a single front-end machine that receives and distributes all new connections. Failure of this machine is covered for by a backup which turns on upon failure of the primary. Existing connections in the system may or may not be broken by the failover process. Sophisticated solutions share a routing table between primary and backup so that a minimum of connections are disrupted.
The TacoPleX system instead uses multiple front end machines all of which receive and distribute packets. The notion of a connection is ignored and no routing table is maintained. Packets are distributed to the server level based on a shared hash function. Routing based on hashing eliminates the need to maintain a common table across the server machines. It is still necessary for the parameters of the hash to remain synched between levelers, though. This is achieved through a simple and robust election algorithm with periodic rebroadcast of the current state by the elected leader.
Leveling and changes in server availability are achieved by manipulation of the parameters of the hash function. Changes in the function will disrupt at least some and at most all existing connections. This is an inevitable result of the hash approach. With services like HTTP, this disruption is relatively minor because transmission tends to occur in bursts rather than streams. The TacoPleX system is not recommended for use with streaming services.
Many leveling solutions allow for distribution of connections to geographically remote sites using packet rewriting. This capability is not available in TacoPleX. It is designed for use with local clusters. Leveler and server machines must share a common physical network wire for the system to operate.
User administration of the TacoPleX system is minimal. Server machines and virtual IPs can be added and removed from a cluster through a user-space administration program. Commands are propagated from one source (a leveler machine) throughout the entire system. The presence or absence of leveler machines is automatically detected.