系统与数据库2024cs-people.bu.edu
面向数据密集型应用的数据结构
Data Structures for Data-Intensive Applications [pdf] (2023)
进阶 · 约 120 分钟读完前置知识:数据结构基础、数据库系统基础、分布式系统基础
导读
这篇论文是一份关于数据密集型应用中数据结构设计的综述(survey),系统梳理了该领域的海量文献。它不只是罗列各种数据结构,而是帮助读者建立一套思考框架,理解在应用中构建或使用数据结构时需要权衡的各种因素。
HN 关注点:是因为这是一份覆盖面极广、质量很高的综述,为数据密集型系统的数据结构选型提供了系统性的心智模型。
HN 评论精选
这几条评论里:支持 1 质疑 1 补充 2
支持称赞这是高质量的综述,能帮助建立数据结构设计的思维框架
我只是粗略翻了一下,但这是一份对巨大领域极其出色的综述。它不只是罗列一堆数据结构,而是真正帮你建立一个心智模型,涵盖在应用中构建或使用数据结构时需要考虑的所有问题。
pgwhalen查看英文原文
I've only had a chance to skim so far, but this is an absolutely superb survey of an enormous space. It doesn't just list out a bunch of data structures, it actully helps you build a mental model of all the concerns to think about when building or using data structures in an application.
补充认为综述有用,但建议尽量单机部署以避开分布式复杂性
分布式系统中的数据结构很有挑战性,所以这是个有用的资源。不过如果可行的话,最好还是把应用保持在单机上。
datadrivenangel查看英文原文
Data structures across distributed systems are challenging, so this is a useful resource. Still, better if you can keep your application on a single machine if that's feasible.
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
- 评论区提到的论文
历次讨论
- 2024Hacker News 讨论帖583 分 · 26 评
同领域还值得读
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 分钟编辑精选