【发布时间】:2021-07-21 21:00:21
【问题描述】:
我们有一个场景,在给定 id_1 的情况下,每个插入发生在 id_2,对于以下架构,在 Cassandra 中:
CREATE TABLE IF NOT EXISTS my_table (
id_1 UUID,
id_2 UUID,
textDetails TEXT,
PRIMARY KEY (id_1, id_2)
);
单个 POST 请求正文包含多个 id_2 值的详细信息。这会在单个表上触发每个 POST 请求的多个插入。
每个 INSERT 查询执行如下所示:
insertQueryString = "INSERT INTO my_table (id_1, id_2, textDetails) " + "VALUES (?, ?, ?) IF NOT EXISTS"
cassandra.Session.Query(insertQueryString,
id1,
id2,
myTextDetails).Exec();
1
Cassandra 是否确保每个 POST 请求在单个表上多次插入的数据一致性?每个 POST 请求都在 Go-routine(线程)上处理。后续 GET 请求应确保检索到一致的数据(通过 POST 插入)
使用 BATCH 语句在暂存和生产中存在“批量太大”问题。 https://github.com/RBMHTechnology/eventuate/issues/166
2
我们有两个数据中心(用于 Cassandra),每个数据中心有 3 个副本节点。
写查询操作(POST请求)和就绪查询操作(GET请求)需要设置什么一致性级别,才能保证完全一致
【问题讨论】:
-
我们为什么选择 Cassandra? 1)当设计适当的数据库架构时存在限制 2)由于数据不一致问题而无法执行数据库查询(根据需要).....是否仅适用于 RDBMS 不支持的分布式数据架构?
标签: database cassandra cql gocql