Merge "Updating spec to reflect a few changes."
This commit is contained in:
commit
f75fd204de
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue