cassandra - 如何可视化 Cassandra 中的原子性?

标签 cassandra nosql cassandra-3.0 atomic

根据 this datastax doc Cassandra 中的原子性是:

In Cassandra, a write is atomic at the partition-level, meaning inserting or updating columns in a row is treated as one write operation.

而根据 this datastax doc Cassandra 中的原子性是:

In Cassandra, a write operation is atomic at the partition level, meaning the insertions or updates of two or more rows in the same partition are treated as one write operation.

我的困惑是,原子性是在单行基础上看到的,还是可以在分区级别包含表中的多行?

我认为它是两者的组合,具体取决于我们在 Cassandra 中执行的查询类型。

例如:

如果我有一个插入查询,它总是会在分区中插入一行。因此 Cassandra 确保该行在分区级别成功插入。

但是,如果我有更新查询,其 where 子句具有限定多行的条件,则更新操作在分区级别是原子的,意味着根据条件的所有符合条件的行都将被更新,或者不会更新。

我的理解正确吗?

最佳答案

“行”和“分区”被混淆,因为以前行意味着分区,现在行意味着分区的一部分。

它们对于分区来说是原子的。请记住,这是针对单个副本的,因此包含 5 列的批处理中的一行或多行都在一个副本上的单个操作中全部更新(无跨节点隔离)。如果您的设置 (key, value) VALUES ('abc', 'def') 您将永远不会只看到 key 而不是 value放。但是,您可能进行读取操作,但只有 1 个副本已设置,而其他副本则没有。这意味着根据您所要求的复制因子和一致性级别,您要么会看到整个内容,要么什么也看不到。这也适用于分区内的多行,但您无法在没有批处理(已记录或未记录)的情况下使用单个更新语句更新 2 行。

关于cassandra - 如何可视化 Cassandra 中的原子性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52767210/

相关文章:

cassandra - 是否可以在cassandra中为UDT编写注释?

cassandra - 融合 3.3 升级后 Kafka-cassandra 连接器失败

java - cassandra中的随机列获取

cassandra - 使用 yum 安装 cassandra datastax 企业版 : how to set username & password

java - astyanax 是否仅支持本地节点的自动发现模式?

cassandra - Cassandra 3.0更新了SSTable格式

solr - Cassandra 和SOLR?什么为前端读取查询提供了更好的性能?

mongodb查询不使用索引

java - 获取 com.marklogic.client.FailedRequestException 参数无效 : Invalid query structure (check namespace)

redis - 可以在运行的 redis 实例上禁用快照吗?