On 11/24/2014 10:43 AM, Mike Bayer wrote:
On Nov 24, 2014, at 9:23 AM, Adam Young <ayo...@redhat.com> wrote:
For pieces such as the Nova compute that talk almost exclusively on
the Queue, we should work to remove Monkey patching and use a clear
programming model.  If we can do that within the context of
Eventlet, great.  If we need to replace Eventlet with a different
model, it will be painful, but should be done.  What is most
important is that we avoid doing hacks like we've had to do with
calls to Memcached and monkeypatching threading.

Nova compute does a lot of relational database access and I’ve yet to
see an explicit-async-compatible DBAPI other than psycopg2’s and
Twisted abdbapi.   Twisted adbapi appears just to throw regular
DBAPIs into a thread pool in any case (see
http://twistedmatrix.com/trac/browser/trunk/twisted/enterprise/adbapi.py),
so given that awkwardness and lack of real async, if eventlet is
dropped it would be best to use a thread pool for database-related
methods directly.

Hi Mike,

Note that nova-compute does not do any direct database queries. All database reads and writes actually occur over RPC APIs, via the conductor, either directly over the conductor RPC API or indirectly via nova.objects.

For the nova-api and nova-conductor services, however, yes, there is direct-to-database communication that occurs, though the goal is to have only the nova-conductor service eventually be the only service that directly communicates with the database.

Best,
-jay



_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to