2022云栖精选—云原生一体化透明分布式数据库

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 黄贵阿里云数据库事业部资深技术专家PolarDB-X产品部负责人

lQLPJxbcF2cqNBvMiM0FeLCMz4ifcSGHeANpqgFLAEAA_1400_136.png

image.png                              

分布式数据库概念已经诞生几十年,早期更多只是作为研究对象直到2000 年左右真正走向应用,主要用于各大企业尤其是互联网企业解决扩展性高并发、高吞吐访问问题。直到近几年分布式数据库真正在商业化应用中投入使用

如今分布式数据库有效解决了很多问题比如新零售、电商、在线教育等场景下,解决了在线交易系统高并发写问题;在传统行业制造业政企、交通、能源等场景下,解决了海量数据大集中问题;在对于容灾有着非常高要求金融领域场景下,解决了跨地域高可用问题。

商业化应用过程中,分布式数据库仍然面临着多问题,主要包括以下几个方面:

第一,兼容性能否传统数据保持兼容。

第二,使用门槛是否必须要有足够大体量才用使用?能否像使用单机数据库一样简单方便

第三,扩展能力数据扩展以后面临跨数据分片,分布式事务是能否保持高性能?

第四,运维复杂度。分布式数据结构较复杂,涉及到集群化部署以及多个节点之间交互,如何控制运维复杂度?

image.png                              

PolarDB-X非常典型存储计算分离分布式架构。GMS是元数据管理中心;CN是状态计算节点,负责解析与执行;DN用于存放数据节点;CDC是全局一致 Binlog组件负责输出,与 MySQL 兼容全局一致日志内容。整个PolarDB-X架构在云平台上,因此称为云原生分布式数据库。

image.png 

PolarDB-X具有三个显著特点:

第一,兼容原生MySQL生态。

第二,一体化透明分布式,可以使用单机数据库一样使用,无需了解过多分布式概念。

第三,具有非常强大企业级能力。比如高可用能力,RPO=0情况下也可实现跨地域高可用;比如HTAP能力,可同时支持两种负载;另外,针对企业对于数据安全要求做了大量工作。

image.png

实际上要做到一个产品100%兼容另外一个产品难度极大,因为原有产品会不断地发展迭代。因此我们做兼容性的原则主要针对企业级用户需求和侧重点对大部分能力和语法实现了兼容。另外实现了生态上的兼容,以保证原有使用MySQL数据库的用户能够非常方便、透明迁移到分布式数据库上,无需修改应用,也无需修改数据结构,可以完整无缝对接到原有生态上。

image.png

为了实现生态兼容,我们开发CDC全局一致Binlog组件,能够提供完全兼容单机MySQLBinlog,无缝接入现有生态工具同步到下游生态。同时,PolarDB-X也可以作为MySQL的备节点,利用MySQL Replication组成高可用架构。

image.png

一体化的重要方向是集中分布式一体化。分布式数据库在商业应用过程中,并不是所有用户都在一开始具有大体量高并发需求,大多是随着业务发展逐渐出现大体量需求。

因此,PolarDB-X提供了两种不同形。一种为标准版,集中式形态,100% 兼容单机MySQL具有更低使用成本,另一种为企业版,用户可以从标准版平滑升级到分布式企业版形态。

image.png

为了在分布式层面提供更好的体验,我们提出了透明式的概念,其中重要能力AUTO 模式,可以在创建数据库时指定数据库自动模式,数据会根据容量大小做自动分区无需主动干预。但同时也保留手工分区能力,更好地契合业务。

image.png

另外,PolarDB-X提供了在线与历史归档数据一体化,可以通过事先设置数据过期规则自动历史数据归档存储到OSS。在线数据与历史数据可以通过统一SQL语法统一接入点进行访问目前历史归档数据相对在线数据存储成本最多下降了有20倍。这个功能目前已经在公有云版本上线。

image.png

分布式架构并不是银弹,无法解决所有问题,也存在设计上相应代价。

