Merge "Updating spec to reflect a few changes."

This commit is contained in:
Jenkins 2016-05-05 03:45:42 +00:00 committed by Gerrit Code Review
commit f75fd204de
1 changed files with 14 additions and 11 deletions

View File

@ -41,19 +41,23 @@ This will allow for the removal of the object expirer daemon.
Implementation Plan
-------------------
There are multiple parts to the implementation. The updating of the container
database to remove the expired objects and the removal of the object from disk.
The object table, in the container database, will have a 'expire_at'column added.
The expire_at column will be a timestamp that reflect when/if an object should
expire. When a container listing request is made objects whos 'expire_at' times
are before the request time will not be returned.
Step 1:
A expired table will be added to the container database. There will be a
'obj_row_id' and 'expired_at' column on the table. The 'obj_row_id' column will
correlate to the row_id for an object in the objects table. The 'expired_at'
column will be an integer timestamp of when the object expires.
The container replicator will remove the object rows from the container databases
when the expire_at and reclaim age have passed.
Once the container updater runs and updates that stats for the containers the
objects that are expired will no longer be considered in the bytes_used or the
object counts in the account database.
The container replicator will remove the object rows from objects table when
their corresponding 'expire_at' time in the expired table is before the start
time of the pass. There will be a trigger to delete row(s) in the 'expired'
table after the deletion of row(s) out of the 'objects' table. Once, the
removal of the expired objects are complete the container database will
be replicated.
Step 2:
The object auditor as it makes its pass will remove any expired objects.
When the object auditor inspects an object's metadata, if the X-Delete-At is
before the current time, the auditor will delete the object. Due to slow auditor
@ -61,7 +65,6 @@ passes, the cluster will have extra data until the objects get processed.
Rollout Plan
------------
When deploying this change the current expirer deamon can contiue to run until
all objects are removed from the '.expiring_objects' account. Once that is done
the deamon can be stopped.