【问题标题】:Are there any databases backed by CRDTs?是否有任何由 CRDT 支持的数据库?
【发布时间】:2021-08-11 12:19:47
【问题描述】:

我遇到过 CRDT,我对它们的潜力感到兴奋,但我担心它不能很好地与我所知道的数据库配合使用。每当我必须更新我的数据库状态时,我仍然需要在写入数据之前进行某种锁定,无论是悲观的还是乐观的。除非有一个数据库接受 CRDT、OT 或某种补丁集作为其 DSL 的一部分并且它在内部处理并发?有没有这样的数据库?

【问题讨论】:

标签: database database-design crdt


【解决方案1】:

我知道有几个。从相当可靠的开始:

  • RiakDB 可能是最受欢迎的一种,用于许多大批量生产系统。
  • Redis Enterprise 为其大多数类型提供异地复制插件。

还有一些不太成熟的案例,比如AntidoteDB,这提供了很大的希望,但它的开发过程相当缓慢(目前)。

一些分布式数据库对某些 CRDT 类型提供有限的支持,例如。 RavenDBCassandra 计数器类型。

Azure CosmosDB 允许您配置 multi-master replication,您可以在其中定义自己的“存储过程”(在 JavaScript 中),该过程将负责处理并发写入期间发生的冲突。这样您就可以编写自己的 CRDT。

还有一些产品设计为在客户端设备上用作 CRDT。这些不是严格意义上的数据库,而是可以嵌入应用程序本身的框架。它们支持持久性,但通常设计用于处理较小量的数据。其中包括Yjsautomergeditto

【讨论】:

    猜你喜欢
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 2010-09-18
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多