← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1699973] [NEW] After a static large object (SLO) is uploaded with a manifest file, if the same object is uploaded again with a manifest, the upload process (PUT request) will be executed for a second time.

 

Public bug reported:

As the same object is already uploaded, PUT requests are not required for the second time onwards as this will only increase the overhead.
Process flow from the second time onwards:
1. HEAD request to check the existence of the object being uploaded and its properties (header information) (HTTP status code 200 is returned.)
2. GET request to get the manifest file.
3. A series of HEAD requests for the newly made container where the segments are uploaded in the prior request.
4. PUT request to upload segments and manifest file.

As a result of 4, because the uploaded information is exactly the same
as that of the previous upload, PUT requests need not be made again.

Suggested Solution:
Changes must be done in design to add private method in file /swift/account/server.py that will be called from GET method of same file and implement a check that would prevent duplicate upload if the information that GET request retrieves is same as the already uploaded object. Also changes are required in _update_or_create() method of /swift/container/server.py to prevent duplicate upload.

** Affects: swift
     Importance: Undecided
         Status: New

** Description changed:

  As the same object is already uploaded, PUT requests are not required for the second time onwards as this will only increase the overhead.
  Process flow from the second time onwards:
  1. HEAD request to check the existence of the object being uploaded and its properties (header information) (HTTP status code 200 is returned.)
  2. GET request to get the manifest file.
  3. A series of HEAD requests for the newly made container where the segments are uploaded in the prior request.
  4. PUT request to upload segments and manifest file.
  
  As a result of 4, because the uploaded information is exactly the same
- as that of the previous upload, PUT requests need not be made again
+ as that of the previous upload, PUT requests need not be made again.
+ 
+ Suggested Solution:
+ Changes must be done in design to add private method in file /swift/account/server.py that will be called from GET method of same file and implement a check that would prevent duplicate upload if the information that GET request retrieves is same as the already uploaded object. Also changes are required in _update_or_create() method of /swift/container/server.py to prevent duplicate upload.

** Project changed: glance => swift

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Glance.
https://bugs.launchpad.net/bugs/1699973

Title:
  After a static large object (SLO) is uploaded with a manifest file, if
  the same object is uploaded again with a manifest, the upload process
  (PUT request) will be executed for a second time.

Status in OpenStack Object Storage (swift):
  New

Bug description:
  As the same object is already uploaded, PUT requests are not required for the second time onwards as this will only increase the overhead.
  Process flow from the second time onwards:
  1. HEAD request to check the existence of the object being uploaded and its properties (header information) (HTTP status code 200 is returned.)
  2. GET request to get the manifest file.
  3. A series of HEAD requests for the newly made container where the segments are uploaded in the prior request.
  4. PUT request to upload segments and manifest file.

  As a result of 4, because the uploaded information is exactly the same
  as that of the previous upload, PUT requests need not be made again.

  Suggested Solution:
  Changes must be done in design to add private method in file /swift/account/server.py that will be called from GET method of same file and implement a check that would prevent duplicate upload if the information that GET request retrieves is same as the already uploaded object. Also changes are required in _update_or_create() method of /swift/container/server.py to prevent duplicate upload.

To manage notifications about this bug go to:
https://bugs.launchpad.net/swift/+bug/1699973/+subscriptions