会员已迁移至飞豹客。请前往飞豹客登录,原账号和有效会员可继续使用。
getfromcode

自下而上存储全栈 (TiDB_RockDB_SPDK_fuse_ceph_NVMe)

云计算
课程简介

这套资料的主题是「自下而上存储全栈」,名字里已经把技术栈摊开了:TiDB、RocksDB、SPDK、FUSE、Ceph、NVMe。它的价值不在于堆砌名词,而在于把一条从硬件到 SQL 层的完整链路串起来讲——从 NVMe 设备与用户态驱动,到内核文件系统与用户态文件系统,再到分布式块/对象存储,最后落到单机存储引擎和分布式 SQL 层。对做存储、数据库内核…

已有 8 人浏览 发布 2026-06-14 更新 2026-10-06

这套资料的主题是「自下而上存储全栈」,名字里已经把技术栈摊开了:TiDB、RocksDB、SPDK、FUSE、Ceph、NVMe。它的价值不在于堆砌名词,而在于把一条从硬件到 SQL 层的完整链路串起来讲——从 NVMe 设备与用户态驱动,到内核文件系统与用户态文件系统,再到分布式块/对象存储,最后落到单机存储引擎和分布式 SQL 层。对做存储、数据库内核、云原生基础设施的开发者来说,这种贯穿式材料比单点文档更难找。

这条链路为什么值得按顺序看一遍

多数人的知识是断层的:会用 TiDB,但说不清一个写入请求最终怎么落到盘上;调过 SPDK,但没想过上层的 LSM-Tree 压缩策略会怎样反过来放大写放大;搭过 Ceph,却对客户端侧的 FUSE 挂载路径和内核态路径的差异只有模糊印象。这门课的结构就是针对这种断层设计的。

自下而上的顺序是有意为之:先搞清楚 NVMe 协议、队列机制和 SPDK 的用户态轮询模型,理解「一次 IO 的真实成本」;再往上到 FUSE,看用户态文件系统如何用一次内核往返换取灵活性,代价是什么;接着是 Ceph 这类分布式存储,为什么它要自己做 CRUSH 而不依赖中心元数据;最后才进入 RocksDB 与 TiDB,看 LSM-Tree 的写路径、Compaction 策略,以及 TiKV 如何在多副本一致性之上把这些能力组合成分布式事务。

各模块的技术看点与可复用点

  • SPDK 与 NVMe:重点不在跑分,而在理解轮询(polling)替代中断、无锁队列、大页内存这些设计取舍,以及它在什么负载下反而不划算。这套思路可以直接迁移到你自己的高性能 IO 组件里。
  • FUSE:适合拿来对照内核文件系统做实现对比,明白 read/write/lookup 这些回调在用户态如何落地,以及元数据密集型场景下的延迟来源。
  • Ceph:关注数据分布算法、副本与纠删码的取舍、PG 与 OSD 的映射关系,这些概念在你排查集群抖动或扩容不均时是必需的。
  • RocksDB:MemTable、WAL、SST 分层、Compaction 策略,是理解一切基于 LSM-Tree 的数据库的公共底座。
  • TiDB / TiKV:看它如何把 Range 分片、Raft 复制、MVCC 事务组装成一个可水平扩展的 SQL 层,重点在组件之间的边界与通信,而不是语法。

建议的对照实践方式

这类资料最容易犯的错误是「看完就完」。更有效的用法是边看边在本地或测试集群里复现关键路径:用 fio 配合 SPDK 观察不同队列深度下的 IOPS 与延迟曲线;把同一个负载分别走 FUSE 和内核路径做对比;在单机上部署一个最小 TiDB 集群,用慢查询日志和 TiKV 的监控指标反推请求经过了哪些层。每看完一个模块,问自己一句:这个组件向上暴露了什么接口,又向下依赖了什么假设——能把这两点说清楚,才算真正拆开了一层。

适合谁,以及一点提醒

如果你在做存储系统、数据库内核、云平台底层,或者需要为业务选型做技术判断,这份材料可以当作一条可对照的路线图。它不适合当作零基础入门课:涉及内核、分布式协议、C++ 用户态编程,需要读者有一定操作系统和数据库基础。另外,视频体例天然偏「讲原理+演示」,真正的工程细节(参数含义、版本差异、异常路径)还是要回到各项目的官方文档和源码里去核对。把它当成索引和地图,用动手实验去填充,收获会比单纯看视频大得多。

