【存储工程】Direct I/O 与 O_DIRECT:绕过缓存的得与失
O_DIRECT 的语义、对齐约束、文件系统坑与何时该/不该绕过 Page Cache;io_uring 组合路径见 #79。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 4 篇文章 · 返回首页
O_DIRECT 的语义、对齐约束、文件系统坑与何时该/不该绕过 Page Cache;io_uring 组合路径见 #79。
拆解 O_DIRECT 对齐约束与 io_uring 固定缓冲区(IORING_REGISTER_BUFFERS)如何叠加;对比 buffered/Direct I/O 的 io_uring 实测 IOPS,给出数据库与块设备场景选型。
对照 LevelDB 1.23,用 diff 表与源码路径梳理 RocksDB 9.x 的多线程 flush/compaction、Column Family、RateLimiter、Direct IO、Statistics 与并发 MemTable 写,建立后续读 db_impl 子文件的坐标系。
一次 read(fd, buf, n) 从用户态到磁盘要穿过多少层?本文追踪 VFS read/write 全路径——file_operations、iter_iov、iomap、页缓存命中与 miss、直接 I/O 旁路、块层提交、fsnotify 插桩。