Best architecture for proxy?
andreww at datanet.ab.ca
Wed Jul 11 16:00:18 CEST 2007
On Jul 10, 8:19 pm, Steve Holden <s... at holdenweb.com> wrote:
> Bjoern Schliessmann wrote:
> > Andrew Warkentin wrote:
> >> I am going to write a general-purpose modular proxy in Python. It
> >> will consist of a simple core and several modules for things like
> >> filtering and caching. I am not sure whether it is better to use
> >> multithreading, or to use an event-driven networking library like
> >> Twisted or Medusa/ Asyncore. Which would be the better
> >> architecture to use?
> > I'd definitely use an event-driven approach with Twisted.
> > Generally, multithreading is less performant than multiplexing. High
> > performance servers mostly use a combination of both, though.
> Converselt I'd recommend Medusa - not necessarily because it's "better",
> but becuase I know it better. There's also a nice general-purpose proxy
> program (though I'd be surprised if Twisted didn't also have one).
Would an event-driven proxy be able to handle multiple connections
with large numbers of possibly CPU-bound filters? I use The
Proxomitron (and would like to write my own proxy that can use the
same filter sets, but follows the Unix philosophy) and some of the
filters appear to be CPU-bound, because they cause The Proxomitron to
hog the CPU (although that might just be a Proxomitron design flaw or
something). Wouldn't CPU-bound filters only allow one connection to be
filtered at a time? On the Medusa site, it said that an event-driven
architecture only works for I/O-bound programs.
More information about the Python-list