PolarDB简介
目前(20240314),PolarDB有两个版本:
PolarDB-PG
PolarDB PostgreSQL 版(PolarDB for PostgreSQL,简称“PolarDB-PG”)是阿里云自主研发的云原生关系型数据库产品,100% 兼容 PostgreSQL。采用基于 Shared-Storage 的存储计算分离架构,具有极致弹性、毫秒级延迟、HTAP 的能力和高可靠、高可用、弹性扩展等企业级数据库特性。同时,PolarDB 具有大规模并行计算能力,可以应对 OLTP 与 OLAP 混合负载。
PolarDB-X
PolarDB分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主研发的高性能云原生分布式数据库产品,其采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,具备企业级、云原生、高可用、高度兼容 MySQL 系统及生态等特点。
通过官方介绍,可以了解到PolarDB-PG 100%兼容PG,PolarDB-X高度兼容MySQL;至于为啥不是100%兼容呢?因为PolarDB-X分为“企业版”、“标准版”两个版本,后者100%兼容MySQL,前者高度兼容MySQL。这里就要讲一到PolarDB-X“企业版”、“标准版”的区别。
PolarDB是分布式数据库,由四个核心组件组成(其中DN和GMS使用相同的介质):
- 计算节点(CN, Compute Node):polardbx-sql
- 存储节点(DN, Data Node):polardbx-engine
- 元数据服务(GMS, Global Meta Service):polardbx-engine
- 日志节点(CDC, Change Data Capture):polardbx-cdc
所以,就架构上来说,PolarDB-X要比PolarDB-PG要复杂;所以,下一章节主讲PolarDB-X。
PolarDB-X架构
PolarDB-X 采用 Shared-nothing 与存储计算分离架构进行设计,系统由4个核心组件组成。
- 计算节点(CN, Compute Node)
计算节点是系统的入口,采用无状态设计,包括 SQL 解析器、优化器、执行器等模块。负责数据分布式路由、计算及动态调度,负责分布式事务 2PC 协调、全局二级索引维护等,同时提供 SQL 限流、三权分立等企业级特性。
- 存储节点(DN, Data Node)
存储节点负责数据的持久化,基于多数派 Paxos 协议提供数据高可靠、强一致保障,同时通过 MVCC 维护分布式事务可见性。
- 元数据服务(GMS, Global Meta Service)
元数据服务负责维护全局强一致的 Table/Schema, Statistics 等系统 Meta 信息,维护账号、权限等安全信息,同时提供全局授时服务(即 TSO)。
- 日志节点(CDC, Change Data Capture)
日志节点提供完全兼容 MySQL Binlog 格式和协议的增量订阅能力,提供兼容 MySQL Replication 协议的主从复制能力。
PolarDB-X“企业版”、“标准版”的区别
企业版安装的时候4个核心组件(CN、DN、GMS、CDC)都会装,甚至每个组件不止一个。可以通过kubernetes集群化部署(推荐)、pxd部署(测试)、源码编译。通过CN的54224端口进行访问。通pxd部署安装日志信息可以了解到:
# pxd tryout -t enterprise
……
aac8317b4f93:Extracting [==================================================>] 103MB/103MB
aac8317b4f93:Pull complete
Digest: sha256:7336bf20d3ae1c5127d20ca9a46e31b6439b7835314f406c87fad9d9ea9f6588
Status: Downloaded newer image for polardbx/polardbx-cdc:latest
Processing [###########-------------------------] 30% create gms node
Processing [#############-----------------------] 38% create gms db and tables
Processing [################--------------------] 46% create PolarDB-X root account
Processing [###################-----------------] 53% create dn
Processing [######################--------------] 61% register dn to gms
Processing [########################------------] 69% create cn
Processing [###########################---------] 76% wait cn ready
Processing [##############################------] 84% create cdc containers
Processing [#################################---] 92% wait PolarDB-X ready
Processing [####################################] 100%PolarDB-X cluster create successfully, you can try it out now.
Connect PolarDB-X using the following command:mysql -h127.0.0.1 -P54224 -upolardbx_root -pGTUMPyLt
标准版安装的时候只有DN,通过DN17775端口访问。这就跟MySQL没什么区别了。通pxd部署安装日志信息可以了解到:
# pxd tryout -t standard
……
Processing [###################-----------------] 53% create dn
Processing [#################################---] 92% wait PolarDB-X ready
Processing [####################################] 100%
PolarDB-X cluster create successfully, you can try it out now.
Connect PolarDB-X using the following command:mysql -h127.0.0.1 -P17775 -uadmin -pPGYansaq
并且,查看默认创建系统库和版本信息也不一样:
- 企业版:
系统库:information_schema
版本信息:8.0.3-PXC-5.4.18-20240111
- 标准版:
系统库:__recycle_bin__、information_schema、mysql、performance_schema、sys
版本信息:8.0.30