YashanDB共享集群V23.3 新特性解读

简介: 本文根据YashanDB集群首席架构师孟凡彬在“2024年国产数据库创新生态大会”上的演讲整理,聚焦YashanDB共享集群近一年的新特性。内容涵盖主备集群方案、存储架构优化、在线即时恢复技术、智能全局缓存刷盘策略等,大幅提升高可用性与性能。此外,还介绍了4节点共享集群的高性能实现、内核能力增强及未来规划,如在线弹性伸缩、多机执行优化等。YashanDB企业版和个人版已开放下载,欢迎体验。

本文基于YashanDB集群首席架构师-孟凡彬2024年11月在“2024年国产数据库创新生态大会”-“根”技术专场的演讲整理形成,主要对YashanDB共享集群近一年发布的新特性进行原理探讨与技术解析。

2023年11月,YashanDB首次推出采用单库多实例架构的多活共享集群形态(YashanDB for Cluster,YAC),并在今年3月,崖山共享集群也发布了首个长期维护的商用集群版本。这一年,YashanDB持续在可用性、性能/扩展性、内核稳定性以及易用性等多个维度增强产品能力,为用户市场打造一款高性能、高扩展、高可用的集群数据库产品。

image.png

图1 YashanDB共享集群架构图

全新推出主备集群方案,更全面的容灾解决方案

共享集群本身提供了多维度的高可用能力,如计算节点的高可用能力、共享存储的存储高可用能力等。更进一步,YashanDB推出了主备集群方案,通过在共享集群上集成主备特性,为用户提供全面的高可用和容灾解决方案。
image.png

图2 YashanDB共享集群主备集群部署架构图

主备集群方案下,主、备集群是独立的两套集群,每个集群具备独立的集群管理软件、集群文件系统等组件,集群与集群之间通过集群日志复制方式进行同步。通常而言,主备集群部署在同城的两个数据中心,为了进一步增强容灾能力,可以选择在异地部署一套容灾集群。

为了进一步降低使用集群成本,YashanDB支持主备集群非对等部署方式。目前YashanDB最大支持一主32备的部署方式**,支持最大性能、最大可用、最大保护三种保护模式,支持备集群故障倒换和主备集群平滑切换。

YashanDB主备集群方案在最新发布的企业版 V23 LTS版本中就可以使用,并且会在接下来的版本中持续增强备集群的能力,例如备集群的只读、备份、多实例并行回放等能力。

统一集群存储架构,集群级存储高可用能力增强

新版本中对共享集群存储层面进行了增强:一是崖山集群文件系统(YFS)采用全新的磁盘发现技术,可以对存储设备进行高效的管理以及使用;二是新版本对共享存储管理进行了重新定义,分为系统DG和数据DG,将崖山集群服务(YCS)使用的vote文件、YCR文件统一纳入系统DG中管理,数据DG中管理集群数据库相关的数据文件、redo文件等。如此能通过统一的集群存储架构,提供集群级存储高可用能力,如校验、冗余、IO均衡等。

此外,通过存储多副本技术增强高可用能力:一是通过数据盘多副本冗余,可以为用户提供灵活的多重存储可靠性保障,任意存储数据损坏可以做到自动检测、自动修复;二是通过系统盘多副本冗余,YCS可以快速进行集群脑裂仲裁。

image.png

图3 YashanDB共享集群存储架构图

更快速的在线即时恢复技术,RTO减少30%

对于共享集群而言,节点故障在线恢复的时间至关重要。特别是在业务繁忙期间,节点在线发生故障时,通常会累积大量的redo日志,这导致在线恢复过程需要更长的时间。

在新版本中,我们采用了更快速的在线即时恢复技术,基于YashanDB共享集群多节点多活的特点,当某个节点发生故障时,可以通过其他存活节点的在线实时日志分析,进行快速的恢复集构造,在线故障恢复的RTO时间减少30%。

image.png

图4 在线故障即使恢复示意图

智能全局缓存刷盘技术,根据应用场景智能选择

全局缓存管理方面,基于应用透明以及应用划分两种典型的集群使用场景,全局缓存呈现不同的特征。

应用透明场景下,各实例缓存中的数据大部分呈现全局性的特点,当产生交叉修改时,会产生历史的脏数据版本,这里叫PastCopy(简称PC),对应的PC持有者叫做PC Owner。缓存中维护PC有两个作用:一个是用来做在线恢复的加速,节点在线故障不需要从磁盘中的老版本开始,只需要从内存中最新的PC版本恢复即可。另外一个作用是各实例下全局恢复点的推进,当各实例中存在大量全局脏页时,需要进行全局脏页刷盘的控制,避免出现页面版本错乱。

