根据该数据,Cassandra的税务文件原子性为:
在cassandra中,写入在分区级别是原子的,这意味着在一行中插入或更新列被视为一个写入操作。
鉴于根据该数据,Cassandra的税务文件原子性为:
在cassandra中,写操作是分区级别的原子操作,这意味着同一分区中两行或多行的插入或更新被视为一个写操作。
我的困惑是,原子性是在单行的基础上看到的,还是它可以在分区级别的表中包含多行?
我假设它是两者的组合,这取决于我们在cassandra中执行的查询类型。
例如:
如果我有一个insert查询,它总是在分区中插入一行。所以cassandra确保在分区级别成功插入这一行。
但是如果我有一个update查询,它的where子句有一个限定多行的条件,那么update操作在分区级别是原子的,这意味着所有符合条件的行都将被更新,或者没有一行将被更新。
我的理解正确吗?
1条答案
按热度按时间xqkwcwgp1#
“row”和“partition”混淆了,因为以前的row表示分区,而现在的row表示分区的一部分。
它们是分区的原子。请记住,这是指单个副本,因此一个包含5列的批处理中的一行或多行在一个副本上的单个操作中全部更新(没有跨节点隔离)。如果你的设置
(key, value) VALUES ('', 'def')
你永远不会只看到key
而不是value
设置。但是,您可以创建一个只读副本,并且只有一个副本设置了它,而其他副本没有。也就是说,根据您的复制因子和所请求的一致性级别,您要么看到整个过程,要么什么也看不到。这也可以应用于分区中的多个行,但是如果没有批处理(已记录或未记录),则不能使用单个update语句更新2行。