pgpool-IIのインストール方法
pgpoolとは
pgpoolとはPostgreSQL専用のコネクションプーリングサーバーです。2004年にファーストバージョンがリリースされ、2006年にはパラレルクエリなどの新機能を実装したpgpool-IIが登場し、その後もオンラインリカバリーなどの新しい機能を次々と実装しながら進化を続けています。
最近では、非同期レプリケーションシステムとして人気の高いSlony-Iとの組み合わせや、PostgreSQL 8.2からの新機能であるwarm standbyとの組み合わせといった新しい活用方法も注目されています。
本連載では、多様なpgpool-IIの活用方法の中から最もよく使われているコネクションプーリングとレプリケーションを中心に活用方法を解説します。
第1回はpgpool-IIの機能の簡単な紹介とインストール方法について解説します。
多機能ミドルウエアpgpool-II
pgpool-IIは、ちょうどWebサーバーにおけるプロキシサーバーのようにPostgreSQLとクライアントの間で動作し、可用性の向上や性能の向上のためのさまざまな機能を実現します。
まず可用性の向上のための機能として、「同期レプリケーション」「オンラインリカバリー」「Slony-Iやwarm standbyとの連携」があります。
「同期レプリケーション」は、pgpool-IIが更新系のクエリを複数のノードに同時に送信することにより、同期レプリケーションを実現します。ノードに障害が発生した場合は、故障したノードを自動的に切り離してサービスを継続します。また、故障検出時に任意のコマンドを実行させることができます。同期レプリケーションについては、第3回で詳しく説明します。
「オンラインリカバリー」は、サービスを停止することなく、ノードを復旧や新規ノードの追加を行うことができます。
「Slony-Iやwarm standbyとの連携」は、故障検出時に適切なアクションを自動実行させることができます。Slony-Iやwarm standby自体も可用性を向上させるソリューションですが、どちらも単体では故障検出の機能がありません。pgpool-IIと連携させることで、これが実現できます。
続いて性能の向上のための機能として、「コネクションプーリング」「参照クエリの負荷分散」「パラレルクエリ」があります。
「コネクションプーリング」は、pgpool-IIとPostgreSQL間の接続を再利用することで、接続にかかるオーバーヘッドを軽減します。コネクションプーリングについては第2回で詳しく解説します。
「参照クエリの負荷分散」は、設定した重みに基づいて参照系のクエリをランダムに振り分け、負荷分散することができます。負荷分散については、第3回で詳しく説明します。
「パラレルクエリ」は、1つのテーブルを複数のノードで分割して格納し、検索を各ノードで並列して実行します。これにより、高速な検索を実現します。
次は、pgpool-IIのインストール方法について紹介します。