据我了解,LWT 插入始终以 SERIAL 一致性级别完成。如果为 true,这是否意味着读取作为 LWT 插入的行可以安全地以 ANY 的一致性级别读取?
换句话说,我假设 LWT 插入是完全一致的,使得任何后续读取也完全一致,无论一致性级别如何?
最佳答案
由于两个原因,您的假设是不正确的。
- SERIAL 仅意味着写入的 QUORUM 一致性级别
- 单个 LWT 可能在读取时仅部分应用,因此无法使用任何 CL 安全读取
因此,您需要对所有将读取 LWT 写入的查询使用 SERIAL。这将确保在读取 QUORUM 时没有待处理的 LWT。
关于Cassandra LWT 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28836083/