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

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 以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分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
4天前
|
运维 Cloud Native 云计算
云端新篇章:云原生技术的崛起与影响
本文旨在深入探讨云原生技术的概念、特点及其在现代信息技术领域中的应用和影响。通过对云原生技术的详细解析,本文将揭示这一新兴技术如何推动企业数字化转型,以及它对未来软件开发、部署和运维模式的潜在变革。不同于传统的云计算模式,云原生技术以其独特的优势,正在重塑IT行业的格局。
25 7
|
3天前
|
Cloud Native 持续交付 云计算
云原生技术:重塑软件开发与架构的未来
在云计算的推动下,云原生技术正逐渐成为软件开发的新标准,强调利用容器、服务网格、微服务等技术实现敏捷开发与高效运维。本文探讨了云原生技术如何重塑软件开发与架构的未来,介绍了其核心概念(如容器化、微服务架构、CI/CD)及优势(如敏捷性、可扩展性、成本效益),并讨论了其在金融服务、电子商务和物联网等领域的实际应用及面临的挑战。尽管存在技术复杂性和人才短缺等问题,云原生技术仍将成为软件开发的主流趋势。
|
3天前
|
Cloud Native 持续交付 云计算
云原生技术:企业数字化转型的新引擎
在当今数字化浪潮中,云原生技术作为推动企业创新与转型的关键力量,正引领着一场技术革命。本文深入探讨了云原生的核心概念、技术特点及其对企业IT架构和运营模式的深远影响。通过分析云原生在实际案例中的应用,揭示了其如何助力企业实现敏捷开发、弹性扩展和成本优化等目标。同时,本文也展望了云原生技术的未来发展趋势,强调了掌握这一技术对于企业保持竞争力的重要性。
18 10
|
4天前
|
Cloud Native 安全 持续交付
云原生技术在现代企业中的应用与挑战
本文探讨了云原生技术的基本概念、主要特点以及其在现代企业中的应用和面临的挑战。通过分析云原生技术如何提高应用的灵活性、可扩展性和开发效率,揭示了其对企业数字化转型的重要性。同时,文章也讨论了企业在采用云原生技术时需要克服的技术难点和文化转变问题。
|
6天前
|
Kubernetes Cloud Native 开发者
云原生技术:打造弹性、可扩展的现代应用
【9月更文挑战第13天】在这篇文章中,我们将探索云原生技术的核心概念及其对现代软件开发的意义。通过实际代码示例,我们会深入理解如何构建和部署在云端的应用,确保它们能够自动扩展、自我修复,并在全球任何地方无缝运行。文章将揭示云原生技术如何赋能开发者和组织,以应对不断变化的市场需求。
|
1天前
|
运维 Cloud Native Devops
云原生技术:重塑现代IT架构的新引擎
在当今数字化转型的浪潮中,云原生技术以其敏捷、高效和可扩展的特性,正引领着一场IT架构的革命。本文旨在深入探讨云原生的概念、核心组件及其在现代企业中的应用价值,揭示其如何助力企业实现更快的创新速度、更高的资源利用率以及更优的用户体验。不同于传统的云计算模式,云原生从一开始就为云环境量身打造,通过容器化、微服务、DevOps等关键技术,解锁了软件开发和运维的新范式。
|
1天前
|
运维 Cloud Native Devops
探索云原生技术:构建现代应用的全新方式
本文将深入探讨云原生技术的核心理念和实际应用,揭示其在现代应用开发和部署中的重要性。我们将从云原生的定义开始,逐步解析其关键技术如容器化、微服务、DevOps等,并通过具体案例展示这些技术如何帮助企业实现高效、灵活和可扩展的应用架构。无论是开发者、运维人员还是企业决策者,本文都将为您提供有价值的见解和实用的建议。
|
2天前
|
Kubernetes 负载均衡 监控
深入云原生技术:Kubernetes集群部署与管理
【9月更文挑战第17天】在数字化转型的浪潮中,云原生技术以其灵活性和可扩展性成为企业新宠。本文将引导读者探索云原生的核心组件——Kubernetes,通过实际案例分析其部署与管理流程,旨在帮助技术从业者和企业决策者理解如何利用Kubernetes提升应用的可用性和性能。从基础概念到操作实践,我们将一同见证云原生技术的变革力量。
|
4天前
|
Kubernetes Cloud Native Docker
云原生技术之旅:从容器到微服务
【9月更文挑战第14天】随着云计算的蓬勃发展,云原生技术已成为现代软件开发的重要组成部分。本文将深入探讨云原生的核心概念,包括容器化、微服务架构以及它们如何共同推动企业快速创新。通过实际案例,我们将展示如何利用Kubernetes和Docker等工具构建和管理高效的云原生应用。无论你是初学者还是经验丰富的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在云原生时代乘风破浪。
20 5
|
2天前
|
运维 监控 Cloud Native
云端漫步:探索云原生技术的奥秘
【9月更文挑战第17天】在数字化浪潮的推动下,云原生技术如同一股清新的风潮,正在改变着软件开发和运维的方式。本文将深入浅出地介绍云原生的基本概念、核心价值以及实际应用中的一些注意事项,旨在为读者揭开云原生技术的神秘面纱,帮助大家更好地理解和运用这一前沿技术。

相关产品

  • 云原生分布式数据库 PolarDB-X
  • 云原生数据库 PolarDB