[Twisted-web] Multithread SSL

Christopher Armstrong radix at twistedmatrix.com
Wed Jun 24 16:05:16 EDT 2009


On Wed, Jun 24, 2009 at 4:00 PM, lasizoillo<lasizoillo at gmail.com> wrote:
> 2009/6/24 Yann Pomarede <yann.pomarede_twisted at gadz.org>:
>> Thanks for your reply.
>> I already thought about that but I'll have other problems if I do so:
>> - I need some variables to be common between the instances (Maybe it's
>> not so difficult with RPC or a DB or shared memory).
> If you need full ACI (ACID without durability) this can be a performance issue.
>
>> - I also need to keep a pool of all the outgoing the connections (to
>> perform some real time stats and to limit the number of connection per
>> user)
>>
> The load balancer can limit number of connections (without decipher
> ssl) or agregate real time stats from web servers (for easier
> management). You can upgrade code in your web app without lost service
> too ;-)
>
>> But if I do not have other choices, it's certainly what I'll have to do...
>>
>
> Threads are not  the solution. Python have a GIL (Global Inter-Lock)
> [1] and don't use multicore facilities. I don't know if you can do
> multiprocessing with twisted. A load balancer sound more easy (and
> maybe more horizontal scalable).
>
> [1] http://www.dabeaz.com/python/GIL.pdf
>
> Excuse my poor english.


A little bit of knowledge...

Threads are indeed a possibility, because OpenSSL would be the thing
doing the SSL work, and given that you use OpenSSL via a C extension,
the C extension can release the GIL.


-- 
Christopher Armstrong
http://radix.twistedmatrix.com/
http://planet-if.com/
http://canonical.com/



More information about the Twisted-web mailing list