『詳説データベース』で紹介されていたページ: https://lwn.net/Articles/752063/

Linuxのfsyncはページのフラッシュに失敗してもダーティ状態をクリアしてしまう(USBドライブが抜けた場合などにダーティなページが溜まっていくのを防ぐため)。

また、ファイルを開いていないときにカーネルがページをフラッシュしたときのエラーはfsync等で取れない。

これはPostgreSQLなど、データ書き込みプロセスとは別のfsync用プロセスがまとめてfsyncするようなアプリケーションで問題となる。

この対策として現在のPostgreSQLではカーネルのページキャッシュを使わずにdirect I/Oを使って自前でキャッシュを管理している。

Reply to this note

Please Login to reply.

Discussion

No replies yet.