[openstack-dev] [oslo.db] PyMySQL review

Vishvananda Ishaya vishvananda at gmail.com
Thu Jan 29 00:42:30 UTC 2015


On Jan 28, 2015, at 4:03 PM, Doug Hellmann <doug at doughellmann.com> wrote:

> 
> 
> On Wed, Jan 28, 2015, at 06:50 PM, Johannes Erdfelt wrote:
>> On Wed, Jan 28, 2015, Clint Byrum <clint at fewbar.com> wrote:
>>> As is often the case with threading, a reason to avoid using it is
>>> that libraries often aren't able or willing to assert thread safety.
>>> 
>>> That said, one way to fix that, is to fix those libraries that we do
>>> want to use, to be thread safe. :)
>> 
>> I floated this idea across some coworkers recently and they brought up a
>> similar concern, which is concurrency in general, both within our code
>> and dependencies.
>> 
>> I can't find many places in Nova (at least) that are concurrent in the
>> sense that one object will be used by multiple threads. nova-scheduler
>> is likely one place. nova-compute would likely be easy to fix if there
>> are any problems.
>> 
>> That said, I think the only way to know for sure is to try it out and
>> see. I'm going to hack up a proof of concept and see how difficult this
>> will be.
> 
> I hope someone who was around at the time will chime in with more detail
> about why green threads were deemed better than regular threads, and I
> look forward to seeing your analysis of a change. There is already a
> thread-based executor in oslo.messaging, which *should* be usable in the
> applications when you remove eventlet.

Threading was never really considered. The initial version tried to get a
working api server up as quickly as possible and it used tonado. This was
quickly replaced with twisted since tornado was really new at the time and
had bugs. We then switched to eventlet when swift joined the party so we
didn’t have multiple concurrency stacks.

By the time someone came up with the idea of using different concurrency
models for the api server and the backend services, we were already pretty
far down the greenthread path.

Vish

> 
> Doug
> 
>> 
>> JE
>> 
>> 
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list