Page 246 - 《软件学报》2026年第1期
P. 246

彭泽顺 等: 面向跨地理区域联盟链的事务处理技术综述                                                       243


                 的单点瓶颈, 极大地提升了系统性能. 由于执行结果是确定性的, 与                   Fabric 不同, NeuChain  的交易执行在共识后进
                 行, 因此, 共识协议的日志复制不必包含交易执行结果, 减少了大量跨域传输开销. 但是, 由于其采用的确定性并发
                 控制算法限制每条记录在一个区块内只能被更新一次, 在存在热点的工作负载下, 热点记录会被频繁更新, 若区块
                 内包含多个更新该热点记录的交易 (它们间存在写-写冲突), 仅有一个能够提交. 因此, 区块内交易数量的提升会
                 导致更多的事务间存在写-写冲突而被终止, 影响系统性能.


                                                                             Blocks
                                                                            T 1 |Commit
                                                                             T 2 |Abort
                                                 T 1       T 2
                                                                             T 3 |Abort
                                                 T 3       T 4              T 4 |Commit
                                      Peer 1
                                                                             Blocks
                                                 T 4       T 1              T 1 |Commit
                                                                             T 2 |Abort
                                                 T 2       T 3
                                      Peer 2                                 T 3 |Abort
                                            Deterministic concurrency control  T 4 |Commit
                                             图 9 使用确定性并发控制的执行流程

                    HarmonyDB [115] 提出了基于磁盘的确定性并发控制算法          Harmony, 可以应对热点数据并能保证区块间并发. 实
                 验结果表明, Harmony   不但降低了交易终止率, 而且提升了系统的并发度.
                    SChain [116,117] 的一个逻辑节点由多个云服务器节点构成, 这些服务器节点分别用作排序                   (ordering) 、协调器
                 (coordinator)、执行  (executor)、存储  (storer). SChain  采用云原生的存算分离思想, 每个逻辑节点内的执行节点和
                 存储节点可以独立扩展. 这样, 系统吞吐量随执行节点的数量的增加而增加, 在扩展执行节点时不会涉及存储数据
                 的迁移. 在执行时, 用户将交易提交给排序服务. 排序服务由多个排序节点构成, 每个排序节点都能接收交易. 每个
                 逻辑节点包含一个协调器, 负责接收排序节点共识完成的区块. 协调器使用基于有序锁的确定性并发控制, 将不相
                 交的事务集交给数个执行节点做确定性并发执行. 为了弱化读写依赖事务对并发执行的影响, 协调器使用                                  METIS
                 图划分算法    [118] 来减少读写依赖事务的比例. 存在读写依赖的事务, 执行节点会在执行期间交换写入结果, 并将更
                 新提交到存储节点中完成持久化.
                    SChain  采用了区块间的流水线执行, 当第          1  个区块执行完与第     2  个区块相关的交易后, 后者即可开始执行,
                 而不用等到前者完全完成执行, 进一步提高了并行度. 但在                  Calvin  中, 由于单个协调器 (调度器) 需要给众多执行
                 器提供完成加锁的交易, 当执行器消费交易的总效率大于单一协调器的生产效率时, 协调器本身可能会成为瓶颈                                  [68] .
                 因此, 由于  SChain  并未针对  Calvin  的协调器做优化, 随着吞吐率增加或区块内交易数量的增加, SChain               的协调器
                 可能会成为瓶颈.
                  2.4   无协调一致性技术
                    上述并发控制算法均保证了可串行化的隔离级别, 并需要系统运行强一致的共识协议保证副本一致性, 存在
                 以下两点缺点: 首先, 很多应用并不需要可串行化的强隔离级别即可保证事务一致性                           [119] , 即区块链可以对这类事
                 务使用较弱隔离级别. 其次, OCC        对交易提交延迟敏感, 跨域共识导致的高延迟会显著降低其吞吐率. 而确定性并
                 发控制和   SSI 对区块大小敏感, 区块内交易数量较多会显著降低交易提交成功率.
                    无冲突复制数据类型        (conflict-free replicated data type, CRDT) [120] 是一种可以满足在节点间复制时, 节点间不
                 需要额外协调即可让账本保证一致的数据结构, 通过削弱副本间数据的一致性                          (副本间仅为最终一致)、避免副本
                 间协调提升性能, 同时可以实现多种弱隔离级别. 由于满足                 CRDT  性质的交易均能提交, CRDT       交易提交的成功率
                 不受交易延迟和区块大小的影响. 目前            CRDT  可以应用到选举投票, 拍卖等很多不需要协调而保持一致性的场景,
                 并可以实现读已提交       (read committed)、读未提交  (read uncommitted) 等多种隔离级别  [25] .
                    图  10  展示了一个  CRDT  的投票应用部署在节点        Node 1  和  Node 2  上, 其中, Node 1  和  Node 2  均记录了完整
   241   242   243   244   245   246   247   248   249   250   251