txLoadBalancer schedulers
--------------------------

The scheduler controls how client hits are distributed amongst the
backend servers. They're typically a very small piece of code -
see the file pdschedulers.py in the package for the current
schedulers.

Current schedulers
==================

rand (random)

  For each hit, randomly choose from available servers

roundr (roundrobin)

  Distribute hits in a round-robin fashion; so for three servers A, B, C
  hits would go A B C A B C A B C ...

leastc (leastconns)

  Send the hit to the backend server with the least number of current
  connections. If multiple machines have the same number of open
  connections, send to the least recently used.

weightr (weighted random)

  The hit hos a higher likelihood of being sent to a backend server with a
  greater weight value associated with it. No additional logic is performed
  (such as checking for current connections, etc.).

  Note that teh weighted scheduler has to do a lot more work (more method
  calls) than the other algorithms, so it will be significantly less
  performant.


Future work
===========

The following are not new scheduler types, but options for the existing
schedulers.

sticky

  Prefer the same server address for a given client address. Useful
  when the backend servers have some form of per-client caching.

weighted

  Explicitly provide weighting for different servers. E.g. if the
  default weighting is 1, then a server with a weighting of 0.5 will
  only receive half as many hits as the default.

