【问题标题】:Cassandra row level isolationCassandra 行级隔离
【发布时间】:2015-06-04 12:25:21
【问题描述】:

我在 cql 中创建了一个表:

create table isolation_demo(key text,column1 text,column2 text,column3 text ,primary key(key,column1,column2));

我在一个批次中有 2 条语句。

update isolation_demo set column3 ='ABC' where key =1 and column1 =1 and column2=1;
delete from isolation_demo where key =1 and column1 =2 and column2=2;

这两个语句共享相同的分区键。 (key=1),但不同的聚类列值。这两个语句会被隔离吗?

【问题讨论】:

    标签: cassandra transaction-isolation


    【解决方案1】:

    必须隔离这些查询,如 C* 文档 herehere 中所述:

    在 Cassandra 的早期版本中,当一个用户正在更新行而另一个用户正在读取同一行时,可能会看到一行中的部分更新。例如,如果一个用户正在写入包含 2000 列的行,则另一个用户可能会读取同一行并看到其中的一些列,但如果仍在进行写入,则不会看到所有列。

    完整的行级隔离已到位,这意味着对行的写入与执行写入的客户端隔离,并且在完成之前对任何其他用户都不可见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-18
      • 2016-05-01
      • 2018-11-16
      • 2015-08-02
      • 1970-01-01
      • 2019-05-24
      • 2013-01-25
      • 2010-12-04
      相关资源
      最近更新 更多