Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Sign in
issue
issue
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 23
    • Issues 23
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar

新注册的用户请输入邮箱并保存,随后登录邮箱激活账号。后续可直接使用邮箱登录!

  • chainmaker
  • issueissue
  • Issues
  • #1141

Closed
Open
Opened Aug 01, 2024 by ryan lovfer@ryanlovfer

核心交易流程的执行流程优化建议

【产品名称/功能模块】

【问题描述】

交易流程说明链接:https://docs.chainmaker.org.cn/v2.3.1/html/tech/%E6%A0%B8%E5%BF%83%E4%BA%A4%E6%98%93%E6%B5%81%E7%A8%8B%E8%AF%B4%E6%98%8E.html#

共识过程引用: 长安链并行调度算法的主要思想是交易分为执行execute和生效commit两步,

  • 若交易在execute期间,其读集未被其他交易更改,则交易的执行结果视为有效,可执行commit操作;
  • 否则该交易的执行结果视为无效,需要将该笔交易的执行结果丢弃并重新执行此交易。示意图如下:

主要步骤:

  • 长安链调度模块将所有交易并行执行,并在执行中将所有交易的写操作都记录在内存缓存中;
  • 每笔交易执行结束后,检查自己读集中所有的key是否被其他交易修改,若无则将该交易写集生效(ApplyTxSimContext),若被其他交易修改则将该交易重新加入待执行队列重新执行;
  • 待所有交易执行完毕后,通过分析所有交易的读写集构建DAG。若交易间存在“读-写”、“写-读”、“写-写”冲突,根据执行时的先后顺序构建DAG中的边。 因存在冲突的交易执行时间存在随机性,最终构建的DAG也无法预测,所以此算法为随机性调度算法。在进行冲突检测时,长安链应用了位图等数据结构进行工程优化,极大地提升了交易的执行效率。

【分析】 上述流程分析如下

  • 1.交易并行执行,每笔交易执行结束,判断是否和其他交易存在冲突,如果检测到冲突,交易放入待执行队列,进行执行
  • 2.所有交易执行完毕之后,才进行交易依赖关系DAG图构建
  • 3.验证节点,根据交易DAG图进行重新执行和验证

【优化建议】

  • 1.从交易池获得一批交易之后,在交易执行之前,先对所有交易进行冲突检测,构建执行关系的DAG图(而不是执行完毕之后,再构建)
  • 2.根据DAG图,并行执行交易。这样可以避免交易进行无效执行,带来的时间浪费和资源消耗的浪费。在极端情况下,当一批交易存在大量依赖关系的时候,会造成极大的资源浪费,给节点带来巨大压力

以上设想,仅仅根据官网文档的描述分析而做的建议

【联系方式】(选填)

微信号:ryanlovfer

Edited Aug 01, 2024 by ryan lovfer
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: chainmaker/issue#1141

Copyright © 2021 ChainMaker Org. All Rights Reserved. 长安链 版权所有。