【发布时间】:2013-08-28 23:34:58
【问题描述】:
我正在写我的学士论文。 因此,我关心的是理论上的最终一致性以及 Cassandra 如何应用该理论。 要理解我的问题,请考虑以下一致性定义(据我所知):
-
因果一致性:
一个系统提供因果一致性,如果内存操作 系统的每个节点都可以看到潜在的因果关系 以相同的顺序。 (维基百科)
因此,如果进程 A 将数据 X 写入数据库,然后进程 B 读取该数据 X 并用 Y 覆盖它,那么我们说如果 B 在所有副本上都获得 A 之后的 X,则确保了因果一致性(节点)。
-
读写一致性:
这是因果一致性的一个特例。因此读写在同一个进程A上处理。这种一致性保证了A在修改后永远不会有旧的数据对象。
-
会话一致性:
在这种情况下,进程 A 在会话中访问数据库。只要这个 Session 存在,系统就保证你读你写的一致性
-
单调读取一致性:
如果一个进程在读取后得到一个特定的数据对象,系统保证进程在每次后续的读取访问时都不会得到一个较旧的数据对象。
-
单调写入一致性:
在这种情况下,对 DB 的写入选项将被序列化,写入选项的顺序会导致哪个进程首先写入。
现在这是一些理论上的一致性选项,其中一些或其中一个在 NoSQL 系统中实现。但是如果我理解错了,请纠正我。
我的问题是 CASSANDRA 提供哪种类型的一致性? 这些一致性与“R+W>N”和“R+W
whereby
R=read replica count
W=write replica count
N=replication factor
I'd really appreciate a quick answer. Thank You!!!
【问题讨论】:
标签: nosql cassandra replication eventual-consistency