开源软件联盟PostgreSQL分会

国际动态:从2024PGConf比利时回来

发表时间:2024 年 5 月 10 日

作者简介:Stefan Fercot,Data Egret公司的高级PostgreSQL专家,pgBackRest的贡献者。

原文链接:https://dataegret.com/2024/05/back-from-pgconf-belgium-2024/

Image

天主教鲁汶大学(图片来自网络),比利时最大的大学,1425年由教皇马蒂诺五世(马丁五世)下令建立,是现存最古老的天主教大学,同时也是西欧“低地国家”最古老大学。

上周二(2024 年 5 月 7 日),PGConf.BE在比利时鲁汶举行。我自己住在比利时,参加我自己国家的技术会议总是有点特别(而且很有趣!)。

虽然这个活动只是第四次举办(非常成功),尽管出席人数不是很高,但这个温馨的会议仍然每年都有精彩的演讲阵容!

历年日程供参考:

2019年 :http://pgconf.be/2019/index.html#schedule

2022年 :http://pgconf.be/2022/index.html#schedule

2023年: http://pgconf.be/2023/index.html#schedule

Image

作为开场演讲,Pavlo Golub (Cybertec) 向我们讲述了他们如何为 PostgreSQL创建pg_timetable作业调度程序。简而言之,使用系统 crontab 并不能提供有关数据库细节的知识,并且直接在 PostgreSQL 内部使用调度程序也不允许轻松执行系统任务。因此他们想出了这个用 Go 编写的新工具,能够支持各种不同的平台。最后,Pavlo 以有关如何使用该工具的快速演示结束了他的演讲。在我看来,这是一个非常有趣的工具。

然后Tomas Vondra (EDB),一位非常著名的 PostgreSQL 黑客和提交者,向我们讲述了性能悬崖:在数据和/或查询参数发生微小变化后,给定查询的性能突然变化。例如,即使查询计划看起来不错,但由于资源耗尽,我们可能会在运行时遇到性能悬崖:内存排序将转到磁盘,因为要排序的数据量不适合分配的内存。

在这种情况下,很容易理解更改查询的选择性(要检索的数据的估计部分)将如何影响查询运行时间,但不会影响查询计划。不幸的是,这也是为什么基于成本的规划通常很难与查询持续时间关联起来。

DBA 通常通过提高work_mem或将临时文件移动到“内存中”磁盘来缓解这一具体示例,但这并不能解决根本问题。这次会议在一所大学举行,托马斯还想通过提出一些想法以及对研究和调查可能的改进来在他的演讲增添学术色彩。

短暂的茶歇后,我们必须在两场演讲中做出选择。我决定去看Priyanka Chatterjee (STACKIT) 解释如何(不)在 PostgreSQL 中使用大对象。总之,我们现在有了 TOAST,它可以透明地处理一些特定的数据类型(即 bytea),最大可达 1 GB。尽管pg_largeobject能够处理更重的元素,但它带来了很大的维护开销:操作对象的特定函数、检测和删除孤儿(未引用)的工具……在本次演讲的结论中,建议是仔细想想当对象存储在云中蓬勃发展时,您是否真的必须将这些大对象存储在数据库中。

午餐后,我参加了Ilya为 PostgreSQL 管理员举办的关于 Linux IO 内部结构的演讲,以及Matt Cornillon (Aiven) 的关于Pokémons 和 AI 的演讲。我之前已经有机会看过这些演讲,但再次参加这些演讲并看看自上次以来发生了什么变化总是很有趣的。例如,Matt 还了解了pgvector的最新功能,该软件仅在 2 周前发布了新版本。

Image

短暂的休息后,我上台谈论PostgreSQL 恢复:超越备份基础知识(此处提供幻灯片:https://pgstef.github.io/talks/en/20240507_pgconfBE_Mastering-PostgreSQL-Recovery.pdf)。两年前我在这里做过一次关于如何逐步实现时间点恢复的演讲,这次演讲是它的延伸。如何进行备份是 PostgreSQL 文档中详细介绍的一个领域,但我觉得用户通常在恢复部分上遇到更多困难。理解其中涉及的所有设置并不总是那么容易。如果您错过了演讲,我们很快将举办有关此主题的网络研讨会,敬请关注!

Image

Gianni Ciolli (EDB) 在当天总结时展示了Trusted Postgres Architect工具。 TPA是一个编排工具,它使用 Ansible 以声明性方式部署 Postgres 集群。它还允许在 Postgres 周围安装一些其他工具(pgBouncer、Repmgr、Patroni、Barman),可惜不包括 pgBackRest。

和往常一样,这是一次很棒的会议,一天结束后的小型招待会让我们能够与与会者和赞助商进行更多有趣的交谈。

我接下来要做什么?

正如我已经提到的,我们正在准备一个关于 PostgreSQL 恢复最佳实践和示例的新网络研讨会。但首先,我将在下周三(5 月 15 日)德国亚琛(Aachen)举行的PostgreSQL 用户组 NRW MeetUp上讨论pgBackRest 常见问题,并于 5 月 23 日星期四在法兰克福 Postgres 用户组(美因河畔)讨论 PostgreSQL 17 中的增量备份。

我也很高兴能去温哥华(加拿大)参加PGConf.dev(相关链接:https://2024.pgconf.dev/)!

那么,现在常见的问题是,我们接下来会在哪里见面?

ImageImage