《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL 基础入门(1)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL 基础入门(1)

架构介绍


(一)分布式集群架构


首先介绍一下基本架构。

image.png


上图左边是PGXC的典型的架构图,PGXC是PG的一个分布式的版本,也是PG最重要的分布式版本之一,目前在国内的大型公司(如阿里、腾讯等)都是用类似的架构来做分布式。


它包含几个角色,分别是CN、DN和GTM。


CN接受用户的业务请求,包含了全局的Catalog,所以它可以根据业务请求到各个DN上去获取数据,把数据获取回来以后,它会把这个数据再返回给客户。我们虽然不是完全基于PGXC来开发我们的PolarDB分布式,但是我们会用到PGXC的很多组件和一些思想,所以可以看到上图的右边,我们的系统里面也包含了CN、DN、事物相关的、GTM相关的一些组件。


在这种情况下,整个集群的管理方面,我们采用了pgxc_ctl的组件来进行集群的管理,从运维和管理这个角度来看,我们就不需要自己来开发了。


另外,我们用pg_cron的组件来做集群的心跳的管理,所以它会定期调用pgxc_ctl进行主备切换,故障检测等类似的动作,至于底层的这种DN节点或者CN节点的控制,使用的是PG原生的initdb和pg_ctl相关的组件。为了便于用户使用,最外边我们开发了onekey这样的脚本。针对docker环境我们开发了一些脚本,便于用户更好地调用pgxc_ctl对整个集群进行控制。


虽然现在CN和DN都是存在的,但是可能后期我们会做CN、DN的合一,另外就是GTM和CN可能也会合一,因为我们的GTM使用的是逻辑时钟,它不需要像PGXC这种snapshot的方式传很多的数据,所以可能放到CN上会更合适。另外这一次我们主要是开源了DN组件,CN和GTM的很多功能是没有开源的,但是代码里面可能会少量的涉及到这部分的内容。以上就是它的一个基本架构。


(二)高可用架构(流复制、Paxos三副本、Active-Active逻辑复制)

下面讲一下高可用架构。


image.png


可以看到图中左边和右边的两个分别是三套集群,这三套集群可能部署在不同的区域。左边这套集群是有了我们的

CN、DN,首先它的CN和DN是支持主备的,而它主备的方式包含好几种,第一种就是PG原生的流复制的方式进行配置主

备。另外,我们扩展了一个Paxos三副本方式的主备,除了这个之外,尤其是不同区域的DN之间,我们可以配置双向逻

辑复制这样的主备关系。


双向逻辑复制的特点是可以在任意的节点上写请求,并把这个企业请求同步到它的复制组上的任何一个节点。当然,现在

不完善的地方可能还是在冲突情况下的检测方面,这方面可能需要客户自己来控制。另外,逻辑复制有一个更大更好的特

点是可以很容易地过滤日志,这样在跨数据中心场景下,其实不需要所有的日志都同步到其它的数据中心,比方说有些比

较不重要的,或者是一些类似于vacuum这样不是很重要的操作,其实可以不用同步其他数据中心。在这种情况下,它的

数据量会减少,所以在做跨数据中心的场景下,这种部署其实是很有意义的,现在已经开源的就是流复制和Paxos三副本

的这部分。


总结一下,现在主要DN角色里边的流复制和三副本已经开源出来了,后面会开源整个分布式集群的CN和GTM其他相关

的分布式能力。另外,高可用或其他的一些功能会陆续开源,目前CN和DN都是支持高可用的。


编译、部署


(一)代码下载、编译


1、官网地址

https://github.com/alibaba/PolarDB-for-PostgreSQL

2、代码下载

$git clone https://github.com/alibaba/PolarDB-for-PostgreSQL.git

3、源码编译

编译Release版本:

$./build.sh

编译Debug版本:

$./build.sh debug

1、官网地址

https://github.com/alibaba/PolarDB-for-PostgreSQL

4build.sh 原理

首先,大家如果要使用我们的PolarDB,可以到开源网站上看一下。


image.png


这个就是我们的PolarDB开源网站,在里边可以看到,首先是有Code的界面,点Code里边的绿色图标就可以把我们的代

码的路径给下载下来,就可以通过gitclone的方法把代码拷贝到自己的服务器上,对它进行编译和修改。


另外可以看到,界面上包含Issues和其他的部分,上面是‘star’,希望大家也都帮我们去网站打星,收藏我们的地址,以

