数据库 频道

PG是一个开源项目

  总是有朋友在讨论PG为什么没有做成一个真正的企业级数据库,不过我总是觉得PG就不应该做成一个企业级数据库,因为它就是一个开源项目,而不是一个商业产品。开源社区始终将核心功能的创新与完善作为首要任务,这一战略定位是其生态繁荣的基石。PG社区的工作重点集中在以下几个关键领域:

  1. 查询优化器与执行引擎的持续改进,持续优化查询计划器,增强对复杂查询的支持,提升大数据量场景下的处理效率。最新版本中增加了对并行查询、分区表性能的提升,使得单机性能接近甚至超过一些商业数据库。

  2. 数据类型与扩展性的丰富,PG目前已经成为支持数据类型最丰富的数据库之一,包括原生的JSONB文档类型、几何类型、网络地址类型等,同时提供了强大的扩展接口。开发者可以便捷地添加新的数据类型、函数和索引方式,这一特性为特殊场景的定制化开发提供了坚实基础。

  3. 可扩展架构与存储接口的标准化,社区正在推动存储接口的标准化工作,使不同的存储引擎可以更容易地集成到PG数据库中。这种开放性为存算分离、列式存储等创新架构提供了可能。

  4. 安全与可靠性的持续加固,每个新版本都会在数据加密、访问控制、审计日志等方面进行增强,满足企业级应用对安全性的基本要求,为下游商业产品的高安全性需求奠定基础。

  这些核心领域的专注投入,使得PG始终保持技术先进性,为下游商业产品提供了坚实可靠的基础。这些工作就是PG社区的重点工作,PG社区的成功的判别标准,并不是PG是否成为一个成功的企业级数据库,而是PG社区孵化了多少成功的商业项目。很多朋友对“套壳”开源数据库深恶痛绝,实际上也不必如此。充分利用开源项目,整合自己的功能特色发展商用数据库产品是一条正路,重复造轮子,强调每一行代码都是自己写的,并不一定能造出优秀的数据库来。哪怕你的核心代码自主率极高,能够充分利用开源代码,减少研发投入,加快研发速度也是一件好事。在数据库迎来AI时代的今天,技术发展是加速的,你还在一行行地补全不足的功能的时候,O记等国外商用数据库已经一骑绝尘而去,赶得慢一点,可能连车尾灯的余光都看不见了,还谈什么弯道超车呢?

  从这一点上看,目前国测对于代码自主率的评判标准可能是对我国的数据库产业发展十分不利的一个错误标准,会阻碍我们快速整合开源社区的资源,实现技术跨越发展。同时“安可”的标准不见得与代码自主挂钩,自己写的充满安全漏洞的代码,不见得比经过社区大量用户实践证明安全的代码更加“安可”。

  有点扯远了,我们还是回到PG开源社区。PG社区孵化出的成功商用数据库项目数不胜数。PG的宽松开源协议和成熟代码base,催生了一系列成功的商业项目和开源项目,涵盖了不同的应用场景和技术路线。

  1. 云原生分布式数据库

  阿里云PolarDB for PostgreSQL,采用分布式共享存储架构,实现了存储与计算的分离。它扩展了PostgreSQL成为一个无共享分布式数据库,支持全局数据一致性、分布式SQL处理,以及通过Paxos复制实现数据冗余和高可用。

  亚马逊Aurora PostgreSQL,Aurora是AWS推出的与PostgreSQL兼容的云原生数据库,以其独特的日志即数据库架构著称。它通过将重做日志处理卸载到存储层,实现了高性能和高可用性,成为云上PostgreSQL兼容数据库的标杆。

  谷歌AlloyDB for PostgreSQL,谷歌推出的与PostgreSQL完全兼容的数据库服务,采用类似的存算分离架构,在分析查询性能方面有显著优化,适合混合事务分析处理场景。

  2. Serverless创新范式

  Neon,Neon是一款100%兼容PostgreSQL的Serverless数据库,通过革命性的存储计算分离架构,实现了极致的弹性扩展和独特的数据库分支功能。其架构包含无状态的计算节点和基于LSM树的存储层,支持按需付费和缩放到零的能力,特别适合现代云原生应用。

  Supabase,作为Firebase的开源替代方案,Supabase构建在PostgreSQL之上,提供完整的后端即服务,包括实时订阅、身份认证和存储API。它充分利用了PostgreSQL的扩展性,为开发者提供了更加强大和灵活的后端解决方案。

  3. 企业级开源数据库

  EnterpriseDB,作为PostgreSQL的知名商业版,提供了与企业级功能兼容的增强特性,其客户包括纽交所、索尼、Skype等知名机构。

  openGauss,openGauss作为华为主导、社区共建的企业级开源关系型数据库,内核源于PostgreSQL,但进行了深度优化和创新。

  4. 分布式数据库方案

  Postgres-XC/XC2,Postgres-XC是PostgreSQL的集群版本,由多个PostgreSQL实例充当协调节点和数据节点,是具有读写可扩展性的PostgreSQL集群方案。它支持数据分片,易于横向扩展,属于分布式关系数据库,保证数据强一致性。该项目的思想为许多后来的分布式数据库提供了灵感,国产PG系的分布式数据库几乎都采用了类似的架构,并且采用了大量的开源代码。

  Citus,Citus是PostgreSQL的一个开源扩展,将其转换为分布式数据库。它使用分片和复制技术在多台机器上水平扩展PostgreSQL,支持多租户应用、实时操作分析和高吞吐量事务工作负载。

  上面只能列出PG生态下游项目的一小批,未列出的清单远超我列出的,连greenplum这样著名的MPP数据库和PostgresPro等著名项目都没有列。看了这个清单,我们还有什么理由去认为PG社区现在的生态存在问题呢?

0
相关文章