《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(1)

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

本文主要分享一下Polar DB for PG的开源路线图,虽然路线图已经拟定,但是作为开源产品,所有参与者都能提出修改意见,包括架构核心特性的技术以及周边生态和工具等,希望大家能够踊跃提供想法和建议,帮助产品提升。


本文主要围绕项目的背景和路线图来展开,传统数据库产品已经研发了40多年,知名厂家有很多,产品也是层出不穷。看看数据库排行榜,就知道我们面对多么丰富的数据库产品族谱,加上最近10年来大数据NoSQL、NewSQL的兴起,数据库产品逐渐和大数据处理产生融合的趋势,任何一个新研发的数据库产品一定离不开这些背景,选择一个数据库产品的技术方向,同样受到大环境的影响和约束。


本文将花一些时间阐述对这个背景的理解和分析,并在此基础上提出产品开源的路线图及其所要达成的目标和需要解决的问题。


背景


(一)饮水思源,回馈开源,成就开源

首先介绍的背景是关于开源,讲讲现在数据库上云是如何利用开源的,然后如何回馈了到开源产品,并且最终成就开源。


image.png


过去数据库作为传统的IT基础设施,基本上垄断在几大主力的厂商手里。虽然开源数据库产品很多也很流行,比如MySQL等,都是叫好不叫座,挣钱能力不足,商业能力可能不是很好,这其实由下面的一些因素来决定。因为数据库作为核心的IT基础设施,因此对其可靠性、稳定性、功能全面性和性能要求很高,每个企业在选型数据库时非常谨慎,开源数据库在10年前也没有拿出足够的能力来撼动这些商业数据库的地位。


其次就是在商业上,由于以前使用数据的大部分都是大客户,有充足的资源,他们当然希望被大公司来服务。上述两个因素形成了商用数据库的生态,用户DBA开发以及中间商,大家都是基于这些商用数据库工作,所以一个新产品如果想要进入,它面临的门槛是非常高的,自然就形成垄断,造成某些厂商一枝独大。


随着IT的云化,公有云市场的发展,比如AWS,阿里云等,这些后期的IT提供商从计算,存储,资源优化开始,为用户提供按需的资源,进而自然进入基础软件的供应。


显然,使用来自垄断厂商生产的商用数据库为云用户提供服务,将导致云的利润都被商用数据库厂商拿走,将开源数据库,特别是像MySQL、PostgreSQL推上前线,和商用数据库一争高低,是其背后的商业背景和目的决定的,其中的路径基本上有下面几步。


首先是完善这些数据库的企业级管理能力,也就是今天所谓的RDS服务,比如数据库的部署,数据库的启动、停止升级,扩容备份恢复等操作。这些管理能力的云化和完善,使得上云的用户不再需要DBA来管理数据库,极大减少了用户的运营成本。


因此,第一步是开源数据库上云,用云化管理来替代DBA,实现对商用数据库的商业模式的超越。当然,云化的数据库资源的随用随取也是一个非常重要的点。完成这一步还不够,毕竟开源数据库在本身能力上和商业数据库是有一定差别的。


要想取得商用数据库开辟的大市场,开源数据库的云化增强就开始了,因为补上差距是不够的,不能够吸引客户转投开源数据库,必须有超越商用数据库技术的技术和竞争力。


比如阿里云开发了PolarDB,首先对数据库依赖的存储系统进行云化改造,提供云延伸的扩展性和资源弹性,同时对外维持开源数据库的所有特性,保证开源数据库的生态可以很好地被继承。


改造解决了商用数据库对底层存储硬件固有的依赖,比如其性能和容量完全受限于存储硬件,不容易扩容,也不能实时在线地提供按需吞吐,后续引入的一写多读分布式以及Global DataBase的技术,使得原生基于开源数据库的产品,完成了对传统商业数据库的技术超越,为用户提供了它们不能提供的价值和竞争力。


阿里云在使用开源数据库的同时,也在不断地为开源社区输出企业级的技术。比如阿里维护了MySQL分支AliSQL,比如我们推入PG社区的全局临时表功能。


我们无法往社区推很多东西,因为PG社区非常谨慎的,对每一个特性的需求和设计都有非常严格的要求,需要经过多位重量级的Commit的同意和竞争开发者的同意。很多特性在社区历史上都被其他开发者开发过,只是设计角度和覆盖方面没有满足社区的需求而被搁置。任何一个Patch,都是需要超越以前的版本,最终才能被PG社区接收。我们经过半年多的时间,最终实现了被社区所接受的特性。考虑到社区版本演进的谨慎性,我们有许多技术可以回馈开源社区,但是因为社区的相对谨慎,我们很难做到这个事情,其中的周期非常长,这就成为我们开源PalarDB的一个重要原因。我们希望开源的技术是对社区核能力的辅助增强,所以最好都是垂直于社区能力,用户拿我们的开源软件加上社区的内核版本,就可以同时享用两边的贡献,就是我们目前选择开源高可用能力、分布式扩展能力、后续云化运维能力等功能的主要考虑因素。


