0

我正在将我的产品从自托管的 cassandra 节点转移到 Amazon Keyspace。一个问题是 Amazon Keyspace 不支持记录批处理,因为在某些情况下它可能会使用太多资源。

在我的代码中,我有多种情况需要使用已记录的批次,但我找不到任何合理的解决方案来替代它。

用例:我们有 X 个表,我们正在对这些表进行行传播,以便为查询目的使用不同的主键。我们在这里执行记录批处理,因此我们在所有这些表中都具有数据一致性。

我想到的唯一解决方案是将同一行异步插入X表中,如果有任何失败,请再次执行,直到没有错误为止。

4

1 回答 1

1

您通常希望创建事务的持久日志,以便在发生故障时可以重放它。一些选项是在 Keyspaces 中使用消息传递层或分类帐。

  1. 写入消息层(例如 kenisis)将允许您为表提供至少一次语义。消费者将能够写入多个表并在失败时重复。

  2. 在包含键值模型的单独键空间表中创建分类帐。该值将是您要写入表的有效负载。然后对您的 N 个表执行异步调用。最后在分类帐项目上调用 delete 删除它。单独的进程可以定期扫描分类帐以查找未处理的交易

于 2021-01-08T03:10:39.000 回答