让PG停摆一周的大会?2024 PGConf.dev 技术大盘点(下)

PGCon.Dev 的前身是 PGCon —— 最知名的 PostgreSQL Hacker 年度聚会,也可以说是决定 PostgreSQL 未来的会议。从 2007 年成立以来,一直都是在加拿大渥太华举办至今。

有多隆重呢?PG 核心组的 Peter Eisentraut 在会后做了一个统计,在这次 PGCon.Dev 期间 PostgreSQL 代码库没有一次 Commit 发生,出现了二十年来持续时间最长的停摆[1] —— 整整六天半!为啥,因为开发者全都来参会啦!”

......

现场更多互动的交流可移步 @冯若航 老师这篇文章

《让PG停摆一周的大会:PGCon.Dev参会记》

以下内容集结了各位大咖对 PG(PostgreSQL)的独到见解与深刻思考,由IvorySQL社区精心整理,与大家一起分享。欢迎大家积极转发分享,点亮“在看”,让更多人领略 PG 的魅力与力量!

✅Streaming I/O and vectored I/O

Thomas Munro

图片

Thomas 来自微软,是PG社区的主要 committers之一。Thomas 阐述了目前PostgreSQL 每次读和写入数据文件的大小为 8KB。这是因为PG每次调用 ReadBuffer 仅处理一个数据块,而底层无法优化超出这一限制。社区在探讨一种新“流式”编程模型:使用回调函数提前指明下一个需要的块,然后从“流”中提取缓冲区。这样,流基础设施可以尽可能地预见未来的需求,从而:

  • 系统性地对随机访问使用 POSIX_FADV_WILLNEED,替代零散的临时建议。

  • 构建更大的向量化 I/O;例如,一个 preadv() 调用可以替代 16 个 pread() 调用。

同时介绍了目前 streaming 的开发状态。

This corresponds to commitfest entry https://commitfest.postgresql.org/46/4532/ (and earlier related work).

✅Advice is seldom welcome but efficacious

Tatsuro Yamada

图片

Yamada 来自日本的 NTT OSS,是PG代码的一位 contributor,同时是pg_plan_advsr的作者 。Yamada 主要讲解了 PostgreSQL 中一些为用户提供建议的辅助功能,例如,与配置参数、分区和执行计划相关的功能。同时介绍了其本人开发的执行计划建议器(pg_plan_advsr)的一些主要功能及相关实现。此外还给PG社区提出一些反馈意见,包括扩展 stats 的应用范围,比如 joins;提高 stats 的可用性,在 EXPLAIN 时显示stats等。

✅How Autovacuum Goes Wrong: And Can We Please Make It Stop Doing That?

Robert Haas

图片

来自 EDB 的 PG 核心成员 Robert 主要解释了 autovacuum 如何决定哪些表需要进行 vacuum 和 analyze 以及何时执行这些操作,重点是这些算法可能出错的情况。Robert 也讲述了autovacuum 一些主要的错误,包括vacuum速度慢,vacuum被卡住,反复vacuum或者自行跳过vacuum等问题,同时还讨论了改进 autovacuum 以避免这些问题的可行性。

✅Postgres and the Artificial Intelligence Landscape

Bruce Momjian

课件下载:https://momjian.us/main/writings/pgsql/AI.pdf

图片

Bruce 此次的主题是 PG 与人工智能领域。Bruce 简述了 人工智能,机器学习的基本知识,然后通过一个为PG 创建一个基于 plperl 的扩展来阐述如何选取attributes,为每个 attribute 创建机器学习所需的 neurons,创建 training data,通过调整 weight 等操作对机器学习提供反馈。演讲多次被问题打断,未完成。

✅Building Petabyte-Scale PostgreSQL Deployments

Chistopher Travers

课件下载:

https://www.pgevents.ca/events/pgconfdev2024/sessions/session/135/slides/30/Bagger_Talk (3).pdf

图片

Christopher 来自 Delivery Hero APAC 有多年的 DBA 经验。Christopher 讲述了用基于 PostgreSQL 的内部解决方案替换了 ElasticSearch 的原因,早期在 Adjust 的设计,及现在的开源 Bagger。同时讲述了基本架构,数据流,当前项目的状态,及未来的计划。Christopher 还分享了一些心得,比如清晰的了解需求,不同架构适应于不同的需求,读写扩展的困难等等。

✅When Hardware and Databases Collide

Margo Seltzer

图片

来自 UBC 大学的教授 Margo Seltzer 为大家奉献了精彩的主题,当硬件与数据库碰撞。Margo 阐述了硬件发展对数据库的影响,使用 GPU 处理数据库的不同策略。

✅Multi-threaded PostgreSQL?

Heikki Linnakangas

图片

来自 Neon 的 Heikki 此次主要是向社区阐述实现 multiple threads 的愿景,multiple threads 和 multiple process 的架构,优缺点,应该如何正确使用 multiple threads,之前的一些尝试,以及 PG 切换到 multiple threads 的挑战等。后续,有针对 multiple threads 的专题讨论及任务调研的初步分工。

✅Enhancing PostgreSQL Plasticity: New Frontiers in Memory Management

Krishnakumar Ravi

图片

来自微软的 Krishnakumar (KK) 阐述了由于 PG 对共享内存采取了非常静态的管理方法,因此无法在运行时收缩或者扩展共享内存。KK 分享了一些社区正在进行的增强内存管理可插拔性的一些想法。

✅Vectors: how to better support a nasty data type in PostgreSQL

Jonathan Katz

图片

来自亚马逊的 Jonathan 是 PG 的核心成员,也是此次活动的主要组织者。Jonathan 阐述了向量对数据库高效存储和索引的重要性和挑战。同时由于人工智能过去一年的快速发展也导致 pg_vector 的快速迭代发布。Jonathan 讲述了当向量维度增加时对对数据库存储和索引带来的快速膨胀,以及通过多维度找到邻居节点的挑战。

✅Scaling past RDS PostgreSQL's vertical scaling limits: Lessons and guidance on the largest PostgreSQL workloads

Alisdair Owens, Andrei Dukhounik

图片

来自亚马逊的 Alisdair 和 Andrei 共同分享了多年来亚马逊在管理大型,高吞吐量的 PG 所面临的性能和可用性的挑战,以及在维护大型 PG 方面的经验,包括垂直扩展,数据库迁移,升级等方面。

✅Performance Improvements of Partitioning: Past and Future

Yuya Watari

图片

Yuya 是日本 NTT 开源软件的工程师。Yuya 在演讲中阐述了过去 PG 对高度分区表 Join 处理不当的地方导致 O(n^2)计算时间量,通过 hack planner 可以将计算量调节为 O(n)。同时分享了这个做法的优缺点,测试案例,以及一些 profile 的分析过程。

✅SQL standard WG update

Peter Eisentraut

图片

PG 核心成员 Peter Eisentraut 分享了目前 SQL 标准的更新情况和近期的 SQL 标准化会议。

✅Multithreading (31日 Unconference)

社区核心成员

图片

社区普遍对参与 PG multiple threads 讨论比较感兴趣。目前几位资深的 PG 核心成员主要讨论了,signal 在multiple threading 情况先如何处理,全局变量的管理,插件管理,如何取代当前的 pid ,整体refactor,thread safe API 等话题。最后初步确定了对这些关键 topics 负责调研的人选。

✅Table AM API (31日 Unconference)

Oriole dbds

图片

关于 Table AM API 的讨论主要由 Oriole 主导。Oriole 建议为 pg_am 增加 wrapper  pg_am_impl 从而更容易引进其他关于 table 访问的优化和改进。但通过讨论后,社区成员人为意义不大,不足以让更多的 PG 使用者受益。对此没有进一步的计划。

至此,2024 PGCon.Dev 就告一段落了。瀚高作为亚太地区PostgreSQL国际社区顶级贡献者之一,长期深度参与PostgreSQL国际社区发展与建设。

多年来,瀚高积极组织和参加pgconf.dev、PostgresConf、PostgresConf.CN、PGConf.Asia 等国内外会议及活动,与全球顶尖的PostgreSQL开发者、行业权威共同探讨PG最前沿技术与未来战略。

与此同时,瀚高积极传播大会的核心技术、创新理念及最佳实践,不仅彰显了其在开源领域的专业实力与前瞻视野,更为PostgreSQL国际社区的持续繁荣和全球推广注入了强劲动力。

*以下内容来自 @冯若航 整理

一些 PGCon.Dev 相关的博客与文章:

[1] 二十年来持续时间最长的停摆: https://peter.eisentraut.org/blog/2024/06/04/how-engaging-was-pgconfdev-really
[2] Jonathan Katz: https://jkatz05.com/
[3] Melanie Plageman: https://postgresql.life/post/melanie_plageman/
[4] 数据库管理系统可扩展性的调查与评估: https://abigalekim.github.io/assets/pdf/Anarchy_in_the_Database_PGConfDev2024.pdf
[5] 索引建议不受待见,但很管用: https://www.pgevents.ca/events/pgconfdev2024/sessions/session/62-advice-is-seldom-welcome-but-efficacious/
[6] 推给你的那个人莫不是我: https://github.com/pgvector/pgvector/issues/76
[7] 写过一篇文章研究过这个问题: https://pigsty.cc/zh/blog/admin/collate/
[8] Andreas Scherbaum PostgreSQL Development Conference 2024 - Review: https://andreas.scherbaum.la/post/2024-06-14_postgresql-development-conference-2024-review/
[9] PgCon 2024 Developer Meeting: https://wiki.postgresql.org/wiki/PgCon_2024_Developer_Meeting
[10] Robert Haas: 2024.pgconf.dev and Growing the Community: https://rhaas.blogspot.com/2024/06/2024pgconfdev-and-growing-community.html
[11] How engaging was PGConf.dev really?: https://peter.eisentraut.org/blog/2024/06/04/how-engaging-was-pgconfdev-really
[12] Cary Huang: PGConf.dev 2024:在温哥华塑造 PostgreSQL 的未来: https://www.highgo.ca/2024/06/11/pgconf-dev-2024-shaping-the-future-of-postgresql-in-vancouver/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/news/856941.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建筑驱鸟设备 | 建筑专用超声波驱鸟器

从半夜的鸣叫到频繁的鸟粪污染,鸟类活动有时会成为城市居民不得不面对的小小困扰。通过合理的驱鸟方法,我们可以有效地减少鸟类对建筑物的侵扰,保护建筑物的完好和安全,同时维护城市居民的生活质量。 建筑专用超声波驱鸟器&#x…

PHP框架之ThinkPHP框架

ThinkPHP框架概述 ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。它诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布。ThinkPHP从Struts结构移植过来并做了改进和完善&#…

为什么伦敦金新手不能用一小时图及以下的时间周期?

刚进入伦敦金市场的投资者,一般不建议使用较低的时间周期,如1小时图或以下。不仅如此,新手或者兼职投资者会被要求使用较高的时间周期交易,如4小时图或日线图,这有什么道理呢?下面我们就来讨论一下。 新手的…

从零开始如何学习人工智能?

说说我自己的情况:我接触AI的时候,是在研一。那个时候AlphaGo战胜围棋世界冠军李世石是大新闻,人工智能第一次出现我面前,当时就想搞清楚背后的原理以及这些技术有什么作用。 就开始找资料,看视频。随着了解的深入&am…

大数据面试-Scala

谈谈scala的闭包、柯里化、高阶函数 如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。 闭包在函数式编程中是一个重要的概念,广泛用于高阶函数、柯里化等技术中。 函数…

社区团购系统智慧门店物流配送系统开发,支持小程序公众号。

目录 前言: 一、为什么要做社区团购小程序? 二、怎么做一个社区团购小程序? 三、制作属于自己的社区团购小程序有什么好处? 总结: 前言: 社区团购是针对小区居民或群体开发的在线购物平台,…

python之eval函数使用详解

