Add tpool proxy wrapper for DB-API calls

Registered by Viktor Serhieiev on 2014-04-30

Current blueprint tracks the need for the new module, with notes to update nova and cinder
 - it should just be about restoring the one missing option - CONF.database.tpool. This option enables the experimental usage of eventlet thread pooling for all DB API calls.

This was removed from oslo.db in patch [1] and we have no intentions to restore it there. oslo.db should not provide tpool implementation for the very same reason sqlalchemy does not provide one. From the point of view of oslo.db API we neither care whether you use OS threads, green threads, callbacks, processes or anything else for doing concurrency, nor we can make any assumptions about that. Also we don't want to force people to have eventlet as a runtime or even an install time dependency.

On another hand, it's a config option, and some people might be using it, so we can’t just remove it from OpenStack projects without breaking backwards compatibility.

Nova currently uses tpool.Proxy (eventlet implementation of the wrapper we used to provide in oslo.db) by the means of a helper class. It makes sense to put this code into incubator, so that it could be reused by other projects.

[1] https://review.openstack.org/#/c/60031/ (Remove eventlet tpool from common db.api)

Blueprint information

Status:
Complete
Approver:
Doug Hellmann
Priority:
High
Drafter:
Viktor Serhieiev
Direction:
Approved
Assignee:
Andrey Kurilin
Definition:
Approved
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon juno-2
Started by
Andrey Kurilin on 2014-06-02
Completed by
Andrey Kurilin on 2014-06-12

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/add-tpool-proxy-wrapper,n,z

Addressed by: https://review.openstack.org/96467
    Add eventlet.tpool.Proxy for DB API calls

Addressed by: https://review.openstack.org/96468
    Add add-tpool-proxy-wrapper spec

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.