907 B
907 B
KvCas contracts (strong consistency)
CompareAndSwap
- RPC:
kvrpc.KvCas/CompareAndSwap - Request:
namespace: string(empty =>default)key: bytesvalue: bytesexpected_version: uint64
- Response:
success: boolcurrent_version: uint64new_version: uint64
- Semantics:
- Allowed only for
strongnamespaces; returnsFailedPreconditionotherwise or when not leader (redirect required). - Proposes via Raft; state machine applies with LWW timestamp wrapper.
- Allowed only for
Get
- RPC:
kvrpc.KvCas/Get - Request:
namespace: string(empty =>default)key: bytes
- Response:
found: boolvalue: bytesversion: uint64
- Semantics:
- Allowed only for
strongnamespaces; returnsFailedPreconditionif not leader. - Reads versioned value (timestamp-prefixed) and returns decoded value plus version.
- Allowed only for