4 ms·
Do you know if they address I/O reordering within the scheduler? For example transaction implementations often require that writes (distinct file system calls)
by johnbender 10y ago
Do you know if they address I/O reordering within the scheduler? For example transaction implementations often require that writes (distinct file system calls) hit the disk in a particular order to guarantee a sane state for the database. Prime example is the GNU bug for gzip:
http://bugs.gnu.org/22768 http://bugs.gnu.org/22768
The the writes to the `foo.gz` file have to hit the disk before the unlink but the I/O scheduler can reorder these potentially and a badly timed crash could result in data loss. Note that journaling doesn't fix this issue because the transactions are distinct too.
- rogerbinns 10y agoSQLite doesn't care about I/O re-ordering, but does care that the various fsync style calls work. SQLite uses a separate journal so it can rollback/forward changes.