ruto on Nostr: 『詳説データベース』で紹介されていたページ: ...
『詳説データベース』で紹介されていたページ: https://lwn.net/Articles/752063/
Linuxのfsyncはページのフラッシュに失敗してもダーティ状態をクリアしてしまう(USBドライブが抜けた場合などにダーティなページが溜まっていくのを防ぐため)。
また、ファイルを開いていないときにカーネルがページをフラッシュしたときのエラーはfsync等で取れない。
これはPostgreSQLなど、データ書き込みプロセスとは別のfsync用プロセスがまとめてfsyncするようなアプリケーションで問題となる。
この対策として現在のPostgreSQLではカーネルのページキャッシュを使わずにdirect I/Oを使って自前でキャッシュを管理している。
Linuxのfsyncはページのフラッシュに失敗してもダーティ状態をクリアしてしまう(USBドライブが抜けた場合などにダーティなページが溜まっていくのを防ぐため)。
また、ファイルを開いていないときにカーネルがページをフラッシュしたときのエラーはfsync等で取れない。
これはPostgreSQLなど、データ書き込みプロセスとは別のfsync用プロセスがまとめてfsyncするようなアプリケーションで問題となる。
この対策として現在のPostgreSQLではカーネルのページキャッシュを使わずにdirect I/Oを使って自前でキャッシュを管理している。