有没有一种方法可以将OT或CRDT(或类似的东西)用于关系数据?

时间:2018-08-01 14:10:47

标签: algorithm operational-transform crdt

我正在研究脱机优先数据库和中央服务器之间的同步过程。举一个简单的例子,有项目和部门,而项目属于部门。每个客户端都可以修改任何实体。

对于文本文档,我知道有用于处理OT和CRDT等冲突的算法/技术:

但是我想知道您是否可以将它们用于数据库中可能更复杂的结构。就我而言,让我们保持简单,说你有:

  • 项目-ID,名称,部门ID
  • 部门-ID,名称

单个元素中的属性(如“名称”)的更改是可以管理的(可能使用版本,增量,时间戳)。删除有些麻烦,但是您可能会因为更改了元素而放弃名称更改。

存在关系时,这更加棘手。当一个客户将项目移至一个部门而另一个删除该部门时会发生什么。

在某种程度上,这些冲突中的一些类似于使用OT可能在文本中发生的冲突。有人更改标题,其他人将其删除。或者有人将元素添加到项目符号列表中,而有人将列表移动到文档的其他部分。

我的问题是,您可以将OT或CRDT用于关系数据吗?如果可以,您将如何做?如果不是,是否还有其他类似的算法或技术来处理关系数据中的冲突?

0 个答案:

没有答案