gpt4 book ai didi

mongodb - 允许自定义 CRDT 合并的分布式数据库

转载 作者:行者123 更新时间:2023-12-05 03:47:49 26 4
gpt4 key购买 nike

虽然我已经研究过相关文献(例如 CAP 定理、CRDT)并实现了一些 POC 以允许水平扩展我的应用程序,但我对分布式数据库相当陌生。

然而,现在我面临一个具有挑战性的问题。为了水平扩展应用程序,服务之间的通信是通过分布式队列完成的。作为这里的背景,我确实需要自定义 CRDT 方法来保持数据最终一致,并且我确实需要我的应用程序像缓存一样工作(与 REDIS 远程相关)。

现在的挑战是我还需要持久化数据。这需要我保持应用程序缓存和数据库中的数据最终一致。我检查了 Cassandra,我看到了一张票 [1],其中有人试图为自定义 CRDT 合并功能添加功能(正如我提到的那样,确实需要这样做是有原因的)。这从未进入 Cassandra,并且似乎有一些问题需要解决。

我有哪些选择,可以是允许自定义合并的具体分布式数据库引擎形式,还是可以帮助解决问题的算法(例如,以数据库触发器或类似形式)。

[1] https://issues.apache.org/jira/browse/CASSANDRA-6412

最佳答案

据我所知,很少有数据库允许您指定自己的自定义冲突解决算法。说实话。我真正找到的唯一一个 - 免责声明:我不是 Microsoft 拥护者 - 是 Azure CosmosDB。它具有与 MongoDB 兼容的 API,可以配置为使用主-主复制策略,您需要在此处 specify your own conflict resolution algorithm (使用 JavaScript)。您可以使用它来定义自己的合并操作。

如果您将目光从数据库原生解决方案转向应用程序级解决方案,可以使用多种工具,例如 ie。 Akka(在 JVM 或 .NET 版本中均可用)使您能够在分布式数据模块中编写自定义 CRDT。 JVM 版本额外支持 multi-datacenter persistence ,这在概念上更接近交换 CRDT 的工作方式,并且可以与 Cassandra 后端集成。

关于mongodb - 允许自定义 CRDT 合并的分布式数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64739404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com