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

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


                 少了数据库参数的重复配置, 具有快速部署、高扩展性、高可用性、可迁移性、易运维性和资源隔离等特点. 云
                 原生数据库能够随时随地从多前端访问, 提供云服务的计算节点, 并且能够灵活及时调动资源进行扩容缩容, 助力
                 企业降本增效. 以亚马逊       AWS、阿里云、Snowflake 等为代表的企业, 开创了云原生数据库时代. 未来, 数据库将
                 深度结合云原生与分布式特点, 帮助用户实现最大限度资源池化、弹性变配、超高并发等能力, 更加便捷、低成
                 本实现云上数字化转型与升级.
                    然而, 当前云原生数据库发展面临许多关键性问题, 高可用问题首当其冲. 随着“云原生+分布式”的不断发展,
                 数据库高可用问题的重要性呈现不断上升趋势, 已成为制约其发展的重要因素. 数据库系统会因不同原因而出现
                 故障: 硬件故障、网络通信故障、软件错误、人为错误等. 高度可用的数据库系统确保即使面对此类故障, 系统仍
                 保持运行且停机时间接近于          0. 而近年来, 谷歌、微软、阿里等著名公司都有因可用性不足造成的严重宕机事件,
                 2022  年  6  月, 谷歌  Cloud  发生服务中断事件, 限制了用户访问云和相关项目          [1] ; 2023  年  5  月, 微软  Azure DevOps
                                                           [2]
                 在巴西的一处     Scale-Unit 发生故障, 导致宕机约    10.5 h ; 2023  年  11  月, 阿里云出现严重故障, 全线产品受影响     [3] .
                 因此, 需要保障业务的连续性, 即在用户眼里, 业务永远是正常                 (或者说基本正常) 对外提供服务的. 数据库高可用
                 的研究可以最大程度地减少数据中断和服务不可用的风险, 尤其是在金融交易、医疗系统等对服务不中断要求高
                 的领域.
                    目前, 云原生数据库高可用问题已得到越来越多的关注, 许多企业组织和研究团体都启动了相关研究. 本文通
                 过分析当前数据库高可用所面临的挑战以及研究现状, 提出未来数据库高可用技术的建议及重要的科研方向, 以
                 期为我国未来高可用数据库的科研、产业发展做出有益的探索.
                    本文第   1  节介绍数据库高可用面临的挑战. 第          2  节从系统与网络、数据与计算、应用与服务这               3  个层面总结
                 数据库高可用的研究现状. 第         3  节分析数据库高可用研究的挑战和未来的发展趋势. 第                4  节针对存储、参数配置、
                 查询优化、事务方面对高可用技术提出建议. 第               5  节对本研究内容做出总结.
                  1   数据库高可用挑战

                    本节探讨数据库高可用性面临的主要挑战, 重点分析硬件和网络问题以及可用性和一致性之间的冲突. 硬件
                 和网络的挑战部分介绍数据库系统常见的硬件故障以及网络故障, 可用性和一致性的冲突部分讨论数据库系统如
                 何在高可用性和数据一致性之间取得平衡, 通过分析                 CAP  理论以及可用性的类别, 阐明在一些场景下如何选择以
                 确保系统在保持高可用性的同时尽量减少数据不一致的风险. 两部分阐述当下数据库系统高可用性主要面临的挑
                 战以及在实际应用中需要综合考虑的因素, 以实现系统的最佳性能和可靠性.
                  1.1   硬件和网络的挑战
                    数据库的核心能力要求除了功能完善、使用方便以外, 还需要绝对安全、足够健壮, 能够满足“数据不能丢,
                 服务不能停”的要求. 传统的数据库产品中虽然有一些行之有效的软件技术用来提高数据可靠性和服务可用性, 但
                 整体来说对硬件与网络的稳定性也有很强的依赖.
                    硬件故障是数据库系统常见的问题之一, 包括硬盘故障、内存故障、CPU                        故障等. 磁盘是故障发生的主要来
                 源  [4] , 电压变化等因素也可能引起电源故障. 此外, 当         CPU  和存储芯片过热时, 系统也可能发生故障, 很多系统并
                 没有对其冷却进行任何形式的监控, 因此冷却故障让很多系统管理员措手不及. 服务器、磁盘、内存等硬件元件
                 的故障可能导致数据丢失或服务中断, 为了弥补这些缺点, 现代系统配备有额外的风扇电源和优越的硬件诊断功
                 能, 以便尽早发现和识别问题. 为了实现极致的高可用性, 往往需要严格测试硬件器件并且实现硬件冗余设计. 从
                 第  2  节介绍的研究现状来看, 硬件冗余设计被广泛应用于现代数据库系统中, 尤其是在多节点系统中, 以保证即使
                 某个节点发生故障, 系统仍能继续正常运行, 最大限度减少服务中断的风险.
                    在网络方面, 网络故障也是影响数据库高可用性的一个重要因素. 错误的路由信息、重复的主机名或                                 IP  地址
                 以及错误解释广播地址的机器都可能导致出现网络错误, 网络中断、丢包、延迟等问题都会影响数据库系统的可
                 用性, 可能导致数据库服务器无法与客户端通信, 无法完成读写等操作. 这些问题不仅影响单一节点的服务, 还可
   258   259   260   261   262   263   264   265   266   267   268