## 视频
<video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video>
## 导读
PostgreSQL 是一种流行的开源关系数据库,可在 [Amazon RDS](https://aws.amazon.com/cn/rds/?trk=cndc-detail) 和 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) 上使用,也为 Amazon.com 提供支持。鉴于 PostgreSQL 对亚马逊和亚马逊云科技用户的重要性,亚马逊云科技致力于对 PostgreSQL 进行投资,以帮助该项目及其构建者社区取得成功。在本讲论坛中,您将了解亚马逊云科技与 PostgreSQL 的总体开源战略,以及亚马逊云科技如何做出贡献,包括 PostgreSQL 最近发布的功能、即将发布的版本和路线图,以及亚马逊云科技如何支持相关的 PostgreSQL 项目,包括 PostGIS、pgvector、pg_tle 等扩展。
## 演讲精华
<font color = "grey">以下是小编为您整理的本次演讲的精华,共1100字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font>
Jonathan Katz,一位在亚马逊云科技担任产品经理的资深人士,拥有五年多在开源PostgreSQL数据库项目中对代码的贡献经验。在2022年re:Invent上,他开始发表演讲。他首先向观众们进行了一个简单的投票,通过举手的方式来确认在座的100多名听众中,很多人已经在某种程度上使用了PostgreSQL,这展示了其广泛应用。Katz解释道,他的演讲将深入探讨亚马逊云科技如何为PostgreSQL做出贡献,旨在总结适用于任何长期存在的开源项目的经验教训。
PostgreSQL有着悠久的历史,起源于1985/1986年加州大学伯克利分校(UC Berkeley)在迈克尔·斯通布雷克(Michael Stonebraker)的领导下。在那个漫长的时期里,PostgreSQL从一个由少数忠实个人在业余时间进行的项目,发展成为大型公司如苹果、Instagram和Skype等依赖的企业级数据库。
亚马逊云科技注意到PostgreSQL在驱动网络规模应用程序的高级数据库中崛起的事实。在最近的大版本发布中,如15版和16版,亚马逊云科技贡献了大约19%的新功能——超过90个单独补丁,使其成为仅次于PostgreSQL核心委员会的第二大贡献者。该公司认为支持PostgreSQL与其自身利益高度一致。许多亚马逊云科技服务,如数千名亚马逊云科技客户使用的关系型数据库服务(RDS),都依赖于PostgreSQL的支持。亚马逊自己的零售业务也依靠PostgreSQL数据库来驱动其内部基础设施和部分应用的运行。通过投入工程师资源来帮助PostgreSQL繁荣发展,亚马逊云科技确保了自己的产品和服务受益。
成功为成熟的开源项目,如PostgreSQL,做出贡献,相较于发起一个新的开源项目,会带来一些独特的挑战。你不能仅仅在某一天突然出现并宣称你对如何做事有更棒的想法。相反,Katz强调,要赢得社区的信任并产生影响力,你必须首先遵循现有的规范和流程。对于PostgreSQL而言,这意味着要认真审查补丁,参加每两个月一次的提交庆典,并在黑客邮件列表上讨论设计。只有经过7年的严格按照既定结构工作,亚马逊云科技才能以主要贡献者的身份获得认可,并在提出更改时拥有真正的发言权。
这种谨慎的方法服务于更广泛的目的,即确保PostgreSQL在长期内免费可用、社区驱动且不受任何单一公司的控制。PostgreSQL社区努力避免任何单一实体积累过多的控制权。他们的信念是,一个拥有30多名核心委员会成员的开放、分散式结构使PostgreSQL能够适应时代的发展并应对新的使用场景。即使像亚马逊云科技这样的公司分配更多的资源给PostgreSQL,社区仍然保持治理权力的分布。
Katz强调,为PostgreSQL做出贡献不仅仅是将代码更改提交到核心数据库引擎,这只是整个项目的很小一部分。PostgreSQL生态系统还包括诸如PostGIS之类的扩展、针对主要编程语言(如Java和Python)的驱动程序、推动采用的非营利组织以及制定政策和程序的委员会。在亚马逊云科技,工程师们不仅致力于开发新的数据库功能,还致力于维护基础设施、移植驱动程序以及参与维持一个已经存在数十年的开源项目所需的种种任务。
近期,亚马逊云科技在技术贡献方面专注于与PostgreSQL性能、操作性和安全性相关的增强功能。在安全方面,亚马逊云科技的工程师们在PostgreSQL 16发布前成功阻止了一个潜在的特权升级漏洞被引入。在测试阶段,他们发现一个新的逻辑复制特性中存在一个权限检查不足的问题,这可能导致通过触发器脚本实现特权升级。正是由于及时发现这个错误,他们避免了PostgreSQL团队后来需要处理CVE并发布紧急补丁的麻烦。
卡茨在他的演讲中专门详细阐述了亚马逊云科技在改进PostgreSQL逻辑复制方面的工作,这使得以其他系统可用的便携格式流式传输变化成为可能。过去几个PostgreSQL版本中,亚马逊云科技根据客户直接反馈,在逻辑复制的性能、灵活性和安全性方面做出了贡献,因为实时分析、跨区域复制和与数据仓库同步等任务的重要性日益增长。
亚马逊云科技与社区合作提供的特定功能包括:
- 从备用服务器复制 - 这个长期请求的功能允许从读取副本而不是仅仅在主要服务器上发起复制,从而减轻了主要服务器的负载。复杂的分布式系统设计在尝试最终确定之前停滞了7年。
- 并行应用 - 对于超过50,000个变化的大型交易,在逻辑复制过程中,订阅方可以在应用大型交易时并行执行,避免瓶颈。
- 表所有者应用 - 以表所有者而非超级用户的身份应用更改时,更严格的权限防止升级风险。
- JDBC驱动程序对向量数据类型的处理 - 使Java应用程序能够处理向量列,这是存储[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)模型和嵌入的流行方式。
- 扩展,如pg_hint_plan和pg_vector - 帮助用户从其他数据库迁移,并在PostgreSQL本机存储向量数据。
在所有这些情况下,重点是让来自不同公司和背景的PostgreSQL社区成员合作,以实现进一步巩固其作为健壮的开源数据库的共同目标。这种“水涨船高,众人受益”的心态使得有影响力的贡献得以实现,并保持项目的持续发展。
在未来,卡兹(Katz)强调,亚马逊云科技计划将继续专注于增强PostgreSQL的性能、灵活性、可靠性和安全性,同时帮助其适应人工智能/[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)等新工作负载。凭借其在现实世界中大量的部署历史和丰富的集体智慧,PostgreSQL社区完全有能力支持新的使用场景,同时不牺牲其核心价值:可靠性、可扩展性和标准化。接下来的40年对于这个驱动许多技术世界关键基础设施的开源数据库来说,将如同第一个40年一样具有重要意义。
**下面是一些演讲现场的精彩瞬间:**
领导者对Postgres的贡献进行了阐述,这是一个备受喜爱的开源数据库。
![](https://d1trpeugzwbig5.cloudfront.net/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL/images/rebranded/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL_0.png)
演讲者详细描述了为期九个月的明确开发周期,从七月的提交庆典到九月份的主要版本发布测试版和稳定化。
![](https://d1trpeugzwbig5.cloudfront.net/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL/images/rebranded/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL_1.png)
通过逻辑复制,可以灵活地仅复制数据库更改的子集,如实时报告,同时保持数据安全性。
![](https://d1trpeugzwbig5.cloudfront.net/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL/images/rebranded/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL_2.png)
演讲者谈到了RDS for PostgreSQL如何通过作为表所有者而非数据库超级用户应用更改来防止权限升级。
![](https://d1trpeugzwbig5.cloudfront.net/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL/images/rebranded/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL_3.png)
领导者强调了实现新的备份功能需要社区七年的努力,展示了他们对开源开发的奉献精神。
![](https://d1trpeugzwbig5.cloudfront.net/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL/images/rebranded/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL_4.png)
亚马逊云科技引入了大事务的并行处理,以防止主数据库在重放事务时出现瓶颈和磁盘耗尽。
![](https://d1trpeugzwbig5.cloudfront.net/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL/images/rebranded/OPN302-AWS_open_source_strategy_and_contributions_for_PostgreSQL_5.png)
## 总结
演讲者Jonathan Katz探讨了亚马逊云科技对开源PostgreSQL数据库的贡献及策略。他回顾了PostgreSQL的悠久历史及其基于社区驱动的理念。
Katz列举了亚马逊云科技贡献的三个主要领域:提升性能,例如处理大规模交易的流处理;增强复制和故障切换的可操作性;以及在漏洞出现之前修复安全性问题。
他详细探讨了逻辑复制的原理,并详细介绍了PostgreSQL 16中的一些特定功能,如并行应用、通过"作为表所有者应用"改进的安全性以及使用BRIN索引。
Katz强调,公司和社区成员之间的合作使得诸如从备用服务器复制等功能随着时间的推移得以实现。他还简要介绍了亚马逊云科技在扩展(如pg_hint_plan)和驱动程序(如JDBC驱动程序)方面的贡献,使PostgreSQL能够支持新的工作负载。
总之,Katz传达了亚马逊云科技的策略,即为了社区的共同利益持续地贡献到PostgreSQL。多个实例展示了这些技术和合作贡献的实际应用。
## 演讲原文
## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!
[2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站")
[点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯!
[点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯!
## 即刻注册亚马逊云科技账户,开启云端之旅!
[【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“")
[【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")