今回のチューニング
前回は、共有バッファサイズを調整することでPostgreSQLのパフォーマンスを向上させました。共有バッファはPostgreSQLエンジン とハードディスクとの間でデータをキャッシュして処理速度を稼ぐものでしたが、もう1つ似たような位置づけのバッファがあります。それはトランザクション ログバッファです。今回のチューニングは、この「トランザクションログバッファ」をターゲットにします。
共有バッファの問題
前回のチューニングで取り上げた共有バッファが、いわゆるディスクキャッシュとして働いていることは説明しました(図1)。

図1:共有バッファの概念図
このディスクキャッシュは読み込み時だけでなく書き込み時にもキャッシュとして機能しているため、PostgreSQLエンジンによって更新された データは、すぐにはハードディスクに書き込まれません。読み込みだけでなく書き込みでさえも、できるだけハードディスクへのアクセスを減らし、パフォーマ ンスを上げるように工夫しているわけです。
ここで1つ疑問がわきませんか?
データを更新しても即座にハードディスクへ書き込まないのであれば、その瞬間に何らかの障害が発生してPostgreSQLサーバが停止してしまう と、大切なデータが失われるのではないか…。実はそのとおり、失われてしまいます。このままではRDBMSとして十分な信頼性を備えているとはいえませ ん。
バックナンバー
この記事の筆者
1995年よりインターウィズという屋号で個人事業を営む。普段はPostgreSQLを用いたウェブアプリ ケーション開発などを行う。各コンピュータ情報誌にてPostgreSQL関連記事や連載を執筆。日本PostgreSQLユーザ会の創立メンバーの1人 で、同会の技術担当理事、PostgreSQLのしくみ分科会座長を経て、2004年度からは理事長を勤める。
筆者の人気記事
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。