Story #9188

[Keep] Add If-Match to Azure SDK during SetBlobMetadata

Added by Radhika Chippada over 5 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Radhika Chippada
Category:
-
Target version:
Start date:
05/13/2016
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Story points:
1.0

Subtasks

Task #9205: Review -- PR merged into SDK master. Please update our repo with the latest SDK and add an extra "nil" parameter to all SetBlobMetadata invocations in our code. Thanks.ResolvedTom Clegg

Associated revisions

Revision a7f30c91 (diff)
Added by Tom Clegg over 5 years ago

9188: Update SetBlobMetadata func signature.

refs #9188

History

#1 Updated by Radhika Chippada over 5 years ago

  • Subject changed from [Keep] Add If-Match to Azure SDK during SetBlobMetadata (similar to delete) to [Keep] Add If-Match to Azure SDK during SetBlobMetadata

It is possible to end up with the following race condition and hence we need the SDK to support If-Match during the SetBlobMetadata as well, similar to delete operation. If-Match (on Etag) will prevent an already in-progress "process trash list" from updating a block that was "Put" again in the meantime and hence is no longer old.

"process trash list" goroutine                 "PUT request" handler
--------------------------------------------   --------------------------------------------
                                               get metadata
get metadata
                                               metadata has last_write_at=(old)
set metadata[expires_at]=now+TTL
                                               set metadata[last_write_at]=now
(leave metadata[last_write_at] alone)
                                               write metadata to Azure
write metadata to Azure
                                               success! last_write_at is fresh, so block is safe.
success! last_write_at is old, so block
is trashed / scheduled to be deleted.

#2 Updated by Radhika Chippada over 5 years ago

  • Assigned To set to Radhika Chippada
  • Story points set to 1.0

#3 Updated by Radhika Chippada over 5 years ago

  • Status changed from New to In Progress

#4 Updated by Radhika Chippada over 5 years ago

  • Status changed from In Progress to Resolved

Also available in: Atom PDF