后就可以更容易地找到我们的网站。

下面用gitclone命令加上刚才拷贝的代码路径,就可以下载这个程序了。


image.png


刚才用gitclone已经下载的code,可以看到code目录的布局是这样的。为了方便大家进行编译,这里只要调用build.sh就

可以进行源码的编译,一键式的编译让大家可以更容易地编译。


现在我们演示一下编译脚本做了什么事情。


image.png


首先可以看到它包含了Deploy、verify、debug相关的一些参数,这里面比较重要的就是它的安装路径,按照这种编译之

后,它会把我们的程序放到当前的路径下,之后这里面可以选择在build.sh后面增加Deploy、verify、debug参数,默认

是Deploy这种方式,它其实就是编译的一个Release的版本,如果大家想编译debug版本就在build后面加一个debug就

可以了。


编译的过程其实都是大家熟悉的,调用就是一个config的过程,另外就是make和cmake的过程就是进行相关的编译,另

外会有其它组件的一些编译。


编译完成后,我们切到目录下来看一看它的数据有没有更新,到这一步可以看到现在这边[enjoy coding]了。


image.png


这种情况下说明已经编译成功了。

可以看到它整个的二进制已经更新了,并且放到了我们指定的编译目录下。


image.png


《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL 基础入门(2) https://developer.aliyun.com/article/1232840?groupCode=polardbforpg















相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
4月前
|
关系型数据库 MySQL 分布式数据库
安全可靠的PolarDB V2.0 (兼容MySQL)产品能力及应用场景
PolarDB分布式轻量版采用软件输出方式,能够部署在您的自主环境中。PolarDB分布式轻量版保留并承载了云原生数据库PolarDB分布式版技术团队深厚的内核优化成果,在保持高性能的同时,显著降低成本。
561 140
|
2月前
|
Cloud Native 关系型数据库 MySQL
免费体验!高效实现自建 MySQL 数据库平滑迁移至 PolarDB-X
PolarDB-X 是阿里云推出的云原生分布式数据库,支持PB级存储扩展、高并发访问与数据强一致,助力企业实现MySQL平滑迁移。现已开放免费体验,点击即享高效、稳定的数据库升级方案。
免费体验!高效实现自建 MySQL 数据库平滑迁移至 PolarDB-X
|
关系型数据库 Linux 数据库
PostgreSQL源码编译安装
本节详细介绍了如何通过源码编译安装 PostgreSQL 17.6,涵盖从源码下载、依赖安装、配置编译参数、执行编译与安装、创建数据库用户与目录、初始化数据库,到配置 systemd 启动服务的完整流程。内容适用于多种 Linux 发行版,如 Rocky Linux、CentOS、openEuler、Ubuntu、Debian 等,并提供了常见错误的解决方法及一键安装脚本,帮助用户高效完成 PostgreSQL 的源码部署。
392 0
PostgreSQL源码编译安装
|
2月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
5月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
9月前
|
关系型数据库 分布式数据库 PolarDB
通过 PolarDB for PostgreSQL 实现一体化的 HTAP 能力
阿里云 PolarDB for PostgreSQL作为一款领先的云原生关系型数据库,利用向量化引擎+列存索引等技术实现了 OLTP 和 OLAP 的一体化。本方案为您展示如何通过 PolarDB for PostgreSQL 来实现一体化的 HTAP 能力。
通过 PolarDB for PostgreSQL 实现一体化的 HTAP 能力
|
8月前
|
关系型数据库 Linux 数据库
PostgreSQL 入门指南:安装、配置与基本命令
本文从零开始,详细介绍如何在 Windows、Linux 和 macOS 上安装和配置 PostgreSQL,涵盖30+个实操代码示例。内容包括安装步骤、配置远程访问和用户权限、基础数据库操作命令(如创建表、插入和查询数据),以及常见问题的解决方案。通过学习,你将掌握 PostgreSQL 的基本使用方法,并为后续深入学习打下坚实基础。
9366 1
|
9月前
|
人工智能 关系型数据库 分布式数据库
100%兼容MySQL!手把手教你基于PolarDB搭建RAG系统
100%兼容MySQL!手把手教你基于PolarDB搭建RAG系统
536 0

相关产品

  • 云原生数据库 PolarDB
  • 推荐镜像

    更多