该系列主要对文件系统 io 进行分析总结,分为如下几章:

  • 文件系统io基础
  • mmap
  • 异步io: AIO, io_uring
  • Vectored io
  • mmap 是银弹吗?:论文解读

文件系统 io 是数据密集型系统的核心操作,对于数据库内核开发人员来说,理解 io 工作原理是特别重要的。本章主要介绍文件系统 io 基础知识,并介绍使用最频繁的 io 类型。

xxx

块设备(Block Device)是一种按照固定大小的块进行读写的设备,通常是以扇区(Sector)为单位,每个扇区大小为 512 字节或更多。块设备允许操作系统随机地读取或写入块中的数据,因为数据存储在固定大小的块中,而且块设备一般是能够缓存数据的,这使得块设备的访问速度比字符设备更快。

块设备通常包括机械硬盘、固态硬盘、光盘、USB存储设备等,它们通过操作系统的块设备驱动程序来与计算机进行通信。在操作系统中,文件系统一般使用块设备来存储和读取数据,因为块设备支持随机访问和缓存,使得文件系统可以快速地读取和写入数据。

扇区(Sector)/块(Block)/页(Page)

扇区是块设备传输的最小单元,大多数硬盘的扇区大小为 512 字节。块是由多个相邻扇区组合而成,是设备驱动程序操作的单位,典型的块大小为 512, 1024, 2048 和 4096 字节。