1. 程式人生 > >Direct I/O,Synchronous I/O的概念

Direct I/O,Synchronous I/O的概念

com needed spa lin ons dia immediate storage oid

Direct I/O概念:

Direct I/O is a way to avoid entire caching layer in the kernel and send the I/O directly to the disk.

想要使用direct io的模式,可以這樣做:

Opens files with O_DIRECT flag.


Synchronous I/O概念:

Synchronous I/O is any I/O (system I/O with or without O_DIRECT, or stream I/O) performed to a file descriptor that was opened using the O_SYNC

or O_DSYNC flags.


幾個Flag的區別:

O_DIRECT I/O operations performed against files opened with O_DIRECT bypass the kernel‘s page cache, writing directly to the storage.
O_SYNC File data and all file metadata are written synchronously to disk.
O_DSYNC Only file data and metadata needed to access the file data are written synchronously to disk. Metadata that is not required for retrieving the data of the file may not be written immediately.


參考資料

===============

What is direct I/O anyway?

http://www.alexonlinux.com/what-is-direct-io-anyway

Ensuring data reaches disk

https://lwn.net/Articles/457667/

Direct I/O,Synchronous I/O的概念