通过这些技术的开源,我们就可以和社区共同成长,我们的技术就是社区的一份子,同时社区的发展也能够帮助我们更好地服务客户,最终收益的是开源社区和我们的用户,社区和开源数据库的用户们获得了共同成长的利益和价值,而阿里数据库团队将成为其中的一个助力,这是我们对开源产品的理解。


(二)数据库架构


接下来介绍的是关于数据库的架构,它是如何演进,现在有哪些数据库的架构。


image.png


上图列了三种架构,最左边的是单机数据库,一台服务器在运行一个数据库,存储就是本地磁盘系统,用户通过网络连接数据库进行SQL查询和计算。


很明显,这种架构的问题是当数据库故障的时候,用户服务将会被中断,同时本地盘系统的容量和吞吐有限,当用户负载增加的时候,单机数据库会出现服务响应时间过长等性能问题。但有些商用数据库、开源数据库、MySQL、PostgreSQL,它在一台服务器上部署的时候就是这种类型。


中间这个架构又称为共享存储或 Shared Everything 架构,其特点是多个数据库实例共享一个存储系统。一般这种存储系统是由硬件厂家生产,或者通过云化的存储服务,具备更高的性能和容量。多个数据库实例除了可以共享这种系统外,还可以共享一个数据库,包括其字典表、用户表等。这些数据库实例可以写也可以读,比如Oracle其数据库实例就是可以同时读写,共享存储。PolarDB现在只有一个写节点,其他节点都是读节点。这个架构的特点是计算和存储分离,数据库计算有专门的数据库节点来完成,而存储有专门的硬件或者云化存储系统来实现。


另外一个特点是当有实例故障的时候,可以快速恢复,快速地切换负载到其他实例上去执行,中断时间非常短。但用户负载和要求吞吐增加的时候,这个架构需要提升硬件的规格来实现能力的提升,比如增加数据库节点的CPU核数,增加共享存储的能力等,所以这种扩展能力我们称之为垂直扩展或叫做Scale up。


最右边这个架构称为Shared Nothing架构,或者叫分布式架构,每个数据库实例和单机数据库类似,有自己的存储和计算资源,每个数据库实例都是一个独立的数据库。但是,这些数据库通过一定的MetaData和字典表的管理,实现对用户来看就是一个数据库。每一个数据库实例其实管理一个分片数据库,存储一部分数据库的数据,相互之间是逻辑和物理的隔离,所以称之为是 Shared Nothing架构。其主要特点是当涉及多个分片数据库时,需要执行分布式的SQL计算,需要通过分布式事务保持事务一致性,这种架构的优点是系统可以水平扩展。


当用户需要更大的存储容量,更高的计算吞吐时,就可以通过增加数据库分片,也就是数据库节点的方式来提升系统容量性能,这种扩展方式称为水平扩展或叫Scale out。开源的Polar DB将是后面两种架构的融合。


(三)数据库系统的演进


接下来介绍一下数据库系统的演进,以及演进对我们开源数据库产品的路线的影响。


image.png



无论是传统的商业数据库,还是我们开源数据库MySQL或PG,它处理的都是关系型的数据,也就是结构化的数据。其中又分为两种,RDBMS也就是关系型数据库管理系统,主要处理在线的交易型负载,比如ATM,商家的在线交易等等。


另外一个称为Data Warehouse,也就是数据仓库。和RDBMS一样,都使用标准的SQL来处理数据,但是其负载涉及大量数据,很多表计算非常复杂,典型的应用为ETL和在线分析计算。


随着大数据的兴起,Hadoop平台的普及,用户希望处理的数据类型逐渐多样化,比如时间序列、地理数据、图、向量、文本等等。相应的数据处理产品涌现,它们区别于关系型数据库的最大差别是处理的数据类型和使用的处理语言是不一样的,以及它们和Hadoop等大数据平台的融合,带来了极高的可用性和扩展性,能够水平扩展到几十台甚至几百台、上千台服务器上。


