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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to