Bug 849753 - UFO swift object versioning
Summary: UFO swift object versioning
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Gluster Storage
Classification: Red Hat Storage
Component: gluster-swift
Version: 2.0
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: ---
: ---
Assignee: crisbud@redhat.com
QA Contact: pushpesh sharma
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-08-20 19:05 UTC by Kaleb KEITHLEY
Modified: 2014-08-04 22:30 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-05-26 06:49:44 UTC
Embargoed:


Attachments (Terms of Use)

Description Kaleb KEITHLEY 2012-08-20 19:05:51 UTC
Description of problem:

umbrella BZ for RHS 2.1

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 2 Kaleb KEITHLEY 2012-09-05 17:53:00 UTC
http://docs.openstack.org/developer/swift/overview_object_versioning.html

Object versioning in swift is implemented by setting a flag on the container to tell swift to version all objects in the container. The flag is the X-Versions-Location header on the container, and its value is the container where the versions are stored. It is recommended to use a different X-Versions-Location container for each container that is being versioned.

When data is PUT into a versioned container (a container with the versioning flag turned on), the existing data in the file is redirected to a new object and the data in the PUT request is saved as the data for the versioned object. The new object name (for the previous version) is <versions_container>/<length><object_name>/<timestamp>, where length is the 3-character zero-padded hexidecimal length of the <object_name> and <timestamp> is the timestamp of when the previous version was created.

A GET to a versioned object will return the current version of the object without having to do any request redirects or metadata lookups.

A POST to a versioned object will update the object metadata as normal, but will not create a new version of the object. In other words, new versions are only created when the content of the object changes.

A DELETE to a versioned object will only remove the current version of the object. If you have 5 total versions of the object, you must delete the object 5 times to completely remove the object.

Note: A large object manifest file cannot be versioned, but a large object manifest may point to versioned segments.

Comment 3 Luis Pabón 2013-07-12 18:52:59 UTC
Need to confirm status of this bug with current RHS2.1 code.

Comment 4 Luis Pabón 2013-07-17 01:00:59 UTC
RHS 2.0 UFO Bugs are being set to low priority.

Comment 5 Prashanth Pai 2014-02-05 15:41:31 UTC
This works. Please close.

Comment 6 Prashanth Pai 2014-02-06 05:15:26 UTC
This works out of the box. I followed the guide here: http://docs.openstack.org/developer/swift/overview_object_versioning.html

Hence, there are no code changes needed. However, we may have to document this upstream and downstream that object versioning is supported and how one can enable it and use it.

Have tested this in master branch only.

Comment 7 crisbud@redhat.com 2014-02-06 05:17:03 UTC
Needs a documentation bug for later releases. Will file one after QE verifies it.

Comment 8 pushpesh sharma 2014-05-08 08:07:15 UTC
This works with RHS2.1 onwards.Tests are also there in functional test suite. Marking it as verified.

Comment 9 Prashanth Pai 2014-05-26 06:49:44 UTC
This bug has been fixed in Corbett.


Note You need to log in before you can comment on or make changes to this bug.