PolarDB for PostgreSQL 开源路线图

本文详细介绍了PolarDB for PostgreSQL的开源路线图,包括高可用集群版、高扩展分布式版和插件化版。文章讨论了数据库架构的演进、技术趋势以及业务痛点,强调了云化、扩展性、弹性和兼容性的重要性。PolarDB旨在提供基于X-Consensus的高可用性,以及通过混合逻辑时钟HLC实现的分布式扩展,同时保持对开源社区的兼容性,以降低用户的使用和迁移成本。
摘要由CSDN通过智能技术生成

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

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

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

一、 背景

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

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

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

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

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

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

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

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

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

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

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

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

我们无法往社区推很多东西,因为PG社区非常谨慎的,对每一个特性的需求和设计都有非常严格的要求,需要经过多位重量级的Commit的同意和竞争开发者的同意。很多特性在社区历史上都被其他开发者开发过,只是设计角度和覆盖方面没有满足社区的需求而被搁置。任何一个Patch,都是需要超越以前的版本,最终才能被PG社区接收。

我们经过半年多的时间,最终实现了被社区所接受的特性。考虑到社区版本演进的谨慎性,我们有许多技术可以回馈开源社区,但是因为社区的相对谨慎,我们很难做到这个事情,其中的周期非常长,这就成为我们开源PalarDB的一个重要原因。我们希望开源的技术是对社区内核能力的辅助增强,所以最好都是垂直于社区能力,用户拿我们的开源软件加上社区的内核版本,就可以同时享用两边的贡献,就是我们目前选择开源高可用能力、分布式扩展能力、后续云化运维能力等功能的主要考虑因素。

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

(二)数据库架构

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值