系统与数据库2018stratos.seas.harvard.edu
数据结构周期表
The Periodic Table of Data Structures
入门 · 约 45 分钟读完前置知识:基础数据结构、算法复杂度分析
导读
这篇论文(哈佛 Stratos 实验室)提出用类似元素周期表的方式系统化梳理数据结构:以读/写/空间优化等维度构成分类框架,展示数据结构之间的权衡关系,并指出尚未被探索的“空位”。
HN 关注点:这种类比是否成立——周期表的价值在于预测未知元素,而数据结构的分类能否做到这一点引发了讨论。
HN 评论精选
这几条评论里:支持 1 质疑 1 补充 2
质疑质疑该分类法没有抓住周期表预测能力的本质
这很有启发性,但不确定做法是否最佳。门捷列夫方法的核心价值在于发现空缺并预测尚未发现的东西,而这需要先分离出不可再分的“原子”并找出其中的规律。论文图 4 中的周期表并不像是对数据结构“原子”的真正隔离。
sytelus查看英文原文
This is very inspirational but not sure if this is done in the best way. The core value of Mendeleev's approach is to find gaps and predict things that should exist but we haven't found yet. However for this to happen, one must isolate the "atoms" that can't be further broken down and identify the pattern in these atoms. The periodic table created in Figure 4 of this paper doesn't exactly sounds like isolation of "atoms" of data structures.
支持建议把这种权衡三角融入各语言文档作为选型指南
我希望那个读优化/写优化/空间优化的三角能出现在每种语言的文档里,并填入该语言的各种数据结构:需要快速读?用 Y。需要快速写?用 X。等等。
nissarup查看英文原文
I want that read/write/space-optimized triangle prominently featured in every languages documentation, filled in with the different data stuctures from that language. Need quick reads? Use Y. Quick writes? Use X. Etc.
补充补充门捷列夫与波你尼语法体系的历史渊源
关于“空位”:门捷列夫是梵文学者 Böhtlingk 的好友,后者当时正在准备关于波你尼(Pāṇini)著作的第二版,门捷列夫用命名向波你尼致敬。周期表与波你尼语法中的 Śiva Sūtras 有惊人相似之处。
rrk4n0查看英文原文
About the gaps """Mendeleev was a friend and colleague of the Sanskritist Böhtlingk, who was preparing the second edition of his book on Pāṇini[47] at about this time, and Mendeleev wished to honor Pāṇini with his nomenclature.[48] Noting that there are striking similarities between the periodic table and the introductory Śiva Sūtras in Pāṇini's grammar""" More: https://en.wikipedia.org/wiki/Dmitri_Mendeleev
补充指出该方法学上对应形态学分析,关键在属性选取
这种“周期表”的通用形式是形态学分析(Morphological Analysis)。大部分理论工作在于选取能暴露正确权衡的属性,除此之外这个方法简单得出奇。
bordercases查看英文原文
The generalized form of the "Periodic Table" is the Morphological Analysis. http://www.swemorph.com/ma.html Most of the theoretical work is in picking the right properties that expose the right trade-offs. Beyond that, the method is deceptively simple.
历次讨论
- 2018Hacker News 讨论帖598 分 · 64 评
同领域还值得读
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 分钟编辑精选