Page 267 - 《软件学报》2026年第1期
P. 267
264 软件学报 2026 年第 37 卷第 1 期
据仍具有挑战性.
2.1.2 网 络
高可用性通常通过分布式数据复制来实现, 其中每个数据库记录驻留在一个主副本以及一个或多个备份副本
中. 对主副本的更新同步传播到所有备份副本, 以便任何发生故障的主服务器都可以由备份服务器替换. 分布式系
统设计的传统观点认为网络是严重的性能瓶颈. 主动-被动和主动-主动这两种主要的高可用性方法通常都采用最
小化网络开销作为优化目标. 主动-被动复制是最常用的复制技术之一. 每个数据库分区都包含一个活动副本 (称
为主副本) 和一个或多个备份副本, 前者处理事务并对数据进行更改, 后者使副本与主副本保持同步. 在学术项目 [18−21]
和商业数据库 (如 Postgres Replication [22] 、Oracle TimesTen [23] 和 Microsoft SQL Server Always On [24] ) 中, 主动-被动
复制有许多不同的实现. 主动-被动方案通常通过日志传送来实现, 其中主数据库执行事务, 然后将其日志传送到
所有备份副本. 备份副本重播日志, 以便新的更改反映在其副本中. 采用主动-主动协议 [25] 的系统允许任何副本接
受事务, 然后将更改广播到所有其他副本. 由于每个副本的事务与其他副本之间可能存在冲突, 因此在副本之间同
步更新需要比主动-被动更多的协调. 传统的主动-主动数据库通过消除协调并用副本之间的执行顺序的确定性取
代协调来解决这个问题 (如 H-store [26] 、VoltDB [27] 和 Calvin [28] ), 确定性主动-主动复制旨在减少在主动-被动方案中
传送日志以及与其他副本协调所需的网络通信. 此外, 数据库不仅依赖于通过副本间执行顺序的确定性来降低协
调需求, 还在数据结构层面引入了免冲突技术, 使得副本更新过程能够以无锁、高效的方式进行, 能够在一定程度
上减少网络通信的开销. 例如, Berkeley 的 Anna 系统采用了基于格结构 (lattice-based structure) 的协调自由模型,
使得不同副本之间的状态更新无须显式同步即可保持一致 [29] ; Starry 系统则在多主架构中引入半领导者协议, 通
过将冲突事务和非冲突事务分开处理, 既提高了高并发环境下的性能, 又减少了事务冲突的中断率 [30] ; SLOG 系统
结合数据本地性和确定性执行框架, 通过在本地事务与跨区域事务之间建立灵活的动态处理路径, 既保证了严格
的事务一致性, 又在多区域环境中实现了低延迟 [31] .
然而, 随着下一代网络的兴起, 尤其是在局域网环境中, 例如, 最新的基于远程直接内存访问 (RDMA) 的网络
可实现与主内存相似的带宽, 性能瓶颈已从网络转移到 CPU 的计算开销, 传统的网络优化方案可能不再是最佳选
择. 目前存在新的协议 Active-Memory [32] 来充分释放 RDMA 网络的潜力, 这是一种专为局域网设置中的下一代
RDMA 网络而设计的新高可用性协议. Active-Memory 的优化目标是最小化执行数据复制的 CPU 开销, 而不是最
小化网络流量. Active-Memory 的核心思想是利用 RDMA 的单向特性, 直接更新远程备份服务器上的记录, 而不
涉及远程 CPU.
网络拓扑对高可用也会产生一定的影响. 网络拓扑是网络内节点的排列, 基本网络拓扑有总线、环形、星形、
网状、树形和混合拓扑, 不同网络拓扑的特点如表 1 所示. 总线拓扑通过单根电缆连接所有计算机和网络设备, 沿
一个方向传输数据. 在这种结构中若电缆出现故障, 整个网络就会出现故障; 环形拓扑中, 计算机系统以环形结构
相互连接, 这种结构当网络流量大时或增加额外节点都不会对其可用性造成影响, 但一台计算机系统的故障可能
会影响整个网络的可用性; 星形拓扑借助电缆将所有计算系统连接到单个集线器, 该集线器用作中心节点, 如中心
节点发生故障, 整个网络就会停止, 但是这种拓扑结构提供快速的性能, 更易于故障排除、设置和修改; 网状拓扑
中, 所有节点相互连接使得整个结构比较稳健, 易于诊断故障, 可用性高; 树形拓扑包含根节点, 所有其他节点都连
接到它, 易于管理和错误检测; 混合拓扑是两个或两个以上拓扑的组合, 提供可靠性、可扩展性和灵活性. 以上基
本拓扑结构衍生出的常用于云计算数据环境的拓扑结构还包含 Fat tree 拓扑、FT-RUFT-212、FT-RUFT-222 等结
构, 它们也都具有很好的容错性与可用性 [33] .
此外, 基于 RDMA 的存储系统在提高可用性方面也有一些优势. 典型的键值存储系统包括基于哈希的键值存
储和基于树的键值存储, RDMA 能够用于构建快速且持久的分布式键值存储系统, 在数据传输和存储过程中, 数
据丢失的风险降低, 增强了系统的可靠性和持久性. 现有文件系统架构可分为解耦架构和耦合架构两类. 解耦架构
将存储和网络设备解耦, 类似于传统的使用块设备的分布式文件系统, 耦合架构将存储设备和网络设备耦合起来,
文件系统可以通过 RDMA 网络直接访问远程持久内存, 减少了网络通信的开销, 大幅降低了延迟和 CPU 消耗, 提
高了系统的可用性; 随着 RDMA 网络性能的提高, 基于 RDMA 的分布式存储系统可以提升内存处理应用程序的

