【发布时间】:2016-02-17 08:45:30
【问题描述】:
Cassandra 如何处理多个用户对同一密钥的并发更新? Cassandra 是否遵循 ACID 的“隔离”属性?
【问题讨论】:
Cassandra 如何处理多个用户对同一密钥的并发更新? Cassandra 是否遵循 ACID 的“隔离”属性?
【问题讨论】:
虽然不是真正符合 ACID,但 Cassandra 强制执行行级 isolation:
例如,如果一个用户正在编写包含两千列的行, 另一个用户可能会读取同一行并看到一些 列,但如果写入仍在进行中,则不是所有列。
完整的行级隔离已到位,这意味着写入一行 与执行写入的客户端隔离,对 任何其他用户,直到他们完成为止。
对于由不同协调器节点处理的竞争写入,每列值包含一个写入时间值,指示写入时间。这确保了最近对列的写入占用了单元格。换句话说,“最后写入获胜”。
【讨论】:
Cassandra 为行级更新提供原子性和隔离性保证。您可以在 datastax blog article 中了解更多信息。
【讨论】: