深度评测:PolarDB-X 开源分布式数据库的优势与实践

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 本文对阿里云开源分布式数据库 PolarDB-X 进行了详细评测。PolarDB-X 以其高性能、强可用性和出色的扩展能力在云原生数据库市场中脱颖而出。文章首先介绍了 PolarDB-X 的核心产品优势,包括金融级高可靠性、海量数据处理能力和高效的混合负载处理能力。随后,分析了其分布式架构设计,包括计算节点、存储节点、元数据服务和日志节点的功能分工。评测还涵盖了在 Windows 平台通过 WSL 环境部署 PolarDB-X 的过程,强调了环境准备和工具安装的关键步骤。使用体验方面,PolarDB-X 在处理分布式事务和实时分析时表现稳定,但在网络问题和性能瓶颈上仍需优化。最后,提出了改进建

深度评测:PolarDB-X 开源分布式数据库的优势与实践

PolarDB分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主研发的高性能云原生分布式数据库产品,其采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,具备企业级、云原生、高可用、高度兼容 MySQL 系统及生态等特点。

一、产品介绍

PolarDB 作为阿里云的核心数据库产品,以其高性能、高可用性和可扩展性在业界享有盛誉。特别是在Gartner的全球云数据库报告中,PolarDB 连续四年稳居“领导者”象限,充分证明了其在技术实力和市场认可度上的优势。此次评测聚焦于PolarDB的开源版本,特别是PolarDB-X(分布式版)和PolarDB-PG(PostgreSQL兼容版),旨在通过实际部署和使用,评估其易用性、性能及文档质量。

1.1 产品优势

金融级高可靠场景。基于X-Paxos实现的数据三副本强一致,让业务轻松具备跨多可用区的高可用与容灾能力。

海量数据归集场景。PolarDB-X的平滑扩展能力,让客户轻松实现横向和纵向的容量变更且保持访问性能不变。

超高并发访问场景。深度优化的PolarDB-X计算下推能力显著提升在线事务处理性能,令访问尖峰丝般顺滑。

HTAP混合负载场景。无需进行ETL,可对在线数据做实时报表分析。

1.2 架构

PolarDB-X 采用 Shared-nothing 与存储计算分离架构进行设计,系统由4个核心组件组成。

