系统与数据库2019arxiv.org
回顾 Postgres
Looking Back at Postgres
入门 · 约 45 分钟读完前置知识:关系数据库基础、PostgreSQL 使用经验
导读
这篇论文由 Michael Stonebraker 等人回顾 Postgres 项目的历史:从 1980 年代在 Ingres 基础上探索 QUEL、扩展类型系统与对象关系特性,到最终演化为今天的 PostgreSQL。文章总结了项目在架构决策、社区治理和工程实践上的经验教训,其中特别指出 Postgres 成功避开了 Fred Brooks 所说的“第二系统效应”。
HN 关注点:HN 读者长期使用 PostgreSQL,对 Stonebraker 亲述这段数据库演化史及其经验总结很感兴趣,讨论焦点在于 Postgres 成功的真正原因。
后来怎么样
Postgres 项目最终演化为广泛使用的开源数据库 PostgreSQL,成为业界事实标准之一;论文本身是数据库领域回顾历史经验的重要文献。
HN 评论精选
这几条评论里:支持 1 补充 1 亲历 2
亲历认为论文总结的经验并非成功关键,Postgres 的成功归功于少数优秀维护者
作为一个在 2000 年把创业公司押注在 Postgres 上的人(当时经验很少),我特意注册 HN 来感谢 Tom Lane 在邮件列表上格外乐于助人。我很喜欢这篇文章,但认为它对 Postgres 过去二十多年的成功解释得并不贴切——那完全归功于少数有正确优先级、冷静做出好决策、不搞戏剧化也不过度固执的优秀开发者,这在开源世界里是非常罕见的例外。
lazyjones查看英文原文
As someone who bet his startup in 2000 on Postgres (with little experience at the time) and registered on HN just to praise Tom Lane for being exceptionally helpful and forthcoming on the mailing lists, I enjoyed this but don't think it's very relevant to Postgres' success in the past 20-odd years - that was entirely due to a few good people who had the right priorities and made good decisions without drama and without being overly opinionated. A very notable exception in the world of open source...
支持引用论文核心观点:Postgres 成功避开了第二系统效应
“我得到的最重要的一课来自 Postgres 顶住了 Fred Brooks 的‘第二系统效应’这一事实。Brooks 认为设计者在成功的第一个系统之后,往往会做出一个因堆砌过多特性和想法而失败的第二个系统。而 Postgres 正是 Stonebraker 的第二个系统……”我真希望我们能在自己的软件中实现这些经验。
parhamn查看英文原文
> The highest-order lesson I draw comes from the fact that that Postgres defied Fred Brooks’ “Second System Effect” [Bro75]. Brooks argued that designers often follow up on a successful first system with a second system that fails due to being overburdened with features and ideas. Postgres was Stonebraker’s second system... I really hope we pull off some of these software adages.
亲历亲历者感慨从 Ingres 到 PostgreSQL 的技术传承
我最早写的几个 C 程序之一就是从 Ingres 数据库取数据,跑在 PDP 11/34 上。现在我在 AWS 上大量使用 PostgreSQL。谢谢 Michael Stonebraker!
sxcurry查看英文原文
One of the first C programs I wrote pulled data from an Ingres Database, all running on a PDP 11/34. I now use PostgreSQL heavily on AWS. Thanks Michael Stonebraker!
补充补充相关资料
另可参见 Wei Hong 的《The Postgres and Illustra Codelines》:https://dl.acm.org/doi/pdf/10.1145/3226595.3226623
boshomi查看英文原文
See also: "The Postgres and Illustra Codelines" by Wei Hong: https://dl.acm.org/doi/pdf/10.1145/3226595.3226623
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2019Hacker News 讨论帖19 分 · 1 评
- 2020Hacker News 讨论帖290 分 · 74 评
- 2024Hacker News 讨论帖12 分 · 0 评
- 2024Hacker News 讨论帖32 分 · 1 评
同领域还值得读
I/O 比 CPU 更快——让我们划分资源并消除操作系统抽象
I/O Is Faster Than CPU – Let’s Partition Resources and Eliminate OS Abstractions
指出在现代服务器硬件上 I/O 速度已接近甚至超过 CPU,传统操作系统抽象反而成为瓶颈。
系统与数据库2019 · 817 分 · 277 评进阶 · 约 30 分钟编辑精选使用 io_uring 的高效 I/O
Efficient IO with io_uring
由 Linux 内核开发者 Jens Axboe 撰写,介绍 Linux 新的异步 I/O 接口 io_uring。
系统与数据库2019 · 426 分 · 96 评进阶 · 约 45 分钟编辑精选线程对大多数用途而言是个坏主意(1995)
Threads Are a Bad Idea for Most Purposes (1995)
这篇 1995 年的文章由 John Ousterhout 撰写,讨论为什么线程对大多数用途而言是坏主意,并主张事件驱动编程通常更简单、更高效。
系统与数据库2017 · 423 分 · 382 评进阶 · 约 25 分钟编辑精选学习型索引结构之论证
The Case for Learned Index Structures
提出把索引看作一种"模型":既然 B-tree 等结构本质上是在学习数据的分布,就可以用机器学习模型(如回归模型、神经网络)来近似键到位置的映射,从而替代 B-tree、哈希索引…
系统与数据库2017 · 398 分 · 66 评 · 引用 25进阶 · 约 60 分钟编辑精选FoundationDB:一个分布式、解耦的事务型键值存储
FoundationDB: A distributed, unbundled, transactional key value store
介绍 FoundationDB:一个分布式、解耦设计的事务性键值存储。
系统与数据库2021 · 283 分 · 99 评进阶 · 约 90 分钟编辑精选