[Openstack] [Swift] Object expiration vs DELETE

Shrinand Javadekar shrinand at maginatics.com
Thu Oct 10 03:28:08 UTC 2013


Objects in a swift container can be deleted by either explicitly deleting
them or by setting a expiry timestamp on them. Is there a performance
difference between the two? For example, when I want to delete an object,
instead of deleting it, can I simply set the X-Delete-After attribute of
that object to 0? Is one faster than the other?

My guess is that setting the object expiry timestamp may be faster since
that would only involve changing the xattrs of the object inode. Delete
will require creation of a new version of the object, truncating it to a 0
byte file and renaming it to change the extension to ".ts". Seems like less
work is done when object expiration is set.

To try this out, I tried setting the X-Delete-After attribute using the
swift command line client:

$ swift post -m X-Delete-After: 1 <container-name> <object-name>

After I did this, when I stat the object, I see the attribute "Meta
X-Delete-After: 1". However, the object never got deleted. Any idea what
I'm doing wrong?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20131009/af303bfc/attachment.html>

More information about the Openstack mailing list