Project

General

Profile

Actions

Idea #9188

closed

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

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

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

Subtasks 1 (0 open1 closed)

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 Clegg05/13/2016Actions
Actions #1

Updated by Radhika Chippada over 8 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.
Actions #2

Updated by Radhika Chippada over 8 years ago

  • Assigned To set to Radhika Chippada
  • Story points set to 1.0
Actions #3

Updated by Radhika Chippada over 8 years ago

  • Status changed from New to In Progress
Actions #4

Updated by Radhika Chippada over 8 years ago

  • Status changed from In Progress to Resolved
Actions

Also available in: Atom PDF