十年磨一剑,云原生分布式数据库PolarDB-X的核心技术演化

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 以MySQL为存储构建分布式数据库这条路上走了10余年,这中间积累了大量的技术,也走了一些弯路,未来我们也会坚定的走下去。

PolarDB-X使TDDL2007JavaDRDS20122014线+MySQLProxy2019PolarDB-XPolarDBMySQL10


PolarDB-XDRDSPolarDB-XPolarDB-XPolarDB-X

20122019

DRDS


  1. RDSMySQL2T
  2. ShareStorageCPU\
  3. 使


TDDLMySQLProxyCobar便DRDS


--使

DRDS


亿使AK/SKOpenAPI

image.png

ECSDRDSSLBSLSSQLDRDSRDS


广DRDSECSIP便DRDS


DRDS

DRDS


SQLMySQL

TDDL使SQLSQLSQLSQLSQL


DRDSTDDLSQL



  • MySQLDRDSMySQLMySQLDRDShttps://github.com/ApsaraDB/galaxysql/tree/main/polardbx-optimizer/src/main/java/com/alibaba/polardbx/optimizer/core/function
  • MySQLcharsetcollation使MySQLDRDS使MySQLDRDSMySQLcharsetcollationutf8mb4_general_cihttps://github.com/ApsaraDB/galaxysql/blob/main/polardbx-common/src/main/java/com/alibaba/polardbx/common/collation/Utf8mb4GeneralCiCollationHandler.java


https://zhuanlan.zhihu.com/p/374130246sql_modePolarDB-X


MySQL使KVFilterMySQLSQLJOINMySQLDRDS


image.png

DRDS
https://zhuanlan.zhihu.com/p/366312701


MPP

JoinHybridHashJoinLookupJoinNestedLoopJoinSortMergeJoinMaterializedSemiJoin


DRDS线SQLSQLSMPMPPhttps://zhuanlan.zhihu.com/p/346320114


spillout使15MTPCH1Ghttps://zhuanlan.zhihu.com/p/363435372


PolarDB-XSQL



使MySQLMySQL使


MySQL



  1. 使使GTSTXCSQLSQL
  2. 使GTMGTMGTMCoordinator使使GTM使
  3. XAMySQLXABUGMySQLXABUGXAXA


PolarDB-XMySQL


DRDS

SQL


0



  1. SQL


西

2019

之路


广


MySQLBB

CREATE TABLE t1(id INT,name CHAR(32),    addr TEXT,    PRIMARY KEY (id))

Bididwhereid=14id

image.png

BKeyRange


wherename='Megan'MySQLnamename

CREATE INDEX idx ON t1(name)

MySQLBTreeKeyt1BTreeidx

id->name,addrname->id

使wherename='Megan'访idxBname='Megan'id使idB

image.png

使



西使GlobalIndex


SQL

INSERT INTO t1 (id,name,addr) VALUES (1,"meng","hz");

ordersseller_idseller_idinsert

INSERT INTO t1 (id,name,addr) VALUES (1,"meng","hz");INSERT INTO idx (id,name) VALUES (1,"meng");

t1ididxname

image.png

DN


DML






  • ...



100%


  1. SNAPSHOTISOLATIONMySQLHLCTrueTimeTSOGTM使
  2. 100%TPCC10%HLCTSOTrueTimeGTMTSOTSOGrouping
  3. 使TSO/HLC1PCAsyncCommit



  • DDL

  • BigKey


使




使


使


使

化器






SQL


  • JOIN3x2x1=66
  • 3(3x3)x(2x3)x(1x3)=162


RBO


PolarDB-X使https://zhuanlan.zhihu.com/p/370372242


MySQL

MySQL


使MVCCTSO+2PCXA


MySQLMVCCstart_timestampMySQLtrx_idMVCC


  • TSOhttps://zhuanlan.zhihu.com/p/360160666
  • 使TSOtrx_id
  • commit_timestampTSO使strat_timestampcommit_timestamp


https://zhuanlan.zhihu.com/p/355413022使GTM

PolarDB-X

image.png

InnoDBLizardhttps://developer.aliyun.com/article/795058

image.png

PolarDB-X

  • PolarDB-X
    https://zhuanlan.zhihu.com/p/329978215
  • PolarDB-X
    https://zhuanlan.zhihu.com/p/338535541


PolarDB-X


PolarDB-X

PolarDB-X


CREATEDATABASEmode='auto'


MySQL