image.png

  • 计算节点(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分布式版存储海量数据,通过AnalyticDB进行数据分析,可构建智能化的城市公交系统,满足路线规划、站点查询、公交预报、业务报表结算、公交调度等需求,提升运营效率和服务水平。

image.png

二、评测内容

部署和安装开源 PolarDB-X 的指南

本指南介绍如何在 Windows 平台上通过 WSL 环境部署和安装开源 PolarDB-X 数据库。

准备环境

首先,需要在系统中安装 Python3 和 Docker,以便使用 PXD 工具来部署 PolarDB-X 数据库。

下载与安装

为了在 Windows 平台上运行 PolarDB-X,需要通过 WSL(Windows Subsystem for Linux)使用 Ubuntu 发行版。

步骤一:安装 WSL

  1. 按照 微软官方文档 进行 WSL 的安装。建议使用默认的 Ubuntu 发行版。

步骤二:安装 Docker Desktop

  1. 根据 Docker 官方文档 的指南安装 Docker Desktop,以确保 Docker 可以在 WSL 环境中运行。
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

image.png

步骤三:安装 Python3

如果系统尚未安装 Python3,请使用以下命令进行安装:

sudo apt-get update
sudo apt-get install python3
sudo apt-get install python3-venv

image.png

步骤四:安装 pip

确保已安装 pip,这是 Python 的包管理工具:

sudo apt-get install python3-pip

步骤五:安装 MySQL 命令行工具

根据 MySQL 官方文档 的指南安装 MySQL Shell 以便进行数据库操作。

安装 PXD 工具

步骤一:创建虚拟环境

为了避免影响系统的全局环境,建议在虚拟环境中安装 PXD 工具。请使用以下命令创建和激活虚拟环境:

python3 -m venv venv
source venv/bin/activate

步骤二:升级 pip

在安装 PXD 之前,建议先升级 pip 以确保安装过程顺利:

pip install --upgrade pip

步骤三:安装 PXD

通过以下命令安装 PXD 工具:

pip install pxd

如果在国内,可能会遇到从 pypi 下载包速度较慢的问题,可以使用阿里云的镜像源:

pip install -i https://mirrors.aliyun.com/pypi/simple/ pxd

步骤四:验证安装

安装完成后,使用以下命令验证 PXD 是否安装成功:

pxd version

如果执行上述命令时遇到如下错误:

Click discovered that you exported a UTF-8 locale but the locale system could not pick up from it because it does not exist.

请执行以下命令,然后重试:

export LC_ALL=en_US.utf-8
export LANG=en_US.utf-8

至此已经成功在 Windows 平台上通过 WSL 环境部署并安装了 PolarDB-X 数据库。

部署验证:PolarDB-X 部署指南

本部分介绍如何在 PolarDB-X 中部署企业版集群,适用于需要高并发、大规模数据处理和加速分析的企业级场景。

部署 PolarDB-X 企业版集群

PolarDB-X 企业版是一个分布式架构集群,支持大数据量处理和复杂查询。可以通过 pxd tryout 命令快速创建一个最新版本的 PolarDB-X 企业版集群,默认包含一个 GMS、一个 CN、一个 DN 和一个 CDC 节点:

pxd tryout

创建指定版本的实例

如果需要创建指定版本的 PolarDB-X 实例,可以使用以下命令获取各个组件的最新镜像标签(tag):

curl -s "https://polardbx-opensource.oss-cn-hangzhou.aliyuncs.com/scripts/get-version.sh" | sh

示例输出(以 PolarDB-X V2.4.0 版本为例):

CN polardbx/polardbx-sql:v2.4.0_5.4.19
DN polardbx/polardbx-engine:v2.4.0_8.4.19
CDC polardbx/polardbx-cdc:v2.4.0_5.4.19

使用以下命令创建指定版本的实例,同时指定 CN、DN 和 CDC 节点的副本数量和版本:

pxd tryout -cn_replica 1 -cn_version v2.4.0_5.4.19 -dn_replica 1 -dn_version v2.4.0_8.4.19 -cdc_replica 1 -cdc_version v2.4.0_5.4.19

创建三副本集群

tryout 模式默认创建单副本模式的 GMS 和 DN。如果需要创建基于 Paxos 的三副本集群,可以使用以下命令:

pxd tryout -leader_only false

注意:三副本模式要求 pxd 版本 >= 0.3.0

image.png

获取连接信息

创建完成后,系统会输出 PolarDB-X 数据库的连接信息。请注意,管理员账号的密码是随机生成的,仅在此时显示,请务必妥善保存。

初步体验 PolarDB-X 的分布式特性

使用 MySQL 客户端连接 PolarDB-X 数据库后,可以执行以下 SQL 命令来体验其分布式特性。更多 SQL 详情请参考 SQL 概述

-- 检查 GMS 状态
select * from information_schema.schemata;

-- 创建分区表
create database polarx_example partition_mode='partitioning';

use polarx_example;

create table example (
  `id` bigint(11) auto_increment NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `score` bigint(11) DEFAULT NULL,
  primary key (`id`)
) engine=InnoDB default charset=utf8 
partition by hash(id) 
partitions 8;

insert into example values(null,'lily',375),(null,'lisa',400),(null,'ljh',500);

select * from example;

show topology from example;

-- 检查 CDC 状态
show master status;
show binlog events in 'binlog.000001' from 4;

-- 检查 DN 和 CN 状态
show storage;  
show mpp;

以上就是在 PolarDB-X 中部署企业版集群的详细步骤。

执行如下命令,登录PolarDB-X数据库。

mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456

image.png

查看 PolarDB-X 集群状态

执行如下命令查看 PolarDB-X 集群状态:

pxd list

image.png

卡点与问题

  • 在部署过程中,可能会遇到网络下载速度慢、依赖项安装失败、编译错误等问题。
  • PXD工具或源码中的某些默认配置可能需要根据实际环境进行调整。

产品改进建议

  • 优化官网和帮助文档的清晰度与详细度,特别是针对初学者的指南。
  • 提供更多的预编译包和镜像,减少用户编译的复杂性和时间成本。
  • 加强错误信息的提示和解决方案的提供,帮助用户快速定位并解决问题。

PolarDB-X 开源评测心得总结

在对 PolarDB-X 开源版本进行评测后,我对其作为阿里云的高性能云原生分布式数据库的实力有了更加深入的了解。PolarDB-X 展现了其在高并发、海量数据处理和高可用性方面的强大优势,同时也在实际部署过程中暴露了一些可改进的地方。

产品优势

  1. 高可用性与高可靠性:PolarDB-X 基于 X-Paxos 实现了数据三副本强一致性,这不仅提升了系统的可靠性,也为跨多个可用区的高可用性提供了保障。无论是在金融级高可靠场景还是在海量数据处理场景中,这一特性都显得尤为重要。

  2. 优异的扩展能力:其平滑的横向和纵向扩展能力使得系统能够适应不断增长的数据和业务需求,确保了在面对大规模数据和高并发请求时,性能依然稳定。

  3. 高效的混合负载处理:PolarDB-X 的 HTAP(Hybrid Transactional/Analytical Processing)特性使其能够同时处理在线事务和实时分析,无需进行 ETL 操作。这对数据分析和实时决策提供了极大的便利。

架构设计

PolarDB-X 的架构设计具有很高的合理性和实用性。计算节点、存储节点、元数据服务和日志节点的分离,使得系统能够在不同层面上进行高效的资源管理和任务处理。计算节点负责 SQL 解析和执行,存储节点确保数据持久化与一致性,元数据服务维护全局信息,日志节点支持增量订阅和复制,这种分布式设计为系统提供了极高的灵活性和可靠性。

部署与使用体验

  1. 部署过程:在 Windows 平台上通过 WSL 环境进行 PolarDB-X 的部署和安装,整体过程较为顺利。然而,需要注意环境准备的细节,如 Python3、Docker 和 MySQL Shell 的安装,以及 PXD 工具的正确配置。使用国内镜像源可以有效提高下载速度和安装成功率。

  2. 使用体验:通过实际操作和测试,PolarDB-X 的分布式特性表现出色。无论是创建分区表、处理分布式事务,还是查看集群状态,系统的表现都非常稳定。不过,可能会遇到网络问题和性能瓶颈,需要根据实际情况进行调整和优化。

改进建议

  1. 文档和帮助支持:目前的文档和帮助文档对于初学者来说可能不够详细和友好。建议进一步优化文档内容,提供更详细的教程和常见问题解答,以帮助用户更快上手和解决问题。

  2. 预编译包和镜像:提供更多的预编译包和镜像可以显著减少用户的编译时间和复杂性。这样可以进一步提升用户体验,使得 PolarDB-X 的部署过程更加顺畅。

  3. 错误信息和解决方案:加强对错误信息的提示和解决方案的提供,可以帮助用户更快速地定位和解决问题。这不仅能提升用户的操作体验,也能提高系统的整体稳定性。

总结

总的来说,PolarDB-X 作为一个高性能的分布式数据库系统,凭借其强大的功能和灵活的架构,能够满足各种复杂的业务需求。尽管在实际部署和使用过程中存在一些挑战,但其出色的性能和功能优势使得这些挑战在总体上是值得克服的。随着文档支持和工具的进一步优化,PolarDB-X 有望在未来的数据库市场中发挥更大的作用。

附录

PolarDB云原生数据库自研数据库_数据库-阿里云 (openpolardb.com)

image.png

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
相关文章
|
3天前
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
5天前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
1月前
|
关系型数据库 MySQL Serverless
探索PolarDB MySQL版:Serverless数据库的灵活性与性能
本文介绍了个人开发者对阿里云PolarDB MySQL版,特别是其Serverless特性的详细评测体验。评测涵盖了产品初体验、性能观测、Serverless特性深度评测及成本效益分析等方面。尽管试用过程中遇到一些小问题,但总体而言,PolarDB MySQL版表现出色,提供了高性能、高可用性和灵活的资源管理,是个人开发者和企业用户的优秀选择。
|
13天前
|
SQL 关系型数据库 分布式数据库
Citus 简介,将 Postgres 转换为分布式数据库
【10月更文挑战第4天】Citus 简介,将 Postgres 转换为分布式数据库
57 4
|
14天前
|
关系型数据库 分布式数据库 数据库
PolarDB 开源:推动数据库技术新变革
在数字化时代,数据成为核心资产,数据库的性能和可靠性至关重要。阿里云的PolarDB作为新一代云原生数据库,凭借卓越性能和创新技术脱颖而出。其开源不仅让开发者深入了解内部架构,还促进了数据库生态共建,提升了稳定性与可靠性。PolarDB采用云原生架构,支持快速弹性扩展和高并发访问,具备强大的事务处理能力及数据一致性保证,并且与多种应用无缝兼容。开源PolarDB为国内数据库产业注入新活力,打破国外垄断,推动国产数据库崛起,降低企业成本与风险。未来,PolarDB将在生态建设中持续壮大,助力企业数字化转型。
56 2
|
1月前
|
关系型数据库 分布式数据库 数据库
来!跟通义灵码一起参加PolarDB 数据库创新设计赛,突破传统,探索人机协作
无论你是数据库新手,还是技术大咖,通义灵码邀请你参加2024 年全国大学生计算机系统能力大赛 PolarDB 数据库创新设计赛(天池杯),新参赛模式启动,挑战极限!
|
4天前
|
SQL NoSQL MongoDB
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
14 0
|
1月前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL数据库场景体验与测评
本文介绍如何在PolarDB上部署数据库,包括登录控制台、配置账号与数据库管理、执行SQL查询及调整Serverless配置等内容。通过创建测试表和数据操作演示了基本数据库管理功能,并展示了如何设置资源弹性扩缩、监控及备份数据。此外,还提供了关于节点切换、压测、加速复杂SQL查询、弹性并行查询及高可用性的详细场景体验说明,全方位展示了PolarDB的强大功能。
|
1月前
|
存储 关系型数据库 分布式数据库
揭秘PolarDB:中国云原生数据库的超级英雄,如何颠覆传统数据存储?
在数字化时代,数据成为企业的核心资产,而云原生数据库则是推动企业转型的关键。PolarDB凭借其先进的存储计算分离架构,在性能、可靠性和易用性方面脱颖而出,成为国内领先的选择。它支持多种数据库引擎,提供多副本存储机制,并采用按量付费模式,有效降低管理和成本压力,助力企业实现高效、可靠的数字化转型。
49 1
|
1月前
|
关系型数据库 分布式数据库 数据库
报名啦|PolarDB数据库创新设计赛(天池杯)等你来战
2024年全国大学生计算机系统能力大赛PolarDB数据库创新设计赛(天池杯)已启动报名,面向全国高校全日制本专科学生。大赛由多家机构联合主办,旨在培养数据库领域人才,促进产学研合作,设有丰厚奖金与奖项。报名截至10月7日,决赛将于12月13日举行。更多详情及报名请访问大赛官网。