eval() 是 Python 内置的一个函数,它可以将字符串最外侧的引号去掉,并且按照python语句方式执行去掉引号后的代码(去掉引号后,代码可能还是字符串,可能是数字,可能是列表,可能是执行函数的代码块…

win10手动安装stable-diffusion-webui

目录 1.python下载安装 2.git下载安装 3.stable-diffusion-webui下载 4.安装s-d-webui的依赖包(用国内镜像提速) 5.git下载的stable-diffusion-webui,依赖包提示已安装,但运行webui-user.bat后,又开始下载 6.修…

RedTail 僵尸网络积极利用新漏洞发起攻击

自从 Palo Alto 的 PAN-OS 漏洞公开披露以来,研究人员发现已有攻击者将该漏洞纳入武器库中。 CVE-2024-3400 2024 年 4 月 11 日,Palo Alto 发布公告称基于 PAN-OS 的产品中存在的 0day 漏洞已经被攻击者利用,安全公司 Volexity 已经发现了…

配置 python 脚本操作Excel 环境

在已装python的前提下 一、安装依赖库 pip install pandas pip install openpyxl安装完后,可以在 Python 中运行以下命令来查看 pandas 或 openpyxl 的安装路径: import pandas as pd print(pd.__path__)import openpyxl print(openpyxl.__path__)二、测…

LearnOpenGL - Android OpenGL ES 3.0 绘制纹理

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好,窗口LearnOpenGL 笔记 - 入门 04 你好,三角形OpenGL - 如何理解 VAO 与 VBO 之间的关系LearnOpenGL - Android OpenGL ES 3.0 绘制…

【C/C++】实现高性能日志轮转功能,已实测

基本实现 在C语言中实现日志文件轮转功能,你需要手动编写代码来处理文件的重命名、压缩和删除。下面是一个简单的C语言程序示例,它演示了如何实现基本的日志文件轮转功能。这个程序会检查日志文件的大小,如果超过预设的大小限制,…

光纤中的数值 2.405 是怎么一回事?

在光纤通信中,光线的传播依赖于纤芯和包层之间的折射率差异。 即,当光线从纤芯入射到界面上时,如果入射角大于临界角 θ0,将发生全反射,没有光能量透射至包层而泄漏出去,此即光纤导光原理。 反映到光纤的端面,在光纤端面的光线,当入射角必须小于光纤的孔径角 α0 ,此时…

高效管理:好用的项目管理工具推荐

在当今快速变化的商业环境中,高效的项目管理工具能够显著提升团队的生产力和项目的成功率,还能有效地跟踪项目进度。所以,一款优秀的项目管理工具首先要具备先进的项目管理理念,支持多种研发管理和项目管理方法论,才能…

名称申请不了商标,可以受保护不!

前几天个网友说要申请注册个商标名称,发来名称让普推商标知产老杨帮忙检索了下,发现有同名的被驳回,而且是做过驳回复审被驳回,而且是绝对理由驳回的,易使消费者对商品的品质等特点产生误认,不得作为商标使…

【工具】全国省市县SQL脚本(MySQL)

目录 省份建表插入数据 城市建表插入数据 测试 省份 建表 CREATE TABLE province (id int(11) NOT NULL,create_time datetime(0) NOT NULL COMMENT 创建时间,update_time datetime(0) NULL DEFAULT NULL COMMENT 修改时间,valid char(1) CHARACTER SET utf8 COLLATE utf8_ge…

IntelliJ IDEA 2024 mac/win版:编程利器,智慧之选

IntelliJ IDEA 2024是一款由JetBrains精心打造的集成开发环境(IDE),专为Java等编程语言量身打造,同时支持多种其他语言,为开发者提供了卓越的开发体验。 IntelliJ IDEA 2024 mac/win版获取 这款IDE凭借其出色的智能化和高效性,赢…

红军九大技战法

一、动态对抗,线上社工持续信息追踪 发起攻击前,发起攻击前,尽可能多的搜集攻击目标信息,做到知己知彼,直击目标最脆弱的地方。攻击者搜集关于目标组织的人员信息、组织架构、网络资产、技术框架及安全措施信息&#x…

Python自动化(3)——鼠标模拟

Python自动化(3)——鼠标模拟 前台鼠标模拟 鼠标模拟和键盘模拟类似,也是分前台和后台模拟。话不多说直接,上代码: import time import win32api import win32con import win32gui from ctypes import *MOUSEEVENTF_LEFTDOWN 0x2 MOUSEEV…

java基于ssm+jsp 高校四六级报名管理系统

1前台首页功能模块 高校四六级报名管理系统,在系统首页可以查看首页、四六级报名、新闻资讯、我的、跳转到后台、在线客服等内容,如图1所示。 图1系统功能界面图 学生登录、学生注册,在注册页面可以填写学号、密码、姓名、学院、班级、手机、…