【发布时间】:2020-08-25 20:30:05
【问题描述】:
我了解 HBase 使用 Multi-version concurrency control,并且 CheckAndMutate 的文档解释说它是一个原子操作。我不确定这意味着什么?
- 这是否意味着所有 mutate 操作都以原子方式执行?
- 是否意味着CHECK也包含在同一个原子伞下?
假设我有:
- 值为 5 的单元格。
- 如果值为 5,则 2 个工作人员同时想要更改单元格的值(使用
checkAndMutate) - worker-1 检查单元格值是否为 5,然后将值设置为 6
- worker-2 检查单元格值是否为 5,然后将值设置为 7
如果读取包含在同一个原子保护伞下,那么只有一个工作人员会成功。如果读取不包含在原子保护伞下,那么两者都可以成功。
【问题讨论】:
标签: hbase consistency