阅读了OrientDB官方文档中的以下声明:
为了保证原子性和一致性,OrientDB获得了一个 在事务提交期间对存储器进行独占锁定。
我想知道我对情况的理解是否正确。以下是我认为这将起作用的方式:
#1:100
读取到#1:200
,一些来自班级A
,一些来自班级B
(在交易即将结束时无法确定的事情。@version
强制执行乐观锁定所有可能受影响的记录。#1:1
(或整个数据库中的任何其他记录)并被提交过程阻止,该过程已对齐, AFAIK,存储单元上的独占锁定。如果我没有关闭,则无论原始数据驻留在哪个群集上,都会出现此块,因为我们有多个主数据集。如果是这种情况,在点 3 突出显示的交换期间,数据存储完全处于有效的恍惚状态,无法在任何地方访问,读取或与之交互有意义的方式。
我希望我错过了我的猜测。
免责声明:我没有机会深入研究相当丰富的OrientDB代码库中的底层代码。因此,这是一个受过良好教育的猜测,不应被视为OrientDB实际运作的任何参考。
可能的解决方法: 应该更糟糕的是,这恰好是OrientDB实际工作的方式,我非常欢迎任何解决这个难题的工作方法。我们正在寻找有意义的方法,使OrientDB成为企业,可扩展的高端应用程序的可行选择。