有没有由CRDT支持的数据库?

3

我了解了CRDTs并对其潜力感到兴奋,但我担心它与我所知道的数据库不太兼容。每当我需要更新我的数据库状态时,写入数据之前仍然必须进行某种形式的锁定,无论是悲观锁定还是乐观锁定。除非有一种数据库可以接受CRDTs、OTs或某种补丁集作为其DSL的一部分,并在内部处理并发?是否有这样的数据库?


1个回答

8

我知道几个相关的内容。以下是一些比较可靠的选择:

  • RiakDB 可能是最流行的一个,被许多高负载生产系统使用。
  • Redis Enterprise 为大多数类型提供地理复制插件。

还有像 AntidoteDB 这样不太成熟的案例,它提供了巨大希望,但开发进程非常缓慢(目前为止)。

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

Azure CosmosDB允许您配置多主复制,您可以定义自己的“存储过程”(使用JavaScript),负责处理并发写入期间发生的冲突。这样,您就可以编写自己的CRDT。
还有一些产品专为在客户端设备上作为CRDT而设计。它们严格来说不是数据库,而是可以嵌入应用程序本身的框架。它们支持持久性,但通常设计用于处理较小量的数据。其中包括Yjs, automergeditto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接