Add thread pool so MySQL calls don't block the whole process

Registered by Russell Bryant

Add eventlet db_pool use for mysql

This adds the use of eventlet's db_pool module so that we can make mysql
calls without blocking the whole process.

New config options are introduced:

sql_dbpool_enable -- Enables the use of eventlet's db_pool
sql_min_pool_size -- Set the minimum number of SQL connections

The default for sql_dbpool_enable is False for now, so there is
no forced behavior changes for those using mysql. sql_min_pool_size
is defaulted to 1 to match behavior if not using db_pool.

Adds a new test module for our sqlalchemy code, testing this new option
as much as is possible without requiring mysql server to be running.

DocImpact

Change-Id: I99833f447df05c1beba5a3925b201dfccca72cae

Blueprint information

Status:
Complete
Approver:
Russell Bryant
Priority:
High
Drafter:
None
Direction:
Approved
Assignee:
Chris Behrens
Definition:
Approved
Series goal:
Accepted for grizzly
Implementation:
Implemented
Milestone target:
milestone icon 2013.1
Started by
Russell Bryant
Completed by
Russell Bryant

Related branches

Sprints

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.