HBase CheckAndMutate 是原子的,是否也一致?

The HBase CheckAndMutate is atomic is it also consistent?

我知道 HBase 使用 Multi-version concurrency control,并且 CheckAndMutate 的文档解释说它是一个原子操作。我不确定那是什么意思?

假设我有:

如果读取包含在同一个原子保护伞下,那么只有一个工人会成功。如果读取不包含在原子保护伞下,那么两者都可能成功。

我无法对此进行测试,但基于此 code 基础,我认为 Get 发生在锁定之后,因此在上述情况下只有一个工作人员会成功。

checkAndMutate 在 HBase 中的工作方式是 写锁 checkAndMutate 中读取之前需要更新的行手术。所以,是的,读取也包含在原子性保证中,只有一个工作人员会在您提出的场景中成功。