Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是一个设计级别的问题,
我有一个节点设置,如节点 N1、N2 和 N3,我的应用程序和数据库(目前认为是 Cassandra)在所有 3 个节点中运行。
我需要为以下场景提供数据一致性,有人可以提供答案吗?
在这种情况下,Cassandra 会发生什么?
有没有办法通过应用程序/ Cassandra 数据库提供并发?或者任何算法?
除了卡桑德拉的 LWT。
Cassandra 提供可调的一致性。在您的情况下,这仅意味着,如果您提供CL=QUORUM写入,它将同步到 3 个节点中的 2 个。读取将与CL=QUORUM您从 3 个节点中的 2 个节点获得结果一致,因此存在重叠。
CL=QUORUM
对于写入,Cassandra 提供了最后写入获胜机制。这意味着独立于一致性级别,阅读器将看到 T1 或 T2 线程的写入,具体取决于读取发生的时间。稍后读者只会看到最新的写入。
如果你想要锁定机制,你可以在你的应用层使用离线并发模式,比如乐观或悲观的离线锁。一些持久性管理框架开箱即用地提供了这些模式实现。