Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Transactions 使用轻量级事务的含义是什么?_Transactions_Cassandra_Datastax Java Driver - Fatal编程技术网

Transactions 使用轻量级事务的含义是什么?

Transactions 使用轻量级事务的含义是什么?,transactions,cassandra,datastax-java-driver,Transactions,Cassandra,Datastax Java Driver,特别是我在看上面写着: 如果轻量级事务用于写入分区内的行,则只应使用读写操作的轻量级事务 对于使用LWT进行读取操作是什么样子,我感到困惑。具体来说,这与每查询一致性(和串行一致性)级别的关系 for串行读取一致性提出了进一步的问题: 允许读取数据的当前(可能是未提交的)状态,而无需提出新的添加或更新 这表明使用SERIAL进行读取并不是“使用LWT” 但是 当您进行读取时,Cassandra如何知道检查正在进行的事务 当您尝试阅读时,建议的新更新是什么?这对阅读有何影响 如果您正在读取的一致

特别是我在看上面写着:

如果轻量级事务用于写入分区内的行,则只应使用读写操作的轻量级事务

对于使用LWT进行读取操作是什么样子,我感到困惑。具体来说,这与每查询一致性(和串行一致性)级别的关系

for
串行
读取一致性提出了进一步的问题:

允许读取数据的当前(可能是未提交的)状态,而无需提出新的添加或更新

这表明使用
SERIAL
进行读取并不是“使用LWT”

但是

  • 当您进行读取时,Cassandra如何知道检查正在进行的事务
  • 当您尝试阅读时,建议的新更新是什么?这对阅读有何影响
  • 如果您正在读取的一致性(比如说
    ONE
    )小于用于编写的串行一致性,那么该如何工作
  • 一旦您在表(或行?或列?)上使用LWT,是否所有非串行读取都会被迫接受参与定额和事务算法的惩罚
  • 该要求实际应用于整行还是仅应用于条件语句中涉及的列
如果我忽略此建议并进行串行和非串行读/写。LWT以何种方式失败

当您执行以下操作时,Cassandra如何知道检查正在进行的事务 读一读

这正是
串行一致性级别所指示的。它确保查询仅在所有挂起的事务完全执行后返回结果

当您尝试阅读时,建议的新更新是什么, 这对阅读有什么影响

我认为文档试图说的是,读取将像LWT一样处理-只是不需要自己进行任何更新

如果你正在阅读的一致性(比如说一个)低于用于写作的串行一致性,那么这将如何工作

使用
SERIAL
读取将始终意味着
QUORUM
作为一致性级别。使用
ONE
读取不会为您提供
SERIAL
提供的任何保证,您最终可能会读取暂停的数据

一旦在表(或行?、或列?)上使用LWT,是否所有非串行读取都会被迫接受参与定额和事务算法的惩罚

不可以。您可以对查询使用非串行一致性级别,并让它们以与任何其他非串行查询完全相同的性能特征执行

该要求实际应用于整行还是仅应用于条件语句中涉及的列

不,我认为只要使用不同的列进行串行读/写(包括条件)和常规读/写,就可以了

如果我忽略此建议并进行串行和非串行读/写。LWT以何种方式失败


如果您执行常规写入,而不是作为LWT的一部分执行,则这些写入将在任何时候应用,而不会干扰LWT的一致性过程。因此,从理论上讲,定期写入可以在评估条件和应用更新之间更改作为LWT条件一部分的值,这是您希望避免使用LWT的不一致的潜在原因

LWTs将始终在分区键的上下文中执行。“使用串行读取将始终意味着仲裁作为一致性级别。”您确定吗?也许这取决于司机。从Java datastax ConsistencyLevel#isSerial源代码:,“此一致性级别是否为串行,即,仅适用于轻量级事务的“paxos”阶段”。相关: