查看原文
其他

展望PostgreSQL的2024 (Jonathan Katz)

冯若航 非法加冯 2024-01-05

本文是 PostgreSQL 核心组成员 Jonathan Katz 对 2024 年 PostgreSQL 项目的未来展望,并回顾了过去几年 PostgreSQL 所取得的进展。

作者Jonathan Katz,Amazon RDS 首席产品经理兼技术主管,PostgreSQL 全球开发组核心成员与主要贡献者。博客:https://jkatz05.com/

译者:冯若航 / Vonng。磐吉云数创始人 / CEO,PostgreSQL 专家与布道师,开源 RDS PG —— Pigsty 作者。博客:https://vonng.com


在我经常听到的问题中,有一个尤为深刻:“PostgreSQL 将走向何方?” —— 这也是我经常问自己的一个问题。这个问题不仅仅局限在数据库内核引擎的技术层面,而关乎整个社区的方方面面 —— 包括相关的开源项目、活动和社区发展。PostgreSQL 已经广受欢迎,并且已经是第四次被 DB Engine评为“年度数据库[1]。尽管已取得显著成功,我们依然需要不时地后退一步,从更宏观的角度思考 PostgreSQL 的未来。虽然这种思考不会立即带来显著的变化,但它对于社区正在进行的工作提供了重要的背景板。

新年是思考 “PostgreSQL 的未来”这一问题的绝佳时机,我对2024年的PostgreSQL发展方向也有一些思考,这里是我的一些想法:这并不是一个路线图,而是我个人对 PostgreSQL 发展方向的一些想法。


PostgreSQL功能开发

PGCon 2023 开发者会议[2]上,我提出了一个题为“PostgreSQL 用户面临的重大挑战是什么?”的话题。这个话题旨在探讨用户的常见需求和数据库工作负载的发展趋势,以此来判断我们是否正在朝着正确的方向发展 PostgreSQL。通过多次交谈和观察,我提出了三个主要的特性类目:

•可用性•性能•面向开发者的特性

这些特性组将成为 2024 年,甚至更长时间段里的工作重点。接下来,我将对每个特性类目进行更深入的探讨。

可用性

对于PostgreSQL现有用户和潜在用户来说,提高可用性是最迫切的需求。这个需求不仅仅是排在第一位,而且毫不夸张地讲,也同时能排在第二位和第三位。虽然重启 PostgreSQL 通常可以迅速完成,但在某些极端情况下,这个过程可能耗时过长。此外,长时间的写入阻塞,例如某些锁操作,也可被视作一种“停机时间”。

大部分 PostgreSQL 用户对现有的可用性水平已感满意,但有些工作负载对可用性的要求极为严格。为了更好地满足这些要求,我们需要进行额外的开发工作。这篇文章或这一小节就聚焦于这一点:通过改进使 PostgreSQL 适用于更多有严苛可用性需求的环境。

逻辑复制是如何助益于双主,蓝绿部署,零停机升级,以及其他工作流的

对于现有的 PostgreSQL 用户,以及那些计划迁移至 PostgreSQL 的用户来说,提升可用性是最重要的需求。这通常指的是高可用[3]——即在计划内的更新或计划外的中断期间,数据库能够持续进行读写操作的能力。PostgreSQL 已经提供了许多支持高可用的特性,如流复制。然而为了实现最高水平的可用性,通常还需要借助额外的服务或诸如 Patroni[4] 这样的工具。

我聊过许多用户,在绝大多数情况下,他们对 PostgreSQL 提供的可用性是满意的。但我也发现了一个新趋势:现在有一些负载对可用性的要求越来越高,15-30 秒的离线窗口已不够了。这包括计划内的中断(如小版本升级、大版本升级),以及计划外的中断。一些用户表示,他们的系统最多只能承受1秒的不可用时间。起初我对这种要求持怀疑态度,但了解到这些工作负载的具体用途后,我认为1秒确实是一个合理的需求。

在持续提高 PostgreSQL 可用性方面,逻辑复制[5] 是一个关键特性。逻辑复制能够实时将 PostgreSQL 数据库中的变更流式传输到任何支持 PostgreSQL 逻辑复制协议的系统中。PostgreSQL 中的逻辑复制已经存在了一段时间[6],而最近的版本[7]在可用性方面带来了显著的改进,包括功能和性能上的新特性。

在 PostgreSQL 的大版本升级过程中,逻辑复制可以起到不可或缺的作用。它相较于传统的物理复制(亦称二进制复制)而言,最大的优点是能实现跨版本的数据流转。例如,借助逻辑复制,我们能够无缝地将 PostgreSQL 15 的数据变更实时传输至 PostgreSQL 16,这样极大地减少了升级过程中的停机时间。这一技术已在 Instacart 实施的零停机大版本升级案例[8]中得到了成功验证。尽管如此,PostgreSQL 在支持类似用例及其他高可用性场景方面仍有提升空间。预计在未来的发展中,将会进一步完善支持蓝绿部署等功能,以实现更加流畅的数据迁移和应用升级。

逻辑复制在 PostgreSQL 的大版本升级过程中扮演着关键角色,与传统的物理(或二进制)复制相比,它的一大优势在于能够实现跨版本的数据流转。举例来说,通过逻辑复制,我们可以轻松地将 PostgreSQL 15 的数据变更实时传输至 PostgreSQL 16,从而大幅缩减升级过程中的停机时间。这种方法已在 Instacart 的零停机大版本升级[9]中得到成功应用。然而,PostgreSQL 在支持此类用例和其他高可用性场景方面仍有待提升。未来的发展预计将进一步优化支持蓝绿部署[10]的功能,以实现更加无缝的数据迁移和应用升级。

除了在大版本升级中的用例,逻辑复制本身也是构建高可用系统的重要手段。"双活复制"就是其中的一个典型应用,它允许多个数据库实例同时接受写入操作,并在它们之间同步数据变更。这种模式尤其适用于对停机时间敏感的系统(例如:不接受1秒以上的不可用时间),其设计目标是在任何写入数据库出现问题时,应用能迅速切换到另一可用的写入数据库,而不必等待它被提升为新主库。构建与管理这样的双活系统是极度复杂的:它会影响到应用设计,并需要用户提供对写入冲突进行管理的策略,而且为了确保数据完整性(比如:冲突风暴),需要有仔细设计的容错监控系统 —— (比如,一个实例如果几个小时都无法复制它的变更会发生什么?)

大版本升级和双活复制案例为我们指明了改善 PostgreSQL 逻辑复制的方向。Amit Kapila[11] 是众多逻辑复制功能开发的领导者。今年,他和我共同在一场会议上发表了题为“PostgreSQL 中的多主复制之旅[12]”的演讲(并提供了视频版本[13]),深入探讨了为何针对这些用例的解决方案至关重要、PostgreSQL 在逻辑复制方面取得的成就,以及为更好支持这些场景所需做的工作。好消息是从 PostgreSQL 16 版本起,我们已经有了大部分基础模块来支持双活复制、蓝绿部署和零停机大版本升级。虽然这些功能可能没有全部集成在内核中,但某些扩展(比如我参与开发的pgactive[14])已提供了这些能力。

在 2024 年,有多项努力旨在帮助缩小这些功能差距。对于 PostgreSQL 17 来说(惯例免责声明:这些特性可能不会发布),有一个重点是确保逻辑复制能够与关键工作流(如pg_upgrade[15]高可用系统[16])协同工作,支持更多类型的数据变更(如序列/Sequence[17])的复制,扩展对更多命令(如 DDL[18])的支持,提高性能,以及增加简化逻辑复制管理的特性(如节点同步/再同步)。

这些努力能让 PostgreSQL 适用于更多种类的负载,特别是那些有着极致严苛可用性要求的场景,并简化用户在生产环境中滚动发布新变更的方式。尽管改进逻辑复制功能的道路仍然漫长,但 2024 年无疑将为 PostgreSQL 带来更多强大的功能特性,帮助用户在关键环境中更加高效地运行 PostgreSQL。

减少锁定

另一个有关可用性的领域是模式维护操作(即DDL[19]语句)。例如,ALTER TABLE[20]的大部分形式会对表施加 ACCESS EXCLUSIVE[21] 锁,从而阻止对该表的所有并发访问。对于许多用户来说这等同于不可用,即使这只是数据的一个子集。PostgreSQL 缺乏对非阻塞/在线模式维护操作的完整支持,随着其他关系数据库也开始支持这些功能,这方面的不足开始逐渐凸显。

目前虽有多种工具和扩展支持非阻塞模式更新,但如果 PostgreSQL 能原生支持更广泛的非阻塞模式变更,那肯定更方便,而且性能也会更好。从设计上来看,我们已有了开发此功能的基础,但还需要一些时间来实现。尽管我不确定是否有正在进行中的具体实现,但我相信在2024年我们应该在这方面取得更多进展:让用户能够在不阻塞写入的情况下执行大部分(或全部)DDL 命令

性能

性能是一个不断持续演进的特性 —— 我们总是会追求更快的速度。好消息是,PostgreSQL 在垂直扩展能力上享有盛誉 —— 当你为单个实例提供更多硬件资源时,PostgreSQL 也能扩展自如。虽然在某些场景下,水平扩展读写操作是有意义的。但我们还是要确保 PostgreSQL 能够随着计算和内存资源的增加而持续扩展。

举个更具体的例子:考虑到 AWS EC2 实例中有着高达 448 vCPU / 24TB 内存 [22]的选配项 —— PostgreSQL 能否在单个实例上充分利用这些资源呢?我们可以根据 PostgreSQL 用户现在与未来可能使用的硬件配置,设定一个性能提升的目标,并持续提升 PostgreSQL 的整体表现。

在 2024 年,已经有多项工作致力于继续垂直扩展 PostgreSQL。其中最大的努力之一,也是一个持续多年的项目,就是在 PostgreSQL 中支持 DirectIO(DIO)与 Asynchronous IO(AIO)。至于细节我就留给 Andres Freund 在PGConf.EU[23]上关于在 PostgreSQL 中添加 AIO 的现状[24]的PPT来讲了。看起来在 2024 年,我们将离完全支持 AIO 更进一步。

另一项让我感兴趣的工作是并行恢复[25]。有着大量写入负载的 PostgreSQL 用户往往会推迟 Checkpoint[26] 以减少 I/O 负载。对于忙碌的系统而言,如果 PostgreSQL 在执行 Checkpoint 的相当一段时间后才崩溃,那么当 PostgreSQL 重新启动时,它会进入 "崩溃恢复 "状态:它会重新执行自上次 Checkpoint 以来的所有变更,以便达到一致的状态 —— 在崩溃恢复期间,PostgreSQL 不能读也不能写,这意味着它不可用。这对繁忙的核心系统来说是个问题:虽然 PostgreSQL 可以接受并发写入,但它重放变更时只能使用单个进程。如果一个繁忙系统崩溃于上个检查点后的一小时,那么系统会需要离线追赶几个小时,才能达到一致的状态点重新上线!

克服这一局限性的方法之一是支持"并行恢复[27]",或者说能够并行重放WAL变更。在PGCon 2023[28]上,Koichi Suzuki做了一个关于PostgreSQL如何支持并行恢复 的详细介绍。这不仅适用于崩溃恢复,也适用于任何 PostgreSQL WAL 重放操作(例如:PITR 时间点恢复)。虽然这是一个极具挑战性的问题,但支持并行恢复有助于 PostgreSQL 继续垂直扩展,因为用户可以进一步针对重度写入负载进行优化,也能缓解 “从故障中恢复上线所需的延时超出承受范围” 的风险。

这并不是一份关于性能特性的详细清单。在 PostgreSQL 服务器性能上还有很多工作要做,包括索引优化、改进锁机制、充分利用硬件加速等。此外,客户端(如驱动程序和连接池)上的工作也能为应用与 PostgreSQL 的交互带来额外的性能提升。展望 2024 年,看看社区正在进行的工作,我相信 PostgreSQL 在各个领域上的性能都会有整体性提升。

开发者特性

我认为 "开发者特性 "(developer features)是一个相当宽泛的类目,核心在于如何让用户围绕 PostgreSQL 来架构 & 构建应用。这里包括:SQL语法、函数、存储过程语言支持[29],以及帮助用户从其他数据库系统迁移到 PostgreSQL 的功能。一个具体的创新例子是在 PostgreSQL 14 中引入的 multirange[30] 数据类型,它允许用户将一些不连续的 范围(Range) 聚合在一起,这个特性非常实用,我个人在实现一个调度功能时,用它将数百行PL/pgSQL代码减少到三行[31]。开发者特性也关乎 PostgreSQL 如何支持新出现的工作负载:例如JSON 或向量[32]

值得一提的是,许多开发者特性创新主要出现在扩展(Extension)上,而这正是 PostgreSQL 可扩展模型的优势所在。然而就数据库服务器本身而言,PostgreSQL 在某些开发者特性上的发布速度相比过去有所落后。例如,尽管PostgreSQL是第一个将JSON作为可查询数据类型[33]的关系数据库,但它在实现 SQL/JSON 标准锁定义的语法与特性上已经开始变得迟缓。PostreSQL 16 发布了 SQL/JSON 中的一些语法特性,2024 年也会有更多的努力用在实现 SQL/JSON 标准上。

话既然说到这儿了,我们应当着力于 PostgreSQL 中那些无法通过扩展插件实现的开发者特性,比如 SQL标准特性。我的建议是集中精力关注那些其他数据库已经具备的功能,比如进一步实现 SQL/JSON 标准(例如: JSON_TABLE)、系统层面的版本化表(对于审计、闪回,与在特定时间点进行的时态查询非常有用),以及对模块的支持(对于“打包”存储过程来说尤其重要)。

此外,考虑到之前讨论的可用性和性能问题,我们应继续努力简化用户从其他数据库迁移到 PostgreSQL 的过程。在我的日常工作中,我有机会了解了大量与数据库迁移相关的内容:从商业数据库到 PostgreSQL 的迁移策略。当我们增强 PostgreSQL 功能的同时,也有许多机会可以简化迁移流程。包括引入其他数据库中现有的功能(例如全局临时表、全局分区索引、自治事务[34]),并在 PL/pgSQL 中增加更多功能与性能优化(如批量数据处理函数、模式变量[35]缓存函数元数据[36])。所有这些都将改善 PostgreSQL 开发者的体验,并让其他关系数据库的用户更容易采纳 PostgreSQL。

最后我们需要了解,如何才能持续不断地支持来自 AI/ML 数据的新兴负载,特别是向量存储与检索。在2023年的PGCon[37]会议上,尽管人们希望在 PostgreSQL 本身中看到原生的向量支持,但大家一致认为,在 pgvector[38]这样的扩展中实现这类功能可以抢占先机,更快地支持这些工作负载(这一策略似乎已经奏效[39]在向量数据上性能表现优异[40])。有鉴于向量负载的诸多特征[41],我们可以在PostgreSQL中添加一些额外的支持,以便进一步支持它们:其中包括对处理 活动查询路径中的TOAST数据[42]的规划器进行优化,并探索如何更好地支持带有大量过滤条件和 ORDER BY 子句的查询。

我确信在 2024 年,PostgreSQL 可以在这些领域取得显著进步。我们看到在 PostgreSQL 的扩展生态中,有大量的新能力正在涌现;但即便如此,我们还是可以继续直接为 PostgreSQL 添加新特性,让它更易于构建应用。

安全性如何?

我想快速过一下 PostgreSQL 的安全特性。众所周知在安全敏感型场景中,PostgreSQL 有着极佳的声誉。但总会有许多能改进的地方。在过去几年中,PostgreSQL社区对引入透明数据加密[43](TDE)的原生支持表现出许多兴趣与关注。然而还有许多其他地方可以搞搞创新,比如支持其他的身份验证方式/机制(主要需求是OIDC),或是探索联邦授权模式的可能性,使PostgreSQL能够继承其他系统的权限设置。尽管这些特性在当下都颇有挑战,我建议先在 “Per-Database” 层面上支持 TDE。这里我不想过多展开,因为已经有在 PostgreSQL 中满足这些特性需求的方法了,但我们还是应该不懈努力,争取实现完整的原生支持。

让我们再来看看PostgreSQL能在2024年里发力的其他方向。


扩展

PostgreSQL 的设计是高度可扩展的。您可以为PostgreSQL添加新功能,而无需分叉项目。包括新的数据类型、索引方法、与其他数据库系统协同工作的方法、更易于管理PostgreSQL特性的实用工具、额外的编程语言支持[44],甚至编写自己的扩展插件[45]。人们已经围绕一些特定的 PostgreSQL 扩展(如PostGIS[46])建立了开源社区和公司;PostgreSQL 单一数据库便能支持不同类型的工作负载(地理空间、时间序列、数据分析、人工智能),正是扩展让这件事变得可能。数千个可用的PostgreSQL扩展[47]成为了PostgreSQL的 "力量倍增器" —— 它一方面让用户能够快速的为数据库新增功能,另一方面也极大推动了 PostgreSQL 的普及与采用。

然而这也产生了一个副作用,即“扩展蔓延”现象。用户如何去选择合适的扩展?扩展的支持程度如何?如何判断某个扩展是否有持续积极的维护?如何为扩展做出自己的贡献?甚至“在哪里可以下载扩展”也成为了一个大问题。postgresql.org 提供了一个不完整的扩展列表[48],社区也维护了一些扩展包[49],也有其他几个可供选择的 PostgreSQL 扩展仓库(例如 PGXN[50]dbdev[51]Trunk[52])和 pgxman[53] 可供选择。

PostgreSQL社区的一个优势是去中心化,广泛散布于世界各处。但我们可以做得更好,帮助用户在复杂的数据管理中做出明智的选择。我认为2024年是一个机遇,我们可以投入更多资源来整合与展示 PostgreSQL 扩展,帮助用户理解什么时候可以使用哪些扩展,并了解扩展们的开发成熟度,并同样为扩展开发者提供更好的管理支持与维护资源。


社区建设

在谈论2024年社区建设的构想时,我深感自加入 PostgreSQL 贡献者社区以来,我们已取得显著进步。社区在认可各类贡献者[54]方面表现突出(尽管仍有提升空间)—— 不仅限于代码贡献,还包括项目的各个方面。展望未来,我想着重强调三个关键领域:导师制、多元化、公平与包容(DEI[55])以及透明度,这些都对项目的全方位发展至关重要。

PGCon 2023开发者会议[56]上,Melanie Plageman[57] 就新贡献者的体验和挑战进行了深入分析。她提到了诸多挑战,如初学者需要花费大量时间来掌握基本知识,包括使用代码库和邮件列表进行交流,以及将补丁提交到可审查状态所需的努力。她还指出,提供建设性指导意见(从审查补丁开始)可能比编写代码本身更具挑战性,同时也讨论了如何有效地提供反馈。

关于提供反馈,我想引用罗伯特-哈斯(Robert Haas)的一篇优秀博文[58],其中他特别强调了在批评时同时给予表扬的重要性——这种方法可以产生显著的效果,并提醒我们即使在批评时也应保持支持态度。

回到 Melanie 的观点,我们应该在整个社区更好地实施导师计划。就我个人而言,我认为我在宣传项目方面做得不够好,包括帮助更多人为网络基础设施[59]发布流程[60] 做出贡献。这并不是说 PostgreSQL 缺乏优秀的导师,而是我们可以在帮助人们开始贡献和找到导师方面做得更好。

2024年将是建立更完善导师制度的起点。我们希望在5月于温哥华举行的 PGConf.dev 2024[61] 上试验一些新想法。

在 PGConf.dev[62] 出现前,从2007年到2023年,PGCon[63]一直是PostgreSQL贡献者们集结并讨论即将开始的开发周期和关键项目的重要活动。PGCon 一直由 Dan Langille 负责组织。经过多年的辛勤工作,他决定将组织职责扩展至一个团队,并协助成立了 PGConf.dev[64]

PGConf.dev[65] 是专为那些希望为 PostgreSQL 做贡献的人士举办的会议。会议内容覆盖了 PostgreSQL 的开发工作(包括内核及所有相关的开源项目,如扩展和驱动程序)、社区建设以及开源意见领袖等主题。PGConf.dev 的一大特色是导师制,并计划举办关于如何为 PostgreSQL 贡献的研讨会。如果你正寻找为 PostgreSQL 贡献的机会,我强烈建议你考虑参加本活动或提交演讲提案[66]

