写点什么

为什么 YashanDB 共享集群的高可用能力被频繁点赞? 核心机制到底强在哪?

作者:数据库砖家
  • 2025-04-21
    广东
  • 本文字数:1527 字

    阅读完需:约 5 分钟

在前一篇文章《自研一款共享集群数据库,有多难?》中,我们详细介绍了 YashanDB 自主研发的共享集群架构。本文将进一步探讨共享集群中最为关键的能力——高可用特性,揭秘它为何被业界和用户广泛认可。

一、高可用到底是什么?

任何数据库系统在长期运行中难免会遭遇各种问题,例如网络中断、存储设备故障、服务器宕机甚至人为误操作等。如何在这些故障发生后,保证数据服务不中断或最小化中断时间和数据损失,就是数据库的“高可用能力”。

数据库的高可用性通常用两个关键指标来衡量:

RTO(Recovery Time Objective,恢复时间目标):描述服务恢复所需的时间。

RPO(Recovery Point Objective,恢复点目标):描述服务恢复后,数据丢失的程度。

二、主备架构 vs 共享集群架构

目前常见的高可用部署方案主要分两种:

主备架构

主库承担所有写操作,备库同步数据,只提供只读功能;

主库宕机时,需要备库手动或自动升主,可能存在数据同步延迟甚至丢失。

共享集群架构(YashanDB 采用的方案):

所有节点都是平等的,共享同一套存储,均能处理读写业务;

任一节点故障,其他节点立即接管,无需进行升主操作,也不会有数据同步延迟和丢失。

简单来说,共享集群比主备架构具备更强的实时性和更低的数据丢失风险。

三、共享集群架构 RTO/RPO 优势分析

(1)RPO 优势(数据完整性)

主备架构:日志传输机制存在延迟风险,可能导致数据丢失。

共享集群架构:所有节点共享统一存储,无需数据复制,天然实现数据强一致,RPO 始终为零。

(2)RTO 优势(恢复速度)

主备架构:需要备库升主过程中业务完全不可用,恢复有延迟;

共享集群架构:节点故障时业务自动转移到其他节点,服务不中断,业务恢复快,RTO 通常在秒级完成。

四、YashanDB 共享集群的核心高可用技术揭秘

共享集群高可用机制由三个重要组件支撑:

  1. 崖山集群服务(YCS)


    YCS 负责集群的管理、节点资源监控与异常处理,核心机制包括:


    心跳机制:实时监测节点间和节点与共享存储间的状态。一旦出现心跳异常,自动触发节点隔离和重组。


    仲裁机制:当部分节点失效时,自动决策集群的重组方案,确保集群业务稳定。


    FENCE 机制:防止被剔除节点对共享存储的误操作(如脑裂双写),通过心跳、IO 在途状态、监控进程联合保障。

  2. 崖山文件系统(YFS)


    YFS 是 YashanDB 自研的共享文件系统,负责存储管理与高可用,核心特性包括:


    多副本机制:通过磁盘组与故障组划分,实现数据冗余。任意磁盘或故障组故障,不会导致数据丢失。


    故障自动修复:当读 IO 发现数据异常时,自动从冗余副本修复,用户无需感知。


    服务自动恢复:集群节点异常退出时,自动进行资源与服务调整。

  3. 数据库核心(DB 组件)

共享集群中的 DB 组件支持节点对等、快速恢复机制:

多活对等节点:每个节点均可提供全量服务,节点故障后自动转移,无需人为干预。

事务托管与快速恢复:当某节点异常,其他节点快速接管事务,自动回滚异常节点事务,无需事务分发,性能高效。

主备集群复制机制:在共享集群基础上还支持主备部署,通过 redo 日志传输方式实现集群间的容灾能力。

五、实例故障恢复实测表现

我们基于 TPCC 模型对 YashanDB 共享集群(两节点模式)进行实际压测:

运行 60 万 TPMC 压力后主动杀掉一个节点;

数据库业务从节点故障到服务完全恢复,耗时仅 8 秒;

业务过程中始终保持部分可用,不存在数据丢失。

六、不同场景下的 RTO/RPO 表现对比(总结)

(以上数据基于实测和官方资料整理)

七、总结

YashanDB 共享集群之所以被广泛认可并频频点赞,是因为它在高可用能力方面,真正解决了传统数据库架构存在的数据同步延迟、数据丢失风险和服务中断等痛点。通过自研的 YCS、YFS、DB 核心技术,以及先进的心跳监测、故障仲裁、脑裂防护等创新机制,达成了业界领先的高可用标准。

企业客户选择 YashanDB,不仅获得了出色的性能表现,更获得了业务持续运行的强力保障。

用户头像

还未添加个人签名 2025-04-09 加入

还未添加个人简介

评论

发布
暂无评论
为什么YashanDB共享集群的高可用能力被频繁点赞?核心机制到底强在哪?_数据库_数据库砖家_InfoQ写作社区