深入理解缓冲区(十七)
来源:互联网 发布:红包分析软件 编辑:程序博客网 时间:2024/06/06 06:36
4.3.2 从buf与IO看改进---异步IO
与IO相关的操作,如上图所示。
其中,分为两种方式的读写:逻辑IO和物理IO。
逻辑IO,是数据据访问层向缓存区读写数据的操作,请求数据,称为逻辑读;写入数据,称为逻辑写。
物理IO,是数据缓冲区向外存读写数据的操作,请求数据,称为物理读;写入数据,称为物理写。
物理层的读写,是通过smgr接口进行的。调用序列如下:
ReadBufferàReadBuffer_commonàsmgrreadàmdread;
FlushBufferàsmgrwriteàmdwrite
而阅读md.c中的代码,可以发现,物理读写操作,都是通过调用C的库函数read和write等实现的(注意win32.h中,read和write实际是_read和_write)。
而read和write都是同步的方式进行读写的,所以,物理IO有可能有改进的方式,改法是,在smgr层,实现异步IO[1]操作。然后在数据缓冲区层改造buf的管理方式,使之能适应异步IO(AIO)。比如,加入预读方式等。
Linux的AIO 在 2.5 版本的内核中首次出现,现在已经是 2.6 版本的产品内核的一个标准特性了。
如果数据存储层的物理IO改写为异步IO,还需要封装一套屏蔽多操作系统的接口,供上层的数据缓冲区层调用,这里不再展开。[1]http://www.ibm.com/developerworks/cn/linux/l-async/ linux下异步IO
http://blog.csdn.net/bokee/article/details/5268894 windows下异步IO
- 深入理解缓冲区(十七)
- 深入理解缓冲区(一)
- 深入理解缓冲区(二)
- 深入理解缓冲区(三)
- 深入理解缓冲区(四)
- 深入理解缓冲区(五)
- 深入理解缓冲区(六)
- 深入理解缓冲区(七)
- 深入理解缓冲区(八)
- 深入理解缓冲区(九)
- 深入理解缓冲区(十)
- 深入理解缓冲区(十一)
- 深入理解缓冲区(十二)
- 深入理解缓冲区(十三)
- 深入理解缓冲区(十四)
- 深入理解缓冲区(十五)
- 深入理解缓冲区(十六)
- 深入理解缓冲区(十八)
- GCT复习小结
- Snort 命令参数详解
- 读格林斯潘回忆录-5
- MongoDB PHP API 及用法
- 用Ueditor为Asp.net mvc打造可视化HTML编辑器
- 深入理解缓冲区(十七)
- MongoDB Linux下的安装和启动
- linux中文显示问题
- 整数划分问题
- c++感受
- 《乔布斯传》今日10时05分全球同步首发
- C++ 带有头结点的单链表的简单实现
- 您的帐号存在异常,暂不支持同步消息记录
- 理头绪--写在懈怠时