• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PolarDB-for-PostgreSQL: PolarDB 是阿里云自研的数据库产品家族,采用存储计算分离、 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

PolarDB-for-PostgreSQL

开源软件地址:

https://gitee.com/mirrors/PolarDB-for-PostgreSQL

开源软件介绍:

logo

PolarDB for PostgreSQL

阿里云自主研发的云原生数据库产品

English | 简体中文

official

github-actionslicensegithub-issuesgithub-pullrequestgithub-forksgithub-starsgithub-contributors

什么是 PolarDB for PostgreSQL

arch.png

PolarDB for PostgreSQL(下文简称为 PolarDB)是一款阿里云自主研发的云原生数据库产品,100% 兼容 PostgreSQL,采用基于 Shared-Storage 的存储计算分离架构,具有极致弹性、毫秒级延迟、HTAP 的能力。

  1. 极致弹性:存储与计算能力均可独立地横向扩展。
    • 当计算能力不够时,可以单独扩展计算集群,数据无需复制。
    • 当存储容量或 I/O 不够时,可以单独扩展存储集群,而不中断业务。
  2. 毫秒级延迟:
    • WAL 日志存储在共享存储上,RW 到所有 RO 之间仅复制 WAL 的元数据。
    • 独创的 LogIndex 技术,实现了 Lazy 回放和 Parallel 回放,理论上最大程度地缩小了 RW 和 RO 节点间的延迟。
  3. HTAP 能力:基于 Shared-Storage 的分布式并行执行框架,加速在 OLTP 场景下的 OLAP 查询。一套 OLTP 型的数据,可支持 2 套计算引擎:
    • 单机执行引擎:处理高并发的 TP 型负载。
    • 分布式执行引擎:处理大查询的 AP 型负载。

PolarDB 还支持时空、GIS、图像、向量、搜索、图谱等多模创新特性,应对企业对数据处理日新月异的需求。

分支说明

POLARDB_11_STABLE 为稳定分支,持存储计算分离的云原生形态。 distribute 分支支持分布式形态。

产品架构和版本规划

PolarDB 采用了基于 Shared-Storage 的存储计算分离架构。数据库由传统的 Share-Nothing 架构,转变成了 Shared-Storage 架构。由原来的 N 份计算 + N 份存储,转变成了 N 份计算 + 1 份存储。虽然共享存储上数据是一份,但是数据在各节点内存中的状态是不同的,需要通过内存状态的同步来维护数据的一致性;同时主节点在刷脏时也需要做协调,避免只读节点读取到超前的 “未来页面”,也要避免只读节点读取到过时的没有在内存中被正确回放的 “过去页面”。为了解决该问题,PolarDB 创造性地设计了 LogIndex 数据结构来维护页面的回放历史,该结构能够实现主节点与只读节点之间的同步。

在存储计算分离后,I/O 单路延迟变大的同时,I/O 的吞吐也变大了。在处理分析型查询时,仅使用单个只读节点无法发挥出存储侧的大 I/O 带宽优势,也无法利用其他只读节点的 CPU、内存和 I/O 资源。为了解决该问题,PolarDB 研发了基于 Shared-Storage 的并行执行引擎,能够在 SQL 级别上弹性利用任意数目的 CPU 来加速分析查询,支持 HTAP 的混合负载场景。

详情请查阅 产品架构版本规划

快速入门

如果您正在使用一个干净的 CentOS 7 系统,且正以一个非 root 用户登录,那么您可以使用以下最小化编译部署方式快速尝鲜 PolarDB for PostgreSQL。

# install extra software sourcesudo yum install epel-release centos-release-scl# updatesudo yum update# install minimal dependenciessudo yum install devtoolset-9-gcc devtoolset-9-gcc-c++ \                 devtoolset-9-gdb devtoolset-9-make \                 bison flex perl-IPC-Run# enable GCC 9sudo bash -c 'echo "source /opt/rh/devtoolset-9/enable" >> /etc/bashrc'source /etc/bashrc# building./polardb_build -m

进入 psql 命令行则表明编译部署成功:

$HOME/tmp_basedir_polardb_pg_1100_bld/bin/psql -h 127.0.0.1psql (11.9)Type "help" for help.postgres=# select version();            version             -------------------------------- PostgreSQL 11.9 (POLARDB 11.9)(1 row)

对于更多进阶部署方式,请移步在线文档中的 快速入门指南。推荐使用 基于单机存储的部署方式 + Docker 开发镜像 部署 PolarDB for PostgreSQL。

文档

请移步本项目的 在线文档网站 查阅完整文档。

如果需要在本地预览或开发文档,请参考 贡献文档

参与贡献

我们诚挚欢迎社区参与 PolarDB 的贡献,无论是代码还是文档。在线文档中的 参与社区 提供了关于贡献流程与规范的更多信息。

Software License

PolarDB code is released under the Apache License (Version 2.0), developed based on the PostgreSQL which is released under the PostgreSQL License. This product contains various third-party components under other open source licenses.

See the LICENSE and NOTICE file for more information.

致谢

部分代码和设计思路参考了其他开源项目,例如:PG-XC/XL (pgxc_ctl)、TBase (部分基于时间戳的 vacuum 和 MVCC)、Greenplum 以及 Citus (pg_cron)。感谢以上开源项目的贡献。

联系我们


Copyright © Alibaba Group, Inc.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Orm: 自动读写分离的php-orm发布时间:2022-03-24
下一篇:
doyto-query: Java增删查改框架终极版(An ultimate CRUD framework in Java)发布时间:2022-03-24
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap