1.7. 基礎的な構造

Pgpool-IIは、クライアントとPostgreSQLの間に位置するproxyサーバです。 Pgpool-IIは、"frontend and backend protocol"と呼ばれるネットワーク上のプロトコルを理解します。 プロトコルの詳細については、PostgreSQLのマニュアルをご覧ください。 Pgpool-IIを利用するにあたって、PostgreSQLを変更する必要はありません。 (正確には、Pgpool-IIのすべての機能を使うためには、少数の拡張をインストールする必要があります) したがって、Pgpool-IIは色々なバージョンのPostgreSQLと協調することができます。 理論的には、最初期のバージョンのPostgreSQLさえ、Pgpool-IIで使用できます。 クライアント側についても同じことが言えます。 プロトコルに従う限り、どのような言語やドライバを使おうと、Pgpool-IIは問題なく接続を受け付けます。

Pgpool-IIは複数のプロセスから構成されます。 他のすべてのプロセスの親となるメインプロセスがあります。 メインプロセスは、クライアントからのコネクションを受け付ける子プロセスをforkする役割があります。 また、メインプロセスからforkされるいくつかのワーカープロセスがあります。 ワーカープロセスは、ストリーミングレプリケーションの遅延を検出する役目があります。 また、「PCPCプロセス」と呼ばれる特殊なプロセスがあります。これは、Pgpool-IIの管理専用に使用されます。 Pgpool-IIには、組み込みの"watchdog"と呼ばれる組み込みの高可用性機能があります。 watchdogはいくつかのプロセスから構成されています。 watchdogの詳細については第2章をご覧ください。

図 1-1. Pgpool-IIのプロセス構造