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

250                                                        软件学报  2026  年第  37  卷第  1  期


                 访问地理位置动态重新划分数据). 当边缘设备转移城市时, 它所对应的记录也可以得到迁移, 尽可能保证数据的
                 本地访问.
                    Saguaro  的延迟同步算法为异步备份分片, 通过牺牲分片的可用性保证高性能, 当数据中心不可用时, 最新数
                 据会丢失. 与之不同, Ziziphus   [20] 让数据在数个地理位置相近的数据中心通过共识协议完成复制, 在保证性能的同
                 时提供了数据可用性. 具体而言, Ziziphus 将数据中心 (zone) 按照地理位置划分为集群 (zone cluster), 边缘设备的
                 数据可以在一个或数个集群内使用跨集群数据同步 (cross-cluster data synchronization) 算法备份. 这样一来, 一个
                 或数个数据中心受灾不会导致数据丢失, 并且因为集群内数据中心地理位置相近, 分片内共识延迟较低.
                  3.4   分片数据的划分
                    以上介绍的账户 (记录) 划分策略均采用基于账户哈希值的方式来确定其所属分片, 属于随机划分. 例如,
                 RapidChain  [40] 利用账户属性哈希将账户分到不同的分片. 这种划分方法是确定性的, 划分账户不会影响系统性能.
                 但是, 这种方法未考虑到账户间的访问关系, 例如, 用户通常会在一个交易内访问属于同一地域传感器记录, 而不
                 同地域间的传感器记录通常不会在一个交易内联合访问. 因此, 这种不考虑记录间关系的随机方式会引入大量的
                 跨分片交易. 在跨域联盟链中, 处理跨分片交易的代价高, 严重影响系统的性能.
                    为了减少跨分片交易, 基于图结构的划分方法               [133] 将交易频繁的账户划分到一个分片里. 其中, 账户为图中的
                 点, 涉及这些账户的交易为边, 账户间交易频率为边权重. 可以利用图分割技术                       METIS [118] 将原图划分成多个子图,
                 每个子图代表一个分片. 由于跨子图边的权重和最小, 以此划分得到的分片执行跨分片交易对系统影响最小, 尽可
                 能最大化分片内交易的比率.
                    由于  METIS  的划分策略只是将交易频繁的账户划分到一个分片内, 各个子图内边的权重和可能相差较大. 因
                 此, 各个分片内的负载可能不均衡, 导致某些分片过热, 降低系统性能. 为了均衡各个分片的负载同时降低跨分片
                 交易比率, TxAllo [125] 对账户图结构进行建模, 利用社区检测算法动态地划分账户所属的分片. 一个分片代表一个
                 社区, 包含了多个紧密相连的账户节点 代表着分片内账户交易频繁. 而社区相互之间稀疏松散, 跨分片的交易数
                 量少. TxAllo  分为两个阶段. 1) 初始化阶段: 社区检测算法自动将交易频繁的账户划分到一个分片, 跨分片的比例
                 较低. 2) 优化阶段: 通过调整账户所处的分片来最大化系统的负载均衡. 每个账户会依次加入不同分片来评估总的
                 吞吐量增益, 增益的计算包含了跨分片交易、吞吐量、负载等多种性能指标. 这种分片技术不仅降低跨分片的交
                 易数量而且根据跨域交易的处理代价动态保证分片的负载均衡.
                    TxAllo  假设各个分片的处理能力相同. 然而, 在跨域联盟链场景下, 不同的分片可能由不同的组织管理 (如
                 Qanaat) 或包含不同数量的物理节点, 导致各个分片拥有不同的处理能力. 因此, 可以让                     TxAllo  考虑不同分片的处
                 理能力划分账户, 为处理能力强的分片分配更多的账户, 进一步提升系统的性能.
                  3.5   分片技术总结
                    表  5  总结了上述系统的提交协议. 中心化         2PC  协议由协调者接收和广播交易信息, 分片内对              2PC  决策进行共
                 识来抵御拜占庭节点, 跨域的通信开销较高. 分布式                2PC  协议为了减少跨数据中心的通信次数, 分片间进行全连
                 接广播通信提交交易. 原子提交协议不需要分片间的协调工作, 但仅能用于部分类型的事务; 分层提交协议可以本
                 地验证其中的跨分片交易, 减少通信的次数; 确定性的排序算法避免了跨分片交易间的冲突, 跨分片交易不需要使
                 用传统   2PC  提交; Saguaro  和  Ziziphus 的分片放置策略可以有效减少分片内跨域共识的开销; 基于             METIS  的图划
                 分策略和   TxAllo  账户划分策略也减少了跨分片交易的比率.


                                             表 5 跨分片提交协议和对应区块链系统

                     区块链系统           年份             提交协议                            特征
                          [41]
                       AHL           2019      中心化2PC+参考委员会           共识协议使用可信执行环境 (TEE), 开销较低
                            [62]
                    OmniLedger       2018      中心化2PC+客户端驱动              客户端面向整个网络广播, 负担较重
                            [135]
                    Chainspace       2017      中心化2PC+客户端驱动                  可以对智能合约进行分片
                            [40]
                    RapidChain       2018       中心化2PC+分片驱动              基于UTXO交易性质拆分跨分片交易
   248   249   250   251   252   253   254   255   256   257   258