受这些产品的启发,许多新型数据库系统开始转向分布式的高可用、高扩展,引入了共识协议,实现高可用,同时维持对数据库处理语言SQL的支持,典型例子有Google的Spanner,虽然这些NewSQL实现了上述目标,但是其对SQL支持的完整度上和开源数据库仍然有一定的差距,可以说只是后者的子集,需要投入很大的资源来完善这部分功能。


我们的想法是能否在开源数据库的基础上引入分布式,引入共识协议,以及存储和计算层的弹性优化,实现NewSQL产品的高可用、高扩展、高弹性,但是保留对开源生态SQL的完整支持,这是我们开源路线图一个支撑的因素。


《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL开源路线图(2) https://developer.aliyun.com/article/1232546?spm=a2c6h.13148508.setting.15.5e4f4f0ecmbIFO



相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
26天前
|
数据库
|
2月前
|
存储 关系型数据库 分布式数据库
使用开源PolarDB和imgsmlr进行高效的图片存储和相似度搜索
使用开源PolarDB和imgsmlr进行高效的图片存储和相似度搜索
|
2月前
|
SQL JSON 关系型数据库
MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
【10月更文挑战第3天】MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
151 5
|
2月前
|
关系型数据库 分布式数据库 数据库
PolarDB 开源:推动数据库技术新变革
在数字化时代,数据成为核心资产,数据库的性能和可靠性至关重要。阿里云的PolarDB作为新一代云原生数据库,凭借卓越性能和创新技术脱颖而出。其开源不仅让开发者深入了解内部架构,还促进了数据库生态共建,提升了稳定性与可靠性。PolarDB采用云原生架构,支持快速弹性扩展和高并发访问,具备强大的事务处理能力及数据一致性保证,并且与多种应用无缝兼容。开源PolarDB为国内数据库产业注入新活力,打破国外垄断,推动国产数据库崛起,降低企业成本与风险。未来,PolarDB将在生态建设中持续壮大,助力企业数字化转型。
93 2
|
3月前
|
存储 关系型数据库 分布式数据库
揭秘PolarDB:中国云原生数据库的超级英雄,如何颠覆传统数据存储?
在数字化时代,数据成为企业的核心资产,而云原生数据库则是推动企业转型的关键。PolarDB凭借其先进的存储计算分离架构,在性能、可靠性和易用性方面脱颖而出,成为国内领先的选择。它支持多种数据库引擎,提供多副本存储机制,并采用按量付费模式,有效降低管理和成本压力,助力企业实现高效、可靠的数字化转型。
74 1
|
3月前
惊世骇俗!开源 PolarDB-X 部署安装大冒险,全程心跳与惊喜不断!
【9月更文挑战第8天】作为技术爱好者的我,近期成功完成了开源 PolarDB-X 的部署安装。尽管过程中遇到不少挑战,但通过精心准备环境、下载安装包、配置参数及启动服务等步骤,最终顺利实现部署。本文将详细介绍部署全过程及可能遇到的问题,为您的 PolarDB-X 探索之旅提供参考与启发,希望能让大家在技术海洋里畅游得更加顺利!
158 2
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB开源社区动态:最新版本功能亮点与更新解读
【9月更文挑战第6天】随着云计算技术的发展,分布式数据库系统成为企业数据处理的核心。阿里云的云原生数据库PolarDB自开源以来备受关注,近日发布的最新版本在内核稳定性、性能、分布式CDC架构及基于时间点的恢复等方面均有显著提升,并新增了MySQL一键导入功能。本文将解读这些新特性并提供示例代码,帮助企业更好地利用PolarDB处理实时数据同步和离线分析任务,提升数据安全性。未来,PolarDB将继续创新,为企业提供更高效的数据处理服务。
189 3
|
2月前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
3月前
|
关系型数据库 MySQL Serverless
探索PolarDB MySQL版:Serverless数据库的灵活性与性能
本文介绍了个人开发者对阿里云PolarDB MySQL版,特别是其Serverless特性的详细评测体验。评测涵盖了产品初体验、性能观测、Serverless特性深度评测及成本效益分析等方面。尽管试用过程中遇到一些小问题,但总体而言,PolarDB MySQL版表现出色,提供了高性能、高可用性和灵活的资源管理,是个人开发者和企业用户的优秀选择。
|
4月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 与传统数据库的性能对比分析
【8月更文第27天】随着云计算技术的发展,越来越多的企业开始将数据管理和存储迁移到云端。阿里云的 PolarDB 作为一款兼容 MySQL 和 PostgreSQL 的关系型数据库服务,提供了高性能、高可用和弹性伸缩的能力。本文将从不同角度对比 PolarDB 与本地部署的传统数据库(如 MySQL、PostgreSQL)在性能上的差异。
247 1

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB