Page 265 - 《软件学报》2026年第1期
P. 265
262 软件学报 2026 年第 37 卷第 1 期
关闭其他网络分区中的节点. 这种外部工具通常需要 DBA 进行控制和维护. 因此, VoltDB 只能在人工干预下提供
高可用性.
一致性指的是系统中所有副本的数据保持一致的状态, 而可用性指的是系统能够正常响应请求的能力. 为提
高系统的可用性, 通常会在一致性上做出让步. BASE 原则就是通过牺牲强一致性来获得高可用性, 即基本可用、
软状态、最终一致性. 基本可用指系统在一定条件下保证提供基本的服务, 虽然不保证强一致性, 但可以在某些故
障情况下提供部分可用性. 软状态指允许系统中的数据存在中间状态, 并认为该中间状态不会影响系统整体可用
性, 即允许系统不同节点的数据副本之间进行同步的过程存在延时. 最终一致性指在一段时间内所有副本数据最
终都会达到一致的状态. 如在 Amazon Dynamo 中, 系统放弃了强一致性要求, 而选择最终一致性模型. 这样一来,
系统能够在节点或网络出现故障时, 继续对外提供服务, 即使部分数据某些时刻可能存在不一致的情况, 但是最终
能达到一致.
其余更强的一致性包括线性一致性 (强一致性)、因果一致性、会话一致性、单调读一致性、单调写一致性
等. 线性一致性系统看起来只有一个数据副本, 只要一个客户端成功完成写操作, 所有客户端从数据库中读取数据
必须能够看到刚写入的值. 因果一致性发生在进程之间有因果依赖关系的情形下. 会话一致性对于同一个用户会
话的所有请求都能获得相同的结果. 单调读一致性保证进程读取到数据的某个版本, 那么后续所有读取操作都不
会看到比该数据更早版本的数值. 单调写一致性保证多次写操作的序列化.
CAP 理论指出在网络分区的情况下, 系统需要在一致性和可用性之间做出权衡. 收敛性允许我们形式化地描
述这种权衡, 不同强度的收敛性属性具体取决于系统的设计和需求. 文献 [7] 在权衡一致性与可用性引入了收敛
性的概念, 其中的收敛性指一个实现能够确保一个节点发出的写被其他节点观察到的能力, 文中介绍两种不同强
度的收敛特性, 最终一致性和两两收敛. 最终一致性指存储系统保证如果没有对对象进行新的更新, 最终所有访问
都将返回最后更新的值. 两两收敛指两个节点对于同一个对象的读返回相同的结果, 那么这两个节点两两收敛. 如
果一个系统中的任意两个节点没有发出任何写操作, 也没有接收到其他节点的消息, 那么最终这两个节点会交换
一组消息, 接收这些消息使节点两两收敛, 那么这个系统是两两收敛的.
2 数据库高可用研究现状
第 1 节介绍了数据库高可用性面临的主要挑战, 包括硬件故障、网络问题以及在分布式环境中可用性与一致
性之间的冲突. 具体而言, 硬件故障 (如磁盘、内存和 CPU 故障) 和网络问题 (如路由错误、延迟和分区) 直接影
响数据库系统的稳定性和可用性. 此外, 在分布式系统中, 如何在高可用性与数据一致性之间做出平衡, 也是一个
长期存在的难题. 本节将详细回顾现有研究如何应对这些挑战, 并总结相关的技术进展. 本节总结数据库高可用性
研究的现状, 从系统与网络、数据与计算、应用与服务这 3 个层面进行全面分析. 系统与网络层面重点探讨数据
中心的可用性系统和网络架构对高可用性的影响; 数据与计算层面分析存储与冗余备份、事务管理以及负载均衡
的关键技术; 应用与服务层面深入讨论查询处理、中间件架构以及虚拟化的相关技术和方法在高可用性保障中的
应用. 这些层面的综合分析全面呈现当前数据库高可用性的多维度研究视角和解决方案, 为后续优化提供理论基
础和实践参考.
2.1 系统与网络
本节从数据中心和网络两个层面展开分析系统的可用性. 在数据中心层面, 讨论单主系统和多主系统的可用
性, 分析这两种架构在故障转移中的问题和优势, 并探讨数据库高可用性对基于云的应用程序和服务的影响; 在网
络层面, 主要从 RDMA (远程直接内存访问) 和网络拓扑结构的角度进行深入分析, 阐明网络架构对系统可用性的
关键作用.
2.1.1 数据中心层面下的可用性系统
为了确保数据中心级别中断时的高可用性, 不同类型的系统设计在服务等级协议、一致性保证、资源使用等
方面都有不同的权衡 [8] .

