May 3, 2015

InnoDB IO子系统介绍

本文我们来简单过一下InnoDB的IO子系统相关模块的代码逻辑。主要包括IO读写线程、预读逻辑、InnoDB读写Page以及社区的一些改进。 前言 InnoDB对page的磁盘操作分为读操作和写操作。   对于读操作,在将数据读入磁盘前,总是为其先预先分配好一个block,然后再去磁盘读取一个新的page,在使用这个page之前,还需要检查是否有change buffer项,并根据change buffer,进行数据变更。   读操作分为两种场景:普通的读page及预读操作,前者为同步读,后者为异步读   Page写操作也分为两种,一种是batch write,一种是single page write。写page默认受double write buffer保护,因此对double write buffer的写磁盘为同步写,而对数据文件的写入为异步写。   同步读写操作通常由用户线程来完成,而异步读写操作则需要后台线程的协同。 原创文章,转载请注明: 转载自Simple Life 本文链接地址: InnoDB IO子系统介绍 Post Footer automatically generated by wp-posturl plugin for wordpress.