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