首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >超级分类账PHANTOM_READ_CONFLICT .vs.MVCC_READ_CONFLICT

超级分类账PHANTOM_READ_CONFLICT .vs.MVCC_READ_CONFLICT
EN

Stack Overflow用户
提问于 2018-08-21 14:16:51
回答 1查看 1.3K关注 0票数 0

我过去经常得到MVCC_READ_CONFLICT错误,并且知道这意味着什么,但是最近我将它升级到企业版本,并开始在PHANTOM_READ_CONFLICT错误中获取,PHANTOM_READ_CONFLICT是什么意思?曾试图搜索它,但没有找到任何关于它的东西。

另外,它与MVCC_READ_CONFLICT有什么不同,我知道如何处理MVCC_READ_CONFLICT,但不知道PHANTOM_READ_CONFLICT,因为我不知道它意味着什么。

EN

回答 1

Stack Overflow用户

发布于 2018-08-21 14:41:40

幻影读取是当您在链码中有一个范围查询时,并且在提交时,范围查询被重新运行,并且结果与您在链码执行过程中得到的结果不同。

假设您执行了一个范围查询,然后计数元素的数量,并将结果写入一个键" count“。可能是在链码执行之后和提交之前-有人插入了一个新元素。如果在提交期间没有范围查询重新验证,事务就会写入计数的错误值。

来自正式文件

这个额外的验证应该确保在查询-info中捕获的结果的超级范围(即范围的合并)中没有插入/删除/更新任何键。换句话说,如果我们在对提交状态的验证过程中重新执行任何范围查询(在模拟期间执行的事务),那么它应该产生与模拟时事务所观察到的结果相同的结果。此检查确保如果事务在提交期间观察到幻象项,则应将事务标记为无效。请注意,此幻影保护仅限于范围查询(即链码中的GetStateByRange函数),尚未为其他查询(即链码中的GetQueryResult函数)实现。其他查询存在幻影风险,因此只应用于未提交排序的只读事务,除非应用程序能够保证模拟和验证/提交时间之间的结果集的稳定性。

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

https://stackoverflow.com/questions/51950726

复制
相关文章

相似问题

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