【问题标题】:Are batch mutations atomic in Cassandra?Cassandra中的批量突变是原子的吗?
【发布时间】:2011-02-22 08:02:00
【问题描述】:

Cassandra API 支持批量修改:

batch_mutate(keyspace, mutation_map, 一致性级别):执行 键空间上的指定突变。 mutation_map 是一个地图>>;这 外部映射将键映射到内部 map,将列族映射到 突变;可以读作:地图>>。更加具体, 外部映射键是行键, 内部映射键是列族 姓名。突变指定 要插入的列或要插入的列 删除。见突变和删除 详情请见上方。

批处理中执行的所有突变都是原子执行的吗?那么如果其中一个突变失败了,其他突变也会失败吗?

【问题讨论】:

    标签: cloud cassandra key-value


    【解决方案1】:

    与给定键关联的所有内容都是原子的(这就是为什么 batch_mutate 允许使用单个键的多个 CF)。

    【讨论】:

    • 密钥应该相同,但是对于 2 个不同的 CF,批量插入可以不同。键保持不变,但列(名称,值)不同?它会支持吗?
    • stackoverflow.com/questions/15662657/… ,在这里您已经回答,即使对于不同的键,它也是原子的,因为 OP 询问了多个列族中的多行。我可以插入到不同 CF 中的不同行,并期望如果一些成功,所有都会成功吗?
    • 阅读我在那篇文章中链接的文章:2013年保证多键原子性;不是在 2010 年。
    【解决方案2】:

    给定键的所有突变都是原子的,但读取时没有隔离。 除此之外,没有更多的保证。

    【讨论】:

      【解决方案3】:

      Cassandra 1.2-beta1 添加了对atomic batch updatehere too...的支持

      • 现在服务器端支持原子批处理,Cassandra 将 保证(以将批次预先写入另一个节点为代价 首先),将应用批次中的所有突变,即使 协调员在批次中失败。

      【讨论】:

        猜你喜欢
        • 2013-12-25
        • 1970-01-01
        • 2020-03-09
        • 1970-01-01
        • 2016-03-10
        • 2014-05-05
        • 2014-08-01
        相关资源
        最近更新 更多