Transaction support in databend-meta
Databend-meta support transaction with KVApi, transaction parameters are:
- condition:
conditionis a list of predicates. If all of them succeed, theif_thenwill be executed, otherwiseelse_thenop will be executed. - if_then:
if_thenis a list of operations that will be executed when all condition evaluates to be true. - else_then:
else_thenis a list of operations that will be executed when not all condition evaluates to be true.
The condition is a list of TxnCondition, which includes these fields:
- key: String format key to compare with.
- target: The target of key value to be compared with, can be the last success upsert operation sequence number of the key, or the bytes value of the key.
- expected: The expected result of condition, the result includes
EQ,GT, etc.
The is_then and else_then is a list of TxnOp, which is one of these types:
- TxnGetRequest get: Get the value and sequence of a key.
- TxnPutRequest put: Put the value of a key.
- TxnDeleteRequest delete: Delete a key.
- TxnDeleteByPrefixRequest delete_by_prefix: Delete all the keys with the prefix string.