API Change: AtomicPut with previous = nil is create.
AtomicPut can now be used to Compare-and-Swap against the state where the key doesn't yet exist. E.g. a race where two clients create the same key: one succeeds, the other fails. Pass nil for the previous argument of AtomicPut for this behavior. Before, this would cause an error. Implements this change for all three backends.
This commit is contained in:
parent
7d01dbf6fa
commit
a2d4e1c246
1 changed files with 2 additions and 1 deletions
|
@ -77,7 +77,8 @@ type Store interface {
|
|||
// DeleteTree deletes a range of keys under a given directory
|
||||
DeleteTree(directory string) error
|
||||
|
||||
// Atomic operation on a single value
|
||||
// Atomic CAS operation on a single value.
|
||||
// Pass previous = nil to create a new key.
|
||||
AtomicPut(key string, value []byte, previous *KVPair, options *WriteOptions) (bool, *KVPair, error)
|
||||
|
||||
// Atomic delete of a single value
|
||||
|
|
Loading…
Add table
Reference in a new issue