应用划分场景下,各实例缓存中的数据大部分呈现本地化的特点,多实例间的交叉修改、访问较少,此时修改产生脏页大部分是本地脏页。

在上一个版本中,统一采用Owner刷盘机制进行全局缓存刷盘控制,新版本中采用智能化全局缓存刷盘策略,根据应用场景自动采用不同的策略进行刷盘。
image.png

图5 全局智能刷盘场景示意图

情形一:如果大部分为本地脏页,Owner可以直接本地刷盘,不产生任何全局交互。

情形二:全局脏页场景下,Owner节点进行刷盘,需要通过资源主节点进行刷盘控制,并在Owner刷盘后丢弃历史的PC版本,这些历史版本已经不再需要。

情形三:全局脏页场景下,PC Owner会优先请求Owner进行刷盘,保证每次刷盘收益最大化。

情形四:当Owner所在IO实例繁忙,PC Owner在缓冲区淘汰、本地checkpoint等一些特定的场景下需要进行快速刷盘时,采用就近PC Owner刷盘策略。

通过智能全局缓存刷盘技术,可以做到缓冲区的快速淘汰,大大提升checkpoint性能,同时提升全局脏页在各个实例间的传输效率,并且避免了特定场景集中到Owner节点刷盘,均衡多实例的IO负载。

发布4节点共享集群,性能高达520万tpmC

YashanDB今年发布了4节点共享集群,并且4节点的性能达到了520W,线性扩展比0.7。

国内这几年做共享集群的很多,为什么YashanDB可以做到性能的线性扩展?

崖山自研对等集群内核架构

最核心的是崖山采用了对等集群内核架构。
image.png

图6 对等集群内核架构图

一是去中心化事务引擎,所有实例完全对等。每个实例具备独立的事务引擎、缓冲区管理、锁管理等,所有实例完全对等,不存在中心化节点,而那些采用中心化设计的会存在一个显而易见的问题就是随着节点规模的增加,主控制节点的负载会越来越重。

二是基于时间戳的轻量级全局快照技术。同样是实现高性能集群的基石,通过事务提交批量异步broadcast SCN,消息交互lamport LSN,避免了大并发下的全局快照锁问题,同时保证各实例实时的事务一致性和正确性。

三是采用页内锁技术,锁随着页面的转移而转移,不需要全局事务锁来做事务并发控制。

这几点是很多开源数据库以及基于开源数据库体系的生态所不具备的。

崖山自研聚合内存技术,支持多节点扩展

崖山的全局内存融合技术设计同样考虑了多节点下的扩展性。

一是采用Request、Master、Owner的消息交互模型,每次消息交互最多三个节点参与,不受节点规模增加影响。

二是采用自适应多节点一致性读策略转换。举个例子一个实例会低概率访问另外一个实例的数据,常规情况下是获取持有实例的一致性读页面副本而不会真正申请并持有资源,但当短时间出现大量访问时可以自动转换为请求页面资源,后续直接访问本地缓存,不需要进行跨节点访问,进而提升访问性能。

崖山针对国产平台优化集群性能

YashanDB针对国产平台进行了优化。在数据库层面,针对热点变量、锁进行优化,减少跨NUMA下的冲突访问;内核层面,进行进程/线程、网卡队列绑核,充分利用CPU资源。

内核能力持续增强,更可靠、更易用、易运维

除了性能外,YashanDB在可靠性、易用性、易运维等多个方面进行了增强,提升用户使用体验,降低运维成本。

可靠性方面,各组件多维度优化。**全方位优化ICS,包括消息重试、保序、去重,提升在各类网络环境下的稳定性;YFS新支持快速恢复区,存储故障可以通过恢复区进行快速恢复;新增YCS守护进程YCS monito**r,增强集群管理软件自身的可靠性。

易用性方面,提升集群的使用体验。**新增自适应参数调优,对私网消息内存管理,集群后台服务线程调度等集群相关的参数做了优化,基于业务负载、系统可用资源自动调优相关参数,新版本中不需要用户手动配置,降低用户使用集群的成本;YFS新支持在线磁盘管理**,可以在线添加、删除修改磁盘,方便进行存储管理。

易运维方面,提供精细化运维手段。**一是GV视图增强,所有V视图对应的GV视图已全部支持,同时GV视图支持各种复杂的关联查询;二是提供了全局资源历史变化的追踪**,以及全局资源信息的导出,方便进行集群的运维和分析。

总结与展望

总结来看,崖山共享集群全新的版本主要在高可用、高性能以及内核能力等维度做了全方位的增强,进一步提升了用户的使用体检。

