From aeedc539ab699a76983242687cafc2e3946a4805 Mon Sep 17 00:00:00 2001 From: ArkadyKanevsky Date: Mon, 19 Oct 2015 09:49:12 -0500 Subject: [PATCH] DB Hygiene user story This a proposal for database hygiene for all openstack projects. Change-Id: I94c205c7a1bb8c43a32e4dc13ff37f8e6a3b666b --- user-stories/draft/db-hygiene.rst | 81 +++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 user-stories/draft/db-hygiene.rst diff --git a/user-stories/draft/db-hygiene.rst b/user-stories/draft/db-hygiene.rst new file mode 100644 index 0000000..a280719 --- /dev/null +++ b/user-stories/draft/db-hygiene.rst @@ -0,0 +1,81 @@ +Database cleanup of deleted object +============================================ + +*Problem description* +--------------------- +Each operator of an OpenStack cloud needs the ability to clean up the OpenStack +database of objects which have been deleted. Currently a new record is created in +the OpenStack database when an object (project, user, VM, network, volume, swift +object, etc.) is created. When an object is deleted its record in the database +remains but is marked as deleted. As an OpenStack cloud stays in operation over +time, the number of records in the database fills with deleted object records and +soon the database becomes too large. This can result in the database consuming +significant resources on the controller node(s) and impacting responsiveness of +the database, even bringing down controller(s). + +While a record for deletion of an object is needed for cloud governance it is +not a requirement for the database to retain this record. Thus, some tool is +needed for OpenStack operators to cleanup the database of records from deleted +objects. + +* As part of a PoC of an OpenStack cloud, an operator needs a tool to purge the +database of deleted records. This is needed in order to be able to rerun the same +test tool that would create objects every run as well as testing actual growth of +the database for operational conditions not OpenStack implementation artifacts. + +* As an operator of an OpenStack cloud I need an ability to remove records of +deleted objects from the database after storing those records for audit purposes. + +* As a cloud deployment engineer, I need to be able to re-run the same tests +(with same objects) in a repeatable manner so that I can have a high certainty +in the outcome of my proof of concept and cloud functionality. + +* As a cloud deployment engineer, I need only the appropriate records in my +database so that I can complete my upgrade in the allocated down time. + +Usage Scenarios Examples +------------------------ +TBD + +Opportunity/Justification +------------------------- +DB hygiene is required for handling OpenStack performance, operational and +upgrade issues. This ensures that historical records of deleted items are not +impacting operational performance and such deleted items are not polluted by +upgrades. + + +Related User Stories +-------------------- +Nova specs: +* https://review.openstack.org/#/c/184645/ +* https://review.openstack.org/#/c/184637/ +* https://review.openstack.org/#/c/137669/ + +Cinder blueprint: +* https://blueprints.launchpad.net/cinder/+spec/db-cleanup + +*Requirements* +-------------- +* Operator should be able to specify which policy to apply for deleted objects +* Operator should be able to specify which policy to apply for different tenants +and sub-tenants. +* At least two policies must be supported: Policy 1 - Archive the records in +other persistent storage for a specific interval duration; Policy 2 - Remove +the records from database permanently. + +*Gaps* +------ +None currently known. + +*Affected By* +------------- +None. + +*External References* +--------------------- +None. + +Glossary +-------- +None.