create table orders (id bigint,    buyer_id varchar(128) comment '买家',    seller_id varchar(128) comment '卖家',   primary key(id),index sdx(seller_id),index bdx(buyer_id))

image.png

MySQLOnline

CREATE INDEX idx_seller_id ON orders (seller_id);


PolarDB-XMySQLMySQLRCRR


PolarDB-X使


PolarDB-Xhttps://zhuanlan.zhihu.com/p/424174858



  • TiDBCockroachDB
  • OceanBaseYugabyteDB



使


使使10%90%



PolarDB-XJoinGroup/TableGroup线


PolarDB-X使使


使PaxosRPO=0

MySQL使湿


使PaxosRaftPaxos


MySQL


PolarDB-X使PaxosX-PaxosMySQL100%使X-PaxosMySQL


X-Paxos

  • PolarDB-XX-Paxoshttps://zhuanlan.zhihu.com/p/302845832
  • PolarDB-XPaxoshttps://zhuanlan.zhihu.com/p/315596644


MySQLBinlog

MySQL使MySQL

  • MySQLBinlogDDL
  • CDCOceanBaseTiDBMySQLBinlog使MySQL


PolarDB-XMySQLBinlog使MySQLBinlogCanalPolarDB-XBinlog

image.png

PolarDB-X

  • PolarDB-XMySQLBinloghttps://zhuanlan.zhihu.com/p/512114589
  • PolarDB-XBinloghttps://zhuanlan.zhihu.com/p/369115822

PolarDB-X


MySQLMySQL线异。MySQL使KVMySQLMySQLMySQL


便PolarDB-XCNDNMySQLMySQLServer线MySQLParser使RPCMySQLMySQLServerPolarDB-X


使PolarDB-XJoin使


PolarDB-XOSSOSS线SQL访使SparkOSShttps://zhuanlan.zhihu.com/p/477664175


HTAPHTAP使OKHA使HTAPHTAP出来


使PolarDB-X



PolarDB-Xhttps://www.zhihu.com/org/polardb-x

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
18天前
|
运维 Cloud Native 安全
云原生技术在现代企业中的应用与挑战####
本文探讨了云原生技术在现代企业IT架构中的关键作用,分析了其带来的优势和面临的主要挑战。通过实际案例分析,揭示了如何有效应对这些挑战,以实现业务敏捷性和技术创新的平衡。 ####
|
15天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
15天前
|
Cloud Native 持续交付 开发者
云原生技术在现代企业中的应用与实践####
本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
|
20天前
|
Kubernetes Cloud Native 物联网
云原生技术在现代软件开发中的应用与挑战####
本文探讨了云原生技术的兴起背景、核心理念及其在现代软件开发中的广泛应用。通过具体案例分析,揭示了云原生架构如何促进企业数字化转型,并指出了在实施过程中面临的主要挑战及应对策略。 ####
|
1天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
26 15
|
2天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
15 2
|
4天前
|
Cloud Native
邀您参加云原生高可用技术沙龙丨云上高可用体系构建:从理论到实践
云原生高可用技术专场,邀您从理论到实践一起交流,探索云上高可用体系构建!
|
22天前
|
存储 缓存 调度
性能提升利器|PolarDB- X 超详细列存查询技术解读
本文将深入探讨 PolarDB-X 列存查询引擎的分层缓存解决方案,以及其在优化 ORC 列存查询性能中的关键作用。
244 24
|
15天前
|
Cloud Native JavaScript Docker
云原生技术:构建现代应用的基石
在数字化转型的浪潮中,云原生技术如同一艘承载梦想的航船,引领企业驶向创新与效率的新海域。本文将深入探索云原生技术的核心价值,揭示其如何重塑软件开发、部署和运维模式,同时通过一个简易代码示例,展现云原生应用的构建过程,让读者领略到云原生技术的魅力所在。
|
15天前
|
运维 Cloud Native 持续交付
云原生技术深度探索:重塑现代IT架构的无形之力####
本文深入剖析了云原生技术的核心概念、关键技术组件及其对现代IT架构变革的深远影响。通过实例解析,揭示云原生如何促进企业实现敏捷开发、弹性伸缩与成本优化,为数字化转型提供强有力的技术支撑。不同于传统综述,本摘要直接聚焦于云原生技术的价值本质,旨在为读者构建一个宏观且具体的技术蓝图。 ####

相关产品

  • 云原生分布式数据库 PolarDB-X
  • 云原生数据库 PolarDB
  • 下一篇
    DataWorks