[Twisted-web] Multithread SSL

Michal Pasternak michal.dtz at gmail.com
Thu Jun 25 01:14:40 EDT 2009


What about ampoule, https://launchpad.net/ampoule , can you check it?

-- 
m


2009/6/24 lasizoillo <lasizoillo at gmail.com>

> 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.
>
> Regargs,
>
> Javi
>
> > Yann.
> >
>
>
>
> > On Wed, Jun 24, 2009 at 21:08, Duncan M.
> > McGreggor<duncan.mcgreggor at gmail.com> wrote:
> >> Yann Pomarede wrote:
> >>> Hello,
> >>>
> >>> I used Twisted to write some kind of proxy and it's working great,
> >>> it's so easy to develop and understand.
> >>>
> >>> But I have a problem. I use SSL (on both side of this app) and the
> >>> bandwidth available is limited to the power of one of my CPU due to
> >>> the high cost of the SSL encryption.
> >>> I would like to use both core of my CPU to increase the bandwidth of
> >>> this application but it does not seem easy to do.
> >>>
> >>> # Here is the server definition in myapp.tac
> >>> from twisted.application import internet, service
> >>> application = service.Application('MyApp', uid=1001, gid=1001)
> >>> internet.SSLServer(80, serverFactory, MySSLContext(), 50,
> >>>
> 'xxx.xxx.xxx.xxx').setServiceParent(service.IServiceCollection(application))
> >>>
> >>> # And here the clients connections
> >>> from twisted.internet import reactor, ssl
> >>> mySSLContext = ssl.ClientContextFactory()
> >>> mySSLContext.method = SSL.SSLv23_METHOD
> >>> reactor.connectSSL(self.HOST, self.PORT, self, mySSLContext)
> >>>
> >>> Does anyone already have this kind of problem? Is there an easy way to
> >>> multithread the SSL encryption part?
> >>
> >>
> >> You could run two instances and load balance them...
> >>
> >> d
> >>
> >> _______________________________________________
> >> Twisted-web mailing list
> >> Twisted-web at twistedmatrix.com
> >> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
> >>
> >>
> >
> > _______________________________________________
> > Twisted-web mailing list
> > Twisted-web at twistedmatrix.com
> > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
> >
>
> _______________________________________________
> Twisted-web mailing list
> Twisted-web at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-web/attachments/20090625/0698c918/attachment-0001.htm 


More information about the Twisted-web mailing list