Added a new Dashboard Impact section to the Trove spec default document to track the UX changes for new features. Updated existing specs to have the section (so they pass py27). Change-Id: I8981aa8c577b46fea894dd531a98d283880ea9fc
2.6 KiB
Move to oslo_db
Replace the trove.db.sqlalchemy package with the oslo_db library.
Launchpad Blueprint: https://blueprints.launchpad.net/trove/+spec/move-to-oslo-db
Problem Description
The current code uses the outdated incubator package for database connectivity. The old package has some bugs such as not handling concurrent threads correctly. This is a good opportunity to migrate to the oslo_db library, replacing the trove.db.sqlalchemy package.
A similar move has been done by other OS projects such as nova1.
Proposed Change
oslo_db is a library that handles the common database connection and controls. Change the trove.db.sqlalchemy engine and session handling to use the oslo_db library. This transparently handles connections and sessions, and protects against mismanaged connections in Trove's threaded environment.
The only external effect will be the exposure of oslo_db configuration options.
Configuration
Add the configuration options for oslo_db to the [database] section2.
Database
The database connection is the only change. Data models and queries are not affected.
Public API
N/A
Public API Security
N/A
Python API
N/A
CLI (python-troveclient)
N/A
Internal API
N/A
Guest Agent
N/A
Alternatives
Determine the root cause of the database connection mismanagement3. Previous efforts were unsuccessful.
Dashboard Impact (UX)
TBD (section added after approval)
Implementation
Remove the engine and session management code and replace it with a facade from oslo_db.
Assignee(s)
Matthew Van Dijk
Milestones
Mitaka-1
Work Items
- A single task for code changes
- Update docs with the new configuration settings
Upgrade Implications
N/A
Dependencies
oslo_db
Testing
Do not break existing tests - especially the fake mode tests.
Documentation Impact
Describe the config variables that are in the database section.
References
Appendix
None