【发布时间】:2017-10-26 01:38:23
【问题描述】:
我正在使用 cassandra。
我有两个列族 A 和 B。两个列族都有相同的数据,但都有不同的主键。现在我正在使用批处理语句来更新这两个表中的行。
表架构如下:
表A的主键[id1(partition key) id2(partition key) id3(clustering key)]
表B的主键[id1(partition key) id2(partition key) state(clustering key) id3(clustering key)]
我想更新两个表的状态。 State 是 B 中的集群键,在表 A 中是简单的列。
我所做的是从 A 获取状态并将其视为旧状态。
然后批量我做的是首先从表A中删除行,然后从表B中删除行,在表A中插入新行并在表B中插入新行。
注意:使用从 A 获取的旧状态,我创建 B 的主键,然后从 B 中删除并在 B 中插入新行。
它工作正常,但对于并行请求却不是。 如果来自 2 个不同实例的 2 个请求来自相同的主键,那么我遇到了问题。表 B 获取新旧状态的两个条目。
那么我该如何在 cassandra 中解决这个问题?
【问题讨论】:
标签: cassandra