问题标签 [crdt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
58 浏览

multiplayer - Raft 与 CRDT 在协作编辑方面如何比较?

我试图了解当状态只是一个可以包含数组的 JSON blob 时,Raft 对协作编辑有多好。

我的直觉是 Raft 是为安全而构建的,而 CRDT 是为速度而构建的(牺牲可用性)。想了解更多关于使用 Raft 进行协作编辑的可行性的意见。

0 投票
1 回答
272 浏览

database - 是否有任何由 CRDT 支持的数据库?

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

0 投票
0 回答
24 浏览

distributed-computing - 如何处理 G 计数器中的整数溢出?

我知道这不太可能发生,但是一个任意大小的整数是解决这个问题的唯一方法吗?

0 投票
1 回答
64 浏览

distributed-transactions - 是否可以使用 CRDT 实现交易?

根据定义,CRDT(无冲突复制数据类型)是无冲突的。因此,这意味着在一个节点上进行的任何更新最终都将应用于(合并)所有其他节点。

所以它让我假设如果环境处于正常状态(没有硬件故障等),CRDT 不能在逻辑上限制或拒绝或拒绝进行一些更新。

另一方面,根据定义,事务应该被接受或拒绝,如果不满足某些要求则回滚 - 如果检测到某些冲突。所以这意味着事务(基于冲突)不能用 CRDT(无冲突)实现。那正确吗?

让我们考虑一个例子——简单的银行账户。余额是一个非负数。我试图用 PN-Counter(正负计数器)来实现它。我想让它成为非负数 - 如果余额低于零,则限制支出。但似乎是不可能的。已使用 PN-Counter 实现,它将允许低于零。或者如果我想限制它 - 我需要同步(锁定)所有节点以获得确认。

如果可以使用 CRDT 实现简单的交易,您能否描述一下给定示例的可能性 - 非负数。

0 投票
0 回答
15 浏览

editor - 实时协作编辑器如何将文档存储在数据库中?支持“操作转换”或 CRDT 数据结构的架构应该是什么?

我正在尝试了解实时协作编辑器的架构和正确的数据库。我找不到关于数据库要求的合适文章或研究论文,所以我在这里发布我的问题。

如果有人可以帮助我理解,那将非常有帮助。或者可以提供文档或博客链接。

免责声明:这不是作业问题:)