接下来是 PostgreSQL 社区如何在多元化、公平与包容性(DEI[67])上进步的话题。我强烈建议观看凯伦·杰克斯[68]莱蒂西亚·阿夫罗特[69]在 2023 年 PGConf.eu 上的演讲: 在肯的 Mojo Dojo Casa House 里尝试成为芭比[70]:因为这是一场关于如何继续让 PostgreSQL 社区变得更加包容的深刻演讲。社区在这方面取得了进步(凯伦和莱蒂西亚指出了有助于此的一些举措),但我们还能做得更好,我们应该积极主动地处理反馈,以确保为 PostgreSQL 做出贡献是一种受欢迎的体验。我们所有人都可以采取行动,例如,在发生(诸如性别歧视的)不当行为时及时指出,并指出行为不当的原因。

最后是透明度问题。在开源领域这可能听起来有些奇怪,毕竟它本身就是开放的。但有不少治理问题并不会在公开场合讨论,了解决策制定的流程会很有帮助。PostgreSQL 行为守则委员会[71] 提供了一个优秀的例子:一个社区如何就需要敏感处理的问题保持透明度。该委员会每年都会发布一份报告(这是 2022 年的报告[72]),包括案例的总体描述和整体统计数据。我们可以在许多 PostgreSQL 团队中复制这种做法 —— 这些团队参与的任务可能由于其敏感性需要保密。


结论:本来这篇文章应该更短

最初,我以为这篇文章会是一篇简短的帖子,几小时内就能完成。但几天后,我意识到情况并非如此……

老实说,PostgreSQL目前处于一个非常好的状态。它依然备受欢迎,其可靠性、鲁棒性和性能的声誉稳如磐石。然而我们仍可以做得更好,令人感到振奋的是,社区正在积极地在各个方向上努力改善。

虽然上面这些是 PostgreSQL 在 2024 年及以后可以做的事情,但 PostgreSQL 走到今天已经做成了很多很多的事。提出 “PostgreSQL何去何从” 这样的问题,实际上为我们提供了一个机会:回顾过去几年 PostgreSQL 所取得的进展,并展望未来!

References

