在前一篇文章《自研一款共享集群数据库,有多难?》中,我们详细介绍了 YashanDB 自主研发的共享集群架构。本文将进一步探讨共享集群中最为关键的能力——高可用特性,揭秘它为何被业界和用户广泛认可。
一、高可用到底是什么?
任何数据库系统在长期运行中难免会遭遇各种问题,例如网络中断、存储设备故障、服务器宕机甚至人为误操作等。如何在这些故障发生后,保证数据服务不中断或最小化中断时间和数据损失,就是数据库的“高可用能力”。
数据库的高可用性通常用两个关键指标来衡量:
RTO(Recovery Time Objective,恢复时间目标):描述服务恢复所需的时间。
RPO(Recovery Point Objective,恢复点目标):描述服务恢复后,数据丢失的程度。
二、主备架构 vs 共享集群架构
目前常见的高可用部署方案主要分两种:
主备架构:
主库承担所有写操作,备库同步数据,只提供只读功能;
主库宕机时,需要备库手动或自动升主,可能存在数据同步延迟甚至丢失。
共享集群架构(YashanDB采用的方案):
所有节点都是平等的,共享同一套存储,均能处理读写业务;
任一节点故障,其他节点立即接管,无需进行升主操作,也不会有数据同步延迟和丢失。
简单来说,共享集群比主备架构具备更强的实时性和更低的数据丢失风险。
三、共享集群架构RTO/RPO优势分析
(1)RPO优势(数据完整性)
主备架构:日志传输机制存在延迟风险,可能导致数据丢失。
共享集群架构:所有节点共享统一存储,无需数据复制,天然实现数据强一致,RPO始终为零。
(2)RTO优势(恢复速度)
主备架构:需要备库升主过程中业务完全不可用,恢复有延迟;
共享集群架构:节点故障时业务自动转移到其他节点,服务不中断,业务恢复快,RTO通常在秒级完成。
四、YashanDB共享集群的核心高可用技术揭秘
共享集群高可用机制由三个重要组件支撑:
崖山集群服务(YCS)
YCS负责集群的管理、节点资源监控与异常处理,核心机制包括:
心跳机制:实时监测节点间和节点与共享存储间的状态。一旦出现心跳异常,自动触发节点隔离和重组。
仲裁机制:当部分节点失效时,自动决策集群的重组方案,确保集群业务稳定。
FENCE机制:防止被剔除节点对共享存储的误操作(如脑裂双写),通过心跳、IO在途状态、监控进程联合保障。
崖山文件系统(YFS)
YFS是YashanDB自研的共享文件系统,负责存储管理与高可用,核心特性包括:
多副本机制:通过磁盘组与故障组划分,实现数据冗余。任意磁盘或故障组故障,不会导致数据丢失。
故障自动修复:当读IO发现数据异常时,自动从冗余副本修复,用户无需感知。
服务自动恢复:集群节点异常退出时,自动进行资源与服务调整。
数据库核心(DB组件)
共享集群中的DB组件支持节点对等、快速恢复机制:
多活对等节点:每个节点均可提供全量服务,节点故障后自动转移,无需人为干预。
事务托管与快速恢复:当某节点异常,其他节点快速接管事务,自动回滚异常节点事务,无需事务分发,性能高效。
主备集群复制机制:在共享集群基础上还支持主备部署,通过redo日志传输方式实现集群间的容灾能力。
五、实例故障恢复实测表现
我们基于 TPCC 模型对YashanDB共享集群(两节点模式)进行实际压测:
运行60万 TPMC压力后主动杀掉一个节点;
数据库业务从节点故障到服务完全恢复,耗时仅8秒;
业务过程中始终保持部分可用,不存在数据丢失。
六、不同场景下的RTO/RPO表现对比(总结)
(以上数据基于实测和官方资料整理)
七、总结
YashanDB共享集群之所以被广泛认可并频频点赞,是因为它在高可用能力方面,真正解决了传统数据库架构存在的数据同步延迟、数据丢失风险和服务中断等痛点。通过自研的YCS、YFS、DB核心技术,以及先进的心跳监测、故障仲裁、脑裂防护等创新机制,达成了业界领先的高可用标准。
企业客户选择YashanDB,不仅获得了出色的性能表现,更获得了业务持续运行的强力保障。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。