首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在VoltDB中发生网络分区时允许脏读?

为什么在VoltDB中发生网络分区时允许脏读?
EN

Stack Overflow用户
提问于 2019-03-06 10:51:22
回答 1查看 72关注 0票数 1

我是首尔国立大学的PhD学生。我的名字是崔世元。我印象深刻的研究论文(分析网络分区故障)。我希望在实验室研讨会时间向我的实验室成员展示这篇论文。

然而,我读了你的研究论文和演示幻灯片。我有一个问题。

为什么读操作读取VoltDB中的Y值?实际上,复制失败,因此写入也失败。为什么要更新本地存储中的Y值?

并读取本地更新的操作读取值Y?

我认为读取操作应该读取提交值(成功写入:在本例中->值X)。

我尝试查找VoltDB文档。它可以允许在VoltDB中进行脏读。为什么在VoltDB中发生网络分区时允许脏读?

有什么理由要这样工作吗?

我附上了网络分区时脏读的图片

谢谢

诚挚的问候

来自Seokwon Choienter image description here

EN

回答 1

Stack Overflow用户

发布于 2019-03-09 01:55:13

VoltDB不允许脏读。在您的图片中,您展示了一个由3个节点组成的集群,其中1个节点从其他2个节点中进行分区,并且单个节点是分区主节点。

Event1:网络分区Event2:写入少数(并且您显示写入失败,这是正确的) Event3:从少数读取读取(并且您显示了一个脏读取,这是不正确的)。

事件3是不可能的。从其他两个节点分区的单个节点将关闭其客户端接口,然后崩溃,永远不会允许事件3发生。

几年前,我们运行了杰普森测试,并修复了V6.4中的一个缺陷,该缺陷在某些情况下允许从event#3进行脏读。有关VoltDB的保证、我们所做的杰普森测试以及为通过测试而修复的缺陷的完整详细信息,请参阅https://aphyr.com/posts/331-jepsen-voltdb-6-3https://www.voltdb.com/blog/2016/07/12/voltdb-6-4-passes-official-jepsen-testing/

披露:我为VoltDB工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55014805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档