自下而上存储全栈 (TiDB_RockDB_SPDK_fuse_ceph_NVMe)

深入探索TiDB、RockDB等存储技术

编辑点评

全面解析自下而上存储全栈,涵盖TiDB、RockDB、SPDK、FUSE、Ceph等前沿技术,适合对存储系统架构有深入理解需求的学习者。

⭐ 编辑推荐

系统学习TiDB、RockDB等存储技术,掌握自下而上存储全栈架构。

✨ 课程亮点

✦TiDB存储引擎原理
✦RockDB使用场景
✦SPDK文件系统性能测试

课程目录

📁 视频
024.【KV项目-5】btreehashmapradixtreerbtree之间的选择_.mp4 [272.8 MB]
026.【KV项目-7】-为kv存储加上conf文件_.mp4 [232.4 MB]
023.【KV项目-4】pagechunk的get与put_.mp4 [161.7 MB]
020.【KV项目-1】KV存储拆解 Set,Get,Mod,Del_.mp4 [284.0 MB]
025.【KV项目-6】-slab分配slot与释放slot_.mp4 [192.4 MB]
022.【KV项目-3】kv service接口 set_get_modify_delete_.mp4 [192.7 MB]
019.【SPDK项目6】文件系统的性能测试(2)_.mp4 [195.2 MB]
021.【KV项目-2】bdev与blob对于kv存储的选择_.mp4 [264.3 MB]
017.【SPDK项目4】文件系统的posix api实现(2)_.mp4 [229.1 MB]
015.【SPDK项目2】SPDK的工作原理与文件系统架构分析(2)_.mp4 [173.7 MB]
016.【SPDK项目3】文件系统的posix api实现(1)_.mp4 [175.9 MB]
018.【SPDK项目5】文件系统的性能测试(1)_.mp4 [148.0 MB]
014.【SPDK项目1】 SPDK的工作原理与文件系统架构分析(1)_.mp4 [155.7 MB]
012.【fuse1】fuse协同事件 用户态文件系统(1)_.mp4 [203.1 MB]
013.【fuse2】fuse协同事件 用户态文件系统(2)_.mp4 [289.8 MB]
009.銆恑o_uring2銆戜笌epoll濯茬編鐨刬o_uring(2)_.mp4 [225.6 MB]
010.【io_uring3】io_uring的使用场景(1)_.mp4 [153.3 MB]
011.【io_uring4】 io_uring的使用场景(2)_.mp4 [262.4 MB]
029.【fastdfs2】FastDFS集群部署和同步机制分析_.mp4 [359.7 MB]
032.【fastdfs5】文件传输和接口设计_.mp4 [385.1 MB]
027.【KV项目-8】-kv存储测试用例与性能测试_.mp4 [190.2 MB]
038.【TiDB1】TiDB存储引擎的原理_.mp4 [237.8 MB]
031.【fastdfs4】高负载nginxfastcgi_.mp4 [381.9 MB]
028.【fastdfs1】fastdfs架构分析和配置_.mp4 [331.5 MB]
036.【ceph3】分布式ceph存储集群部署_.mp4 [165.1 MB]
033.【fastdfs6】 产品上云公网发布测试用例_.mp4 [342.3 MB]
034.【ceph1】 内核级支持的分布式存储ceph_.mp4 [309.2 MB]
030.【fastdfs3】 fastdfs存储原理_.mp4 [353.3 MB]
039.【TiDB2】TiDB集群方案与Replication原理_.mp4 [238.5 MB]
037.【RockDB】不一样的kv存储RocksDB的使用场景_.mp4 [262.3 MB]
035.【ceph2】 docker安装ceph分布式存储系统(高可用)_.mp4 [235.6 MB]
006.【zerofs5】mkfs.zvvfs实现partition layout的5步曲_.mp4 [185.5 MB]
004.【zerofs3】block_device对nvme的读写与sector大小代码实现_.mp4 [197.5 MB]
003.【zerofs2】nvme的lba与nblocks的重要性_.mp4 [151.1 MB]
…(已达 35 条上限,后续省略)

适合人群

  • 存储系统架构师
  • 数据库工程师
  • 系统运维人员

🎯 学习收获

  • 理解TiDB存储引擎原理
  • 掌握RockDB使用场景
  • 学习SPDK文件系统性能测试

🎉 祝您学习愉快!

课程购买
课程价格
金币29.9
299金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。