Some notes on a high-performance Python application.

Heiko Wundram modelnine at modelnine.org
Wed Mar 26 13:31:42 EDT 2008


Am Mittwoch, 26. März 2008 17:33:43 schrieb John Nagle:
> ...
>
>     Using MySQL as a queueing engine across multiple servers is unusual,
> but it works well.  It has the nice feature that the queue ordering
> can be anything you can write in a SELECT statement. So we put "fair
> queueing" in the rating scheduler; multiple requests from the same IP
> address compete with each other, not with those from other IP addresses.
> So no one site can use up all the rating capacity.
>
> ...
>
>     Does anyone else architect their systems like this?

A Xen(tm) management system I've written at least shares this aspect in that 
the RPC subsystem for communication between the frontend and the backends is 
basically a (MySQL) database table which is regularily queried by all 
backends that work on VHosts to change the state (in the form of a command) 
according to what the user specifies in the (Web-)UI.

FWIW, the system is based on SQLObject and CherryPy, doing most of the 
parallel tasks threaded from a main process (because the largest part of the 
backends is dealing with I/O from subprocesses [waiting for them to 
complete]), which is different from what you do. CherryPy is also deployed 
with the threading server.

-- 

Heiko Wundram



More information about the Python-list mailing list