崖山共享集群后续会重点考虑以下几个方向:

支持集群在线弹性伸缩。基于应用负载,计算节点秒级弹性扩缩,降低用户的运营成本,并且支持共享存储在线升级、在线扩容、IO负载均衡等。崖山预计在25年版本推出集群在线弹性伸缩。

支持集群多机执行。面向服务亲和的场景,提供对象级亲和全局缓存服务,降低全局资源跨节点的访问代价。同时基于一定的集群数据分布特点,推出集群多机执行能力,让计算在数据亲和的节点节点进行,提升计算效率。

优化集群云化与多租场景的性能。云化与多组场景下,主要解决高延迟、低带宽下的读写优化以及集群在线节点故障如何快速恢复,集群面向多租的资源管理以及负载均衡。

在一体机形态下进一步做软硬协同优化。主要有计算能力硬件下推,就近数据端借用硬件技术加速。基于存储的容灾、快照、压缩、加密等技术。

YashanDB企业版、个人版及相应配套工具的最新版本均已在官网开放下载,没有任何限制跟门槛,欢迎所有的用户、开发者下载体验。可复制下方链接或点击阅读原文跳转查看。

下载链接:https://download.yashandb.com/download

相关文章
|
Python Windows
Anaconda环境与Python的配置方法
本文介绍在Win10电脑中,安装Anaconda环境与Python语言的方法~
4517 1
Anaconda环境与Python的配置方法
|
JSON Linux 数据安全/隐私保护
|
11月前
|
Web App开发 人工智能 JSON
魔搭社区创空间全新支持 Gradio 5
ModelScope 创空间已全新支持 Gradio 5 🎉🎉
|
设计模式 Java
常用设计模式介绍~~~ Java实现 【概念+案例+代码】
文章提供了一份常用设计模式的全面介绍,包括创建型模式、结构型模式和行为型模式。每种设计模式都有详细的概念讲解、案例说明、代码实例以及运行截图。作者通过这些模式的介绍,旨在帮助读者更好地理解源码、编写更优雅的代码,并进行系统重构。同时,文章还提供了GitHub上的源码地址,方便读者直接访问和学习。
常用设计模式介绍~~~ Java实现 【概念+案例+代码】
|
11月前
|
缓存 JavaScript 持续交付
“解锁Node.js新纪元:如何借助Docker打造快速、高效且一致性的现代应用部署体验”
【10月更文挑战第25天】本文介绍了如何使用Docker容器化Node.js应用,包括容器化的好处、创建Docker镜像的步骤、构建和运行镜像的方法、管理依赖、保持应用更新以及调试技巧。通过容器化,可以提高应用的可移植性和可扩展性,简化开发和部署流程。
190 2
|
应用服务中间件
Spring-boot启动失败 Unregistering JMX-exposed beans on shutdown 异常处理
Spring-boot启动失败 Unregistering JMX-exposed beans on shutdown 异常处理
602 0
elasticsearch 怎么删除过期的数据
使用elasticsearch收集日志进行处理,时间久了,很老的数据就没用了或者用途不是很大,这个时候就要对过期数据进行清理.但是es5.0之后就不支持ttl,那怎么办呢? 1,请使用官方的工具elasticsearch-curator 2,使用delete-by-query方法删除特定时间范围的数据 第一种这里不再介绍了,直接看官网吧,主要说下第二种
|
监控 Apache 流计算
时间的守卫者:揭秘Flink中Watermark如何掌控数据流的时空秩序?
【8月更文挑战第26天】Apache Flink是一款功能强大的流处理框架,其Watermark机制为核心,确保了系统即使面对数据乱序或延迟也能准确处理时间相关的特性。Watermark作为一种特殊事件,标记了所有在此之前发生事件的最晚时间点,这对于时间窗口操作至关重要。
201 0
|
算法 搜索推荐 数据挖掘
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(续)
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(续)
842 1
|
运维 前端开发 Java
云巧组装式交付介绍
Gartner在2021年10月19日,正式发布了2022年重要战略趋势。其中包括了“组装式应用”这一战略。 云巧是“组装式应用”理念的落地,是围绕生态,面向产业的首个产业数字组件中心。 你可以从本文了解组装式开发的理念,以及阿里云GTS通过组装式理念交付项目的最佳实践:云巧。 如果你是阿里及阿里云生态合作伙伴的开发者,可以进一步访问云巧首页:https://gts.work/portal/yunqiao ,进一步了解云巧的能力。 即使你不是阿里及阿里云生态合作伙伴的开发者,也可以在自己的日常的开发过程中通过运用可组装式理念提升业务交付效率。
5900 1
云巧组装式交付介绍