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

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 黄贵阿里云数据库事业部资深技术专家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

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
打赏
0
0
1
1
12298
分享
相关文章
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
PolarDB 分布式版 V2.0,安全可靠的集中分布式一体化数据库管理软件
阿里云PolarDB数据库管理软件(分布式版)V2.0 ,安全可靠的集中分布式一体化数据库管理软件。
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
28 0
云原生时代的数据库选型与架构设计
云原生时代的数据库选型与架构设计
28 0
Citus 简介,将 Postgres 转换为分布式数据库
【10月更文挑战第4天】Citus 简介,将 Postgres 转换为分布式数据库
127 4
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
3月前
|
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
60 0