本漫游指南从现代数据中心硬件、单机 IO 性能出发,逐步探索分布式的存储产品的现状和技术点。
在笔者入门时,阅读了众多开发者的博客文章和技术讨论,受益匪浅。
但始终困顿于没有一本系统的 “技能书”,让学习者能够在起步之初,即能快速厘清整个技术栈的脉络和思想,从而放心大胆地打怪升级。故笔者逐步以开源形式编纂本书。
本书内容多为笔者自己曾有的疑惑,结合一手的工程见闻和调研,尽全力保证内容的新鲜度和实用性。
本书不妄图成为最权威、最深入的分布式存储教程,但求成为最有趣、最接地气、最具备工程实践意义的一本《漫游指南》,权作抛砖引玉,聊备各阶段读者研习之需。
谨以此书献给我爱的家人们,以及屏幕前热爱分布式技术的你。
漫游地图
*手工绘制不断更新中,您可以在此链接获取高清电子版。
适合读者
- 分布式系统开发者 - 存储系统架构设计与实现
- 存储系统工程师 - 深入理解存储技术栈
- 学生和研究者 - 对存储技术感兴趣的学习者
- 技术人员 - 希望了解分布式存储架构
文章索引(持续更新)
| 标题 | tags | 复杂度 |
|---|---|---|
| 1. 硬件篇 | 硬件, 性能基准 | ⭐️ |
| 2.1 同步 I/O (Sync I/O) | Sync I/O, POSIX | ⭐️⭐️ |
| 2.2 直接 I/O (Direct I/O) | Direct I/O, Page Cache | ⭐️⭐️ |
| 2.3 内存映射 I/O (mmap) | mmap | ⭐️⭐️ |
| 2.4 线程池模式 (Thread Pool) | 线程池, 并发 IO | ⭐️⭐️⭐️ |
| 2.5 小结 | Sync I/O 小结 | ⭐️ |
| 3.2 Linux AIO | 异步 IO, libaio | ⭐️⭐️⭐️ |
| 3.3 Linux io_uring | io_uring, 高性能 IO | ⭐️⭐️⭐️⭐️ |
| 3.4 Go 的磁盘 IO | Go, GMP, 磁盘 IO | ⭐️⭐️ |
| 3.5 小结 | Async I/O 小结 | ⭐️ |
| 4.1 混沌的分布式环境 | 分布式谬误, 失效建模 | ⭐️⭐️ |
| 4.2 时钟!! 顺序!! | 逻辑时钟, 因果顺序 | ⭐️⭐️⭐️ |
| 4.3 CAP 定理 | CAP | ⭐️⭐️ |
| 4.4 中登必备之复制与分区 | 复制, 分区 | ⭐️⭐️⭐️ |
| 4.5 分布式存储形态与组件 | 对象/块/文件存储, 组件 | ⭐️⭐️⭐️ |
| 4.6 动手做!你专属的分布式存储设计 CheckList | 技术选型, CheckList | ⭐️⭐️ |
| 5.1 复制策略设计 | 复制组, 编码 | ⭐️⭐️⭐️ |
| 5.2 分区策略设计 | 分区 | ⭐️⭐️⭐️ |
| 5.3 性能-成本-可靠性之不可能三角 | 成本, 可靠性, 故障域 | ⭐️⭐️⭐️ |
复杂度:⭐️ 入门 → ⭐️⭐️⭐️⭐️⭐️ 较难。
论文观点和翻译
| 标题 | tags | 复杂度 |
|---|---|---|
| FAST'26 | LESS: 纠删码存储中 I/O 高效修复 | FAST, EC, RS, LESS | ⭐️⭐️⭐️⭐️ |
| FAST'26 | ACOS: 苹果 EB 级全球分布式对象存储 | FAST, 对象存储, 地理复制, LRC | ⭐️⭐️⭐️⭐️ |
| 基于磁带的成本高效归档云存储 (TapeOBS) | FAST, 磁带, 归档存储 | ⭐️⭐️⭐️⭐️ |
| RocksDB 存算分离: Disaggregating RocksDB | RocksDB, 存算分离, LSM | ⭐️⭐️⭐️⭐️ |
即将推出
更多章节正在策划撰写中,部分章节略有改动,以左侧目录为准。
贡献与反馈
ℹ️
📖 本书源代码托管在 GitHub Repo,欢迎 star 和催更!
✍️ 文中的谬误、遗漏信息,欢迎 issue 补充讨论!
如何贡献
- 发现错误 - 提交 Issue
- 内容建议 - 功能请求
- 内容贡献 - Pull Request
- 点赞支持 - ⭐ Star 项目
关于作者
SPtuan | 团子云技术 - 一名普通的工程师,最大的愿望是度过平静的时光。
读者交流闲聊群
世界很大,圈子很小! 让世界更热闹一些吧 (球球了)! 所有的读者都大大大欢迎! 您的反馈是我前进的动力! WeChat: dangotech