Seventh version of Python Director available

Anthony Baxter
Fri, 10 Oct 2003 16:01:01 +1000

I'm happy to announce the seventh release of Python Director.

Python Director is a pure python TCP load balancer. It takes 
inbound TCP connections and connects them to one of a number 
of backend servers. 

Despite the version numbering (which looks scary), this is quite
mature software - it's been in heavy use for well over 12 months,
balancing FastCGI and HTTP connections to our backend Zope 


* async i/o based, so much less overhead than fork/thread based
  balancers. Can use either twisted or python's standard asyncore 
  library (twisted is recommended, and asyncore support will be 
  removed in a future version).

* Multiple scheduling algorithms (random, round robin, leastconns,

* If a server fails to answer, it's removed from the pool - the client
  that failed to connect gets transparently failed over to a new host.

* xml based configuration file

* seperate management thread that periodically re-adds failed hosts if
  they've come back up.

* optional builtin webserver for admin

* webserver has methods suitable for both interactive and automated

Changes from 0.0.6 to 0.0.7

- You can specify a hostname of '*' to the listen directive for both
  the scheduler and the administrative interface to mean 'listen on
  all interfaces'. Considerably more obvious than ''. Thanks
  to Andrew Sydelko for the idea.
- New "leastconnsrr" scheduler - this is leastconns, with a roundrobin
  as well. Previously, leastconns would keep the list of hosts sorted,
  which often meant one system got beaten up pretty badly.
- Twisted backend group selection works again.
- The client address is now passed to the scheduler's getHost() method. 
  This allows the creation of "sticky" schedulers, where a client is 
  (by preference) sent to the same backend server. The factory function
  for schedulers will change to allow things like "roundrobin,sticky".

Anthony Baxter     <>
It's never too late to have a happy childhood.