Cassandra中的SERIAL和LOCAL_SERIAL一致性级别是什么



根据本文档,Cassandra具有不同的一致性级别,其中两个级别被称为SERIALLOCAL_SERIAL。我理解除了这两个级别之外的所有一致性级别。它说它与轻量级事务有关,但我也不明白。

如果有人能向我解释这些水平,那就太好了。

轻量级事务(LWT(是需要按顺序执行且不能中断的操作,需要线性化的一致性——从数据库的角度来看,当事务进行时,记录被锁定,因此没有其他进程可以对其进行操作。

LWT在其它方面被称为比较和设置(CAS(操作;"比较";步骤(条件语句(必须在";设置";(写入语句(。为了满足条件,LWT必须先执行读取(进行比较(,然后才能进行写入--先读取后写入。

LWT的一个经典用法示例是用于创建新用户名。在将用户名分配给用户之前,我们必须首先检查(读取(该用户名是否已在使用中("比较"步骤(。如果它还不存在,那么我们可以创建它,否则用户必须选择另一个用户名。

CQL的条件语句包括使用IF EXISTSIF NOT EXISTS子句。例如:

INSERT INTO users (username, name) VALUES (?, ?) IF NOT EXISTS

串行一致性CCD_ 5和CCD_;"先读后写";。您可以选择使用SERIAL一致性(需要在所有DC中仲裁副本(或LOCAL_SERIAL(需要在本地DC中仲裁复制副本(。

串行一致性不能用于正常读取或写入,只能用于LWT。

有关更多信息,请参阅Cassandra中的轻量级事务。干杯

相关内容

  • 没有找到相关文章

最新更新