[1] DB Engine评为“年度数据库”: https://db-engines.com/en/blog_post/106
[2] PGCon 2023 开发者会议: https://wiki.postgresql.org/wiki/PgCon_2023_Developer_Meeting
[3] 高可用: https://en.wikipedia.org/wiki/High_availability
[4] Patroni: https://github.com/zalando/patroni
[5] 逻辑复制: https://www.postgresql.org/docs/current/logical-replication.html
[6] 已经存在了一段时间: https://jkatz05.com/post/postgres/postgres-10-tribute/
[7] 最近的版本: https://www.postgresql.org/about/news/postgresql-16-released-2715/
[8] Instacart 实施的零停机大版本升级案例: https://www.instacart.com/company/how-its-made/zero-downtime-postgresql-cutovers/
[9] Instacart 的零停机大版本升级: https://www.instacart.com/company/how-its-made/zero-downtime-postgresql-cutovers/
[10] 蓝绿部署: https://en.wikipedia.org/wiki/Blue-green_deployment
[11] Amit Kapila: https://amitkapila16.blogspot.com/
[12] PostgreSQL 中的多主复制之旅: https://www.postgresql.eu/events/pgconfeu2023/sessions/session/4783/slides/434/pgconfeu2023_active_active.pdf
[13] 视频版本: https://www.youtube.com/watch?v=jPp4XIY4XRw
[14] pgactivehttps://aws.amazon.com/blogs/database/using-pgactive-active-active-replication-extension-for-postgresql-on-amazon-rds-for-postgresql/
[15] pg_upgradehttps://www.postgresql.org/docs/current/pgupgrade.html
[16] 高可用系统: https://commitfest.postgresql.org/46/4423/
[17] 序列/Sequence: https://commitfest.postgresql.org/46/3823/
[18] DDL: https://commitfest.postgresql.org/46/3595/
[19] DDL: https://en.wikipedia.org/wiki/Data_definition_language
[20] ALTER TABLEhttps://www.postgresql.org/docs/current/sql-altertable.html
[21] ACCESS EXCLUSIVEhttps://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES
[22] 448 vCPU / 24TB 内存 : https://aws.amazon.com/ec2/instance-types/high-memory/
[23] PGConf.EU: https://www.pgconf.eu/
[24] 在 PostgreSQL 中添加 AIO 的现状: https://anarazel.de/talks/2023-12-14-pgconf-eu-path-to-aio/path-to-aio.pdf
[25] 并行恢复: https://wiki.postgresql.org/wiki/Parallel_Recovery
[26] Checkpoint: https://www.postgresql.org/docs/current/sql-checkpoint.html
[27] 并行恢复: https://wiki.postgresql.org/wiki/Parallel_Recovery
[28] PGCon 2023: https://www.pgcon.org/
[29] 存储过程语言支持: https://wiki.postgresql.org/wiki/PL_Matrix
[30] multirangehttps://www.postgresql.org/docs/current/rangetypes.html
[31] 将数百行PL/pgSQL代码减少到三行: https://www.crunchydata.com/blog/better-range-types-in-postgres-14-turning-100-lines-of-sql-into-3
[32] JSON 或向量: https://jkatz05.com/post/postgres/vectors-json-postgresql/
[33] 第一个将JSON作为可查询数据类型: https://jkatz05.com/post/postgres/vectors-json-postgresql/
[34] 自治事务: https://www.postgresql.org/message-id/f7470d5a-3cf1-4919-8404-5c4d91341a9f@tantorlabs.com
[35] 模式变量: https://commitfest.postgresql.org/46/1608/
[36] 缓存函数元数据: https://commitfest.postgresql.org/46/4684/
[37] PGCon: https://www.pgcon.org/
[38] pgvector: https://github.com/pgvector/pgvector
[39] 这一策略似乎已经奏效: https://jkatz05.com/post/postgres/pgvector-overview-0.5.0/
[40] 在向量数据上性能表现优异: https://aws.amazon.com/blogs/database/accelerate-hnsw-indexing-and-searching-with-pgvector-on-amazon-rds-for-postgresql/
[41] 有鉴于向量负载的诸多特征: https://www.postgresql.eu/events/pgconfeu2023/sessions/session/4592/slides/435/pgconfeu2023_vectors.pdf
[42] 活动查询路径中的TOAST数据: https://www.postgresql.org/message-id/ad8a178f-bbe7-d89d-b407-2f0fede93144@postgresql.org
[43] 透明数据加密: https://wiki.postgresql.org/wiki/Transparent_Data_Encryption
[44] 额外的编程语言支持: https://wiki.postgresql.org/wiki/PL_Matrix
[45] 编写自己的扩展插件: https://github.com/aws/pg_tle
[46] PostGIS: https://postgis.net/
[47] 数千个可用的PostgreSQL扩展: https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47
[48] 不完整的扩展列表: https://www.postgresql.org/download/products/6-postgresql-extensions/
[49] 扩展包: https://www.postgresql.org/download/
[50] PGXN: https://pgxn.org/
[51] dbdev: https://database.dev/
[52] Trunk: https://pgt.dev/
[53] pgxman: https://pgxman.com/
[54] 认可各类贡献者: https://www.postgresql.org/community/contributors/
[55] DEI: https://en.wikipedia.org/wiki/Diversity,_equity,_and_inclusion
[56] PGCon 2023开发者会议: https://wiki.postgresql.org/wiki/PgCon_2023_Developer_Meeting#What_are_the_big_challenges_for_our_users.3F_What_are_the_big_challenges_for_us_to_solve.3F
[57] Melanie Plageman: https://mastodon.social/@melanieplageman/
[58] 优秀博文: https://rhaas.blogspot.com/2023/12/praise-criticism-and-dialogue.html
[59] 网络基础设施: https://www.postgresql.org/developer/related-projects/
[60] 发布流程: https://www.postgresql.org/about/press/presskit16/
[61] PGConf.dev 2024: https://2024.pgconf.dev/
[62] PGConf.dev: https://www.pgconf.dev/
[63] PGCon: https://www.pgcon.org/
[64] PGConf.dev: https://www.pgconf.dev/
[65] PGConf.dev: https://www.pgconf.dev/
[66] 提交演讲提案: https://2024.pgconf.dev/cfp/
[67] DEI: https://en.wikipedia.org/wiki/Diversity,_equity,_and_inclusion
[68] 凯伦·杰克斯: https://karenjex.blogspot.com/
[69] 莱蒂西亚·阿夫罗特: https://mydbanotebook.org/
[70] 在肯的 Mojo Dojo Casa House 里尝试成为芭比: https://www.postgresql.eu/events/pgconfeu2023/schedule/session/4913-trying-to-be-barbie-in-kens-mojo-dojo-casa-house/
[71] PostgreSQL 行为守则委员会: https://www.postgresql.org/about/policies/coc_committee/
[72] 这是 2022 年的报告: https://www.postgresql.org/about/policies/coc/reports/2022/