从架构上来看,即便是在单机系统上,即便只有2NUMA节点,跨NUMA Node的访问也会使性能下降至少1倍。而到了分布式系统上,总线变为网络,一旦涉及远程访问,性能更是会出现急剧下降,比如单个全局二级索引,写入性能下降30%这个是分布式系统带的非常显著代价。想要透明式的体验必然会导致性能不达预期,要想保持性能需要精心设计数据分布规则,小心地限制使用特性。

image.png

为此,PolarDB推出了表组的概念。根据业务特点,自动将有相近统一分区组合到同一个表组中。具有相同业务属性的表往往具有事务关联性原本需要做分布式跨数据分片事务处理变可以在单机上进行,有效消除分布式事务带来的开销。

且我们实现了自动化表组聚合,无需过多的人工干预。当然也支持人工指定规则更好利用特性,更好地优化。

image.png

数据分区以后带来的显著问题在于数据分布不均,包括数据量不均衡以及访问不均衡导致出现局部数据热点。识别到热点以后,PolarDB-X可以通过一些操作在不影响业务运行的情况下打散热点,让系统变得更平缓,从而实现分布式系统处理高并发请求。

image.png

要做好分布式系统运维,对运维人员以及数据架构有极高要求,必须了解服务系统概念,而且分布式系统本身系统复杂性较高分析异常时面临的链路较长。

PolarDB-X构建了可实时观测运维平台,能够对异常数据进行非常密集监控,通过分析实时洞察SQL执行过程中耗时线程瓶颈,并显示热力图,运维人员可以直观地查看每个分区上访问热度如何。还可进行诊断分析,包括规划分析、空间分析以及死锁分析。还会做系统关联,分析全链路每个阶段耗时性能指标以及系统整体运行情况最后根据系统运行情况做实时优化,比如对性能有瓶颈问题自动推荐索引。

通过以上手段,能够更有效定位问题,更有效分析数据,从而得到更平滑的体验

image.png

对于分布式系统,在运维过程中的一个非常典型问题是能否做实时数据字典定义。对于数据量非常庞大数据表而言,对表结构做定义往往牵涉到大规模的数据迁移工作,会对系统造成极大冲击

因此,我们设计了Online DDL所有DDL均在线,不影响业务运行。同时尽可能做并发数据结构修改数据搬迁以及复制,有效降低对系统冲击提升整个数据搬迁过程。

lQLPJxbcF2cqM2TM-M0CnrCgW_7LDpyh1wNpqgFKAPsA_670_248.png

相关文章
|
4月前
|
人工智能 运维 Cloud Native
2025 云栖精选资料:《从云原生到 AI 原生核心技术与最佳实践》PPT 免费下载
一本合集,四大主题,覆盖 AI 原生技术的核心版图。立即获取,与行业领跑者同行,抢占 AI 原生时代的技术先机!
|
7月前
|
存储 关系型数据库 分布式数据库
喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。
|
11月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
7月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
332 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
7月前
|
存储 监控 分布式数据库
ClickHouse分布式数据库动态伸缩(弹性扩缩容)的实现
实现ClickHouse数据库的动态伸缩需要持续的维护和精细的操作。从集群配置到数据迁移,再到监控和自动化,每一步都要仔细管理以确保服务的可靠性和性能。这些活动可以显著提高应用的响应性和成本效率,帮助业务根据实际需求灵活调整资源分配。
431 10
|
8月前
|
存储 关系型数据库 分布式数据库
【赵渝强老师】基于PostgreSQL的分布式数据库:Citus
Citus 是基于 PostgreSQL 的开源分布式数据库,采用 shared nothing 架构,具备良好的扩展性。它以插件形式集成,部署简单,适用于处理大规模数据和高并发场景。本文介绍了 Citus 的基础概念、安装配置步骤及其在单机环境下的集群搭建方法。
749 2
|
10月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
10月前
|
SQL 存储 分布式数据库
分布式存储数据恢复—hbase和hive数据库数据恢复案例
分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布式存储故障: 数据库底层文件被误删除,数据库不能使用。要求恢复hbase和hive数据库。
378 12