
高可用系统是大规模数据库集群中非常重要的一环。在一个高可用系统中,数据库集群能够持续提供稳定的服务,即使在面对故障或异常情况时也能保持可靠运行。这种系统能够确保数据的连续性、可用性和可靠性,以满足用户的需求。
实现高可用系统的关键要素和常用技术包括:
1.节点冗余与数据复制
2.故障检测与自动恢复
3.监控与告警
4.数据分片与分布式存储
5.数据备份与恢复
6.跨中心容灾
QianBase MPP(以下简称QianBase)是易鲸捷专为海量数据存储、复杂计算分析、人工智能、数据挖掘等业务场景设计的分布式HTAP数据库。QianBase采用完全无共享的分布式并行计算架构,在高可用实现上,QianBase通过多种关键技术,从多个角度保障节点故障后系统仍然正常运行且数据不丢失。
节点冗余与数据复制
在整体架构上,QianBase分为管理节点和计算节点两种角色。管理节点主要负责客户端连接及SQL任务分发,同时负责全局事务管理及统一元数据管理;计算节点主要负责用户数据的存储,以及分布式查询计算任务的执行。

图-QianBase MPP架构
为了保证系统的高可用,QianBase针对管理节点和计算节点均增加了冗余机制,并通过数据复制技术保证冗余数据的实时一致。
管理节点
管理节点保存整个集群的元数据信息。为了避免管理节点故障导致元数据不可用,QianBase支持用户配置备用管理节点,并基于WAL流复制技术实时同步主管理节点的日志数据。
计算节点
为充分发挥计算节点并行执行的能力,QianBase集群通常部署多个计算节点并且在每个计算节点上部署一个或多个实例,每个实例保存用户的一部分数据。为避免单个计算节点故障从而导致数据不可用,QianBase支持为每个实例配置一个镜像实例并放置于另外一个计算节点上。主实例和镜像实例之间的数据同步同样也是基于WAL流复制技术实现。
故障检测与自动恢复
无论是管理节点故障还是计算节点故障,QianBase都有相应的机制保证能快速检测故障并快速自动恢复,无须人工干预。
管理节点
针对管理节点的故障恢复,QianBase提供了两个相关的进程qbmasterwatchdog和qbmasterkeeper。
1.qbmasterwatchdog。负责主管理节点的主动失活,从而避免脑裂问题。此进程伴随主管理节点服务工作,轮询探测备用管理节点和qbmasterkeeper。
2.qbmasterkeeper。负责探测主管理节点以及主管理节点和备用管理节点的连通性,当主管理节点关闭时主动激活备用管理节点。此进程可部署在第三方监控节点或者任意一台计算节点上。

图-管理节点故障检测流程
计算节点
针对计算节点的故障恢复,QianBase提供FTS(Fault Tolerance Service)服务。FTS是一个隶属于管理节点的子进程,它通过定期轮询每个主实例的状态来获取每个主实例-镜像实例组的状态。
FTS的主要工作包括:
1.检测节点连通性(PROBE)
2.提升镜像节点为新的主节点(PROMOTE)
3.断开主实例与镜像实例之间的主备同步(SYNCREP_OFF)
FTS检查节点连通性的逻辑为:FTS进程周期性的向所有主实例节点发起连接进行探测;主实例检查复制状态,更新自身和镜像实例的状态,并发送给管理节点;FTS进程更新节点状态和FTS状态机。

图-计算节点故障检测流程
QianBase数据库不仅从数据库整体架构上实现了高可用以及故障自动恢复,同时也提供了独立的OM监控管理平台。OM监控管理平台提供QianBase数据库集群的状态监控能力,包括数据库组件健康状态、节点资源使用情况、数据库长时间执行语句等。同时,OM还提供告警机制,允许用户自定义告警规则来触发告警事件,并能够通过邮件、企业微信或手机短信等方式实时推送告警信息给运维管理人员,以便及时处理异常。



图-QianBase监控与告警平台
将数据按照一定的规则进行分片,并将分片数据存储在不同的计算节点上,实现数据的分布式存储和负载均衡,这样可以提高系统的吞吐量和扩展性。QianBase针对数据分片提供三种策略:
哈希分布。基于分布键计算哈希值,通过一致性哈希算法将数据打散到不同的计算实例上。哈希分布策略可以保证分布键相同的数据必然存储在相同的计算实例中,对于多表关联场景可以方便地实现本地计算,性能更佳。
随机分布。随机分布是将数据随机的落在每个计算实例上,不管数据内容是什么格式。它可以有效的规避哈希分布可能带来的数据分布倾斜问题,保证数据在每个实例上分布绝对均匀,不过在SQL查询时很可能需要对数据进行重新分布从而影响性能。
复制分布。复制分布是将表的数据在每个计算实例中都保存一份。针对于数据量较小且很少更新的维度表,可以设置为复制分布的方式,便于在和事实表进行关联查询时无须进行数据广播,性能更优。
定期执行备份可确保在发生数据损坏或系统故障时,可以恢复数据或重建QianBase数据库系统。QianBase数据库支持多种方式来备份和恢复数据库。
并行备份。通过每个计算实例并行的将数据写入本地磁盘存储。并行备份及并行恢复的命令分别为qbmbackup和qbmrestore。
非并行备份。数据必须通过网络从计算节点发送到管理节点,由管理节点将所有数据写入存储。非并行备份及恢复的命令分别为qdump/qdumpall和qrestore。另一种非并行方法是使用COPY命令,可以将全部或部分表从数据库复制到管理节点上的带分隔符的文本文件中,当前,COPY命令也支持指定ON SEGMENT语法实现并行备份恢复。
跨中心容灾是高可用实现的一种方式,主要是为了应对火灾、地震等极端地域性灾难事件而设计的安全保障手段。对于典型的两地三中心建设架构,QianBase数据库分别从管理节点和计算节点层面实现了多数据中心间的数据同步。
管理节点
QianBase在原有主备架构的基础上,通过Paxos多数派一致性算法,实现了多Master的架构,通过将多个Master分别部署在不同的数据中心实现多数据中心之间的元数据同步。
计算节点
QianBase基于WAL日志复制技术,通过一主多备的方式,将同一个实例的多个镜像实例分别部署在不同数据中心,从而实现用户数据的多数据中心同步。

图-QianBase两地三中心容灾部署
END
▼
往期精彩回顾
▼
易鲸捷简介
易鲸捷公司成立于2015年,专注于新一代融合型分布式数据库核心技术研发。公司核心团队源自天腾公司,曾创造过NonStopSQL等全球领先的数据库产品,核心技术完全自主可控。经过多年技术沉淀,易鲸捷已形成自主可控、国产可信、安全高效的三条完整分布式数据库产品线:QianBase xTP/QianBase TP/QianBase MPP,可面向不同行业应用提供完整的一站式解决方案,在金融、运营商、智能制造、5G等重点行业获得广泛应用。
网址:www.esgyn.cn

贵州易鲸捷信息技术有限公司 地址:贵阳市高新区长岭南路160号高科1号C座24楼 | |
北京易鲸捷信息技术有限公司 地址:北京市朝阳区大屯街道北苑路万科时代中心奥林A座10层 | |
上海易鲸捷信息技术有限公司 地址:上海市浦东新区金科路2889弄1号长泰广场A座6层03单元 | |
北京:010-84983409 | 上海:021-50822117 |
邮箱:info@esgyn.cn | 网址:www.esgyn.cn |