参考阅读

2023年度数据库:PostgreSQL (DB-Engine)

PG查询优化:观宏之道 【演绎】
FerretDB:假扮成MongoDB的PostgreSQL
如何用 pg_filedump 抢救数据?
PGSQL x Pigsty: 数据库全能王来了
Pigsty 特性与快速上手
PG先写脏页还是先写WAL?
PostgreSQL:世界上最成功的数据库
ISD数据集:分析全球120年气候变化
AI大模型与向量数据库 PGVECTOR
更好的开源RDS替代:Pigsty
PostgreSQL 到底有多强?
为什么PostgreSQL是最成功的数据库?
PG与Pigsty用户需求问卷调研结果
高可用PgSQL集群架构设计与落地
为什么说PostgreSQL前途无量?
Postgres本地化排序规则
PG复制标识详解(Replica Identity)
利用监控系统诊断PG慢查询
数据库集群管理概念与实体命名规范
PostgreSQL的KPI
PostgreSQL监控系统Pigsty概述
故障档案:PG安装扩展导致无法连接
PostgreSQL中的表锁
把PG放入Docker是一个好主意吗?
PostgreSQL监控系统概览
pg_dump导致的血案
PostgreSQL数据页面损坏修复
PostgreSQL关系膨胀:原理,监控与处理
探探PostgreSQL开发规约
并发异常那些事
PG好处都有啥?
IP归属地查询的高效实现
PostGIS高效解决行政区划归属查询问题

MySQL的正确性为何如此拉垮?

没错,数据库确实应该放入 K8s 里!(SealOS)
数据库应该放入K8S里吗?
把数据库放入Docker是一个好主意吗?
向量数据库凉了吗?
冯若航:不想当段子手的技术狂,不是一位好的开源创始人
数据库真被卡脖子了吗?
EL系操作系统发行版哪家强?
基础软件到底需要什么样的自主可控?
如何看待 MySQL vs PGSQL 直播闹剧
驳《MySQL:这个星球最成功的数据库》
向量是新的JSON 【译评】
微服务是不是个蠢主意?【译】
分布式数据库是伪需求吗?
数据库需求层次金字塔
StackOverflow 2022数据库年度调查
DBA还是一份好工作吗?
90后,辞职创业,说要卷死云数据库

卡在政企客户门口的阿里云(马工)

扒皮云对象存储:从降本到杀猪

互联网故障背后的草台班子们(马工)

半年下云省千万:DHH下云FAQ答疑

从降本增笑到真的降本增效

重新拿回计算机硬件的红利

我们能从阿里云史诗级故障中学到什么

【阿里】云计算史诗级大翻车来了

云厂商眼中的客户:又穷又闲又缺爱(马工)

是时候放弃云计算了吗?

云计算泥石流合集 —— 用数据解构公有云

下云奥德赛

FinOps终点是下云

云计算为啥还没挖沙子赚钱?

云SLA是不是安慰剂?

技术反思录:正本清源

杀猪盘真的降价了吗?

公有云是不是杀猪盘?

垃圾腾讯云CDN:从入门到放弃

驳《再论为什么你不应该招DBA》

范式转移:从云到本地优先

云RDS:从删库到跑路

是时候和GPL说再见了 【译】

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存