No more soft delete

There was widespread agreement at the YVR summit not to soft-delete
any more things. To codify this, we should remove the SoftDeleteMixin
from NovaBase.

blueprint no-more-soft-delete

Change-Id: If9200823f472fd3e9c32a8e61f235539ec7de8a5
This commit is contained in:
Alexis Lee
2015-05-20 23:55:39 +01:00
parent 1d222ac16f
commit 2a0046c47d

View File

@@ -0,0 +1,141 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
===================
No more soft delete
===================
https://blueprints.launchpad.net/nova/+spec/no-more-soft-delete
There was widespread agreement at the YVR summit not to soft-delete any more
things. To codify this, we should remove the SoftDeleteMixin from NovaBase.
Problem description
===================
Soft deletion of rows imposes a management overhead to later delete or archive
those rows. It has also proved less necessary than initially imagined. We would
prefer additional soft-deletes were not added and so it does not make sense to
automatically inherit the `SoftDeleteMixin` when inheriting from NovaBase.
Use Cases
---------
As an operator, adding new soft deleted things means I need to extend my
manual cleanup to cover those things. If I don't, those tables will become
very slow to query.
As a developer, I don't want to tempt operators to read soft-deleted rows
directly. That risks turning the DB schema into an unofficial API.
As a developer/DBA, providing `deleted` and `deleted_at` columns on tables
which are not soft-deleted is confusing. One might also say it's confusing to
soft-delete from tables where deleted rows are never read.
Proposed change
===============
This spec proposes removing the `SoftDeleteMixin` from NovaBase and re-adding
it to all tables which currently inherit from NovaBase. The removal of
SoftDeleteMixin from those tables which don't need it will be left for future
work.
Alternatives
------------
We could not do this. This means we need an extra two columns on new tables
and it makes it slightly easier to start soft-deleting new tables.
Data model impact
-----------------
None.
REST API impact
---------------
None.
Security impact
---------------
None.
Notifications impact
--------------------
None.
Other end user impact
---------------------
None.
Performance Impact
------------------
None.
Other deployer impact
---------------------
None.
Developer impact
----------------
None.
Implementation
==============
Assignee(s)
-----------
Primary assignee:
alexisl
Other contributors:
None
Work Items
----------
* Remove `SoftDeleteMixin` from NovaBase.
* Add it to all models which inherited from NovaBase.
Dependencies
============
None.
Testing
=======
None.
Documentation Impact
====================
None.
References
==========
None.
History
=======
.. list-table:: Revisions
:header-rows: 1
* - Release Name
- Description
* - Liberty
- Introduced
* - Mitaka
- Simplified and re-proposed