-
2020-07-30 PostgreSQL
PostgreSQL ミドルウェア Pgpool-IIの便利機能3選
はじめに
みなさん、こんにちは。インサイトの加藤です。
前回はPostgreSQLにおけるレプリケーション機能とPgpool-IIについて簡単にお話しさせていただいたので、今回はPgpool-IIに焦点を当て、これはすごく便利だなと感じた機能を3つほどご紹介させていただきたいと思います。
1. 自動フェイルオーバー機能
PostgreSQL周りに何かしらの問題が生じた時、自動的に問題が発生したサーバーを切り離し、副系サーバを主系サーバーに昇格させる事ができます。もちろん、手動で意図的にフェイルオーバ(スイッチオーバ)させることもできます。この機能はPacemakerなどのクラスタリングソフトウェアを使用することでも実現可能ですが、後述する負荷分散機能などに加えて、クラスタリングソフトウェアのみでは実現できない機能が多数存在します。
2. 負荷分散機能
Pgpool-IIには参照系クエリに対する負荷分散機能があります。Pgpool-IIに設定した各サーバーへ処理を程よく分散させることで、サーバーが高負荷になってしまう状態を避ける事ができます。負荷分散の割合を柔軟に設定できることも魅力の一つです。
参考 : https://www.pgpool.net/docs/latest/ja/html/runtime-config-load-balancing.html
3. オンメモリクエリキャッシュ機能
Pgpool-IIは参照系クエリの結果をキャッシュし、後で再利用することができます。
最初にクエリが送信されるとPgpool-IIはクエリの結果を保存することで、再び同じクエリを送信された時にPostgreSQLへ問い合わせることなく結果を返しますので、同じ参照系クエリを何度も発行するタイプのアプリケーションでは大きなメリットがあります。
参考 : https://www.pgpool.net/docs/latest/ja/html/runtime-in-memory-query-cache.html
まとめ
機能を3つ紹介させていただきましたが、その他にも多く機能が備わっております。今回の内容で、Oracleに負けず劣らずの構築をPostgreSQLでも構成できるかもと、少しでも思っていただけたら嬉しいです。
次回からは、同じくOSSである統合監視ソフトウェア「Zabbix」と「Pgpool-II」を組み合わせた構築を紹介させていただきますので、ぜひご覧ください。