マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】pgpool-II

【OSS情報アーカイブ】pgpool-II

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「pgpool-II」とは

「pgpool-II」基本情報

■概要

pgpool-II(ピージープールツー)とは、オープンソースRDBMS「PostgreSQL」に対して、冗長化や負荷分散を可能にするためのミドルウェアです。PostgreSQLサーバとPostgreSQLクライアントの間でデータベースプロキシとして稼働します。

■基本説明

pgpool-IIは、オープンソースRDBMS「PostgreSQL」に対して、冗長化機能や負荷分散機能を追加できるミドルウェアです。

PostgreSQLサーバとPostgreSQLクライアントの間で稼働するため、既存のPostgreSQLアプリケーションをほとんど変更せずに利用できます。

■動作環境

pgpool-IIは、Linuxをはじめ、SolarisやFreeBSDなどのUNIX環境で動作します。

■経緯

pgpool-IIは、2006年からSRA OSS,inc. 日本支社のメンバーによって開発が開始されました。

その後、Enterprise DB社のメンバーなども加わり、グローバルな開発コミュニティを形成しています。

アーキテクチャ

pgpool-IIは、PostgreSQLのバックエンドフロントエンドプロトコルを理解し、バックエンドとフロントエンドの間でメッセージを転送します。

つまり、データベースアプリケーション(フロントエンド)からは、pgpool-IIが実際のPostgreSQLサーバであるように見え、サーバ(バックエンド)からは、pgpool-IIがフロントエンドであるように見えます。

pgpool-IIは、サーバとクライアントに対して透過的に動作するため、既存のデータベースアプリケーションについてソースコードに変更を加えることなくpgpool-IIを利用できます。

主な機能

■コネクションプーリング

pgpool-IIはPostgresSQLとの接続を保持し、「ユーザ名」「データベース名」「プロトコルバージョン」などの属性が同じ接続があるたびに、それらの接続を再利用します。

この機能により、コネクション確立のオーバヘッドを減少させることが可能となり、システム全体のスループットを向上させます。

■データレプリケーション

pgpool-Ⅱは複数のPostgreSQLサーバを管理できます。管理下にある複数のPostgreSQLサーバをクラスタ化してレプリケーション機能を有効にすることにより、2つ以上のPostgreSQLサーバによるリアルタイムバックアップを行えます。

そのため、PostgreSQLクラスタの1つがダウンした場合でも、システム全体を止めることなくサービスを継続できます。

また、pgpool-IIには、組み込みレプリケーション(ネィティブレプリケーション)機能があるため、PostgreSQLのストリーミングレプリケーションのように、外部レプリケーションも可能です。

■負荷分散(SELECTクエリロードバランシング)

PostgreSQLデータベースがレプリケーションされると、どのサーバでSELECT文が発行されても同じ結果を返すようになります。

pgpool-IIは、pgpool-IIに送られてきたSELECTクエリを複数のPostgreSQLサーバに分散させることが可能です。この機能を有効化することで、各PostgreSQLサーバの負荷を軽減し、システム全体のスループットを向上させます。

パフォーマンスは、PostgreSQLサーバの数に比例して向上します。特に、多数のユーザが検索のみのクエリを同時に発行するようなケースにおいて、負荷分散は最大の効果を発揮します。

■最大接続数制御

PostgreSQLには最大同時接続数の制限があり、設定した制限を超えると新しい接続は拒否されます。最大接続数を増加させるとリソース消費が増加するため、パフォーマンスに悪影響を与えるためです。

pgpool-Ⅱにも、同様に、最大接続数の制限がありますが、最大接続数に達している状態で新たな接続が来た場合、クライアントに対して即座にエラーを返さずに、待ち行列に入れて接続が空くまで待機させることが可能です。

■自動フェイルオーバー

pgpool-II配下にあるPostgreSQLデータベースサーバのどれかがダウンしたり、ネットワークレベルで到達できなくなった場合、pgpool-IIは該当サーバを切り離し、残ったサーバで運用を継続します。

自動フェイルオーバをサポートできる「タイムアウト機能」や「リトライ機能」なども備えています。

pgpool-IIの導入事例

■SPOF(Single Point of Failure)を解消するためpgpool-II を導入

株式会社Gengo様では、「Gengo®」システムを Amazon Web Service 上で稼働させており、サービスを支える基幹システムのデータベースとして、早い時期から PostgreSQL を活用しています。利用者の増加に対応するための負荷分散と、信頼性向上のための冗長化構成を実現するために、pgpool-II を採用しました。

http://www.sraoss.co.jp/case_study/gengo.php

■PostgreSQL + pgpool-II の導入により、判例などの大量データの横断検索性能を大幅向上

第一法規株式会社様は、法律関連の書籍販売や、オンラインデータ提供を行っています。判例データを扱うシステムについて、データベースとしては PostgreSQL を採用し、冗長化や性能向上のために pgpool-II を採用しました。

http://www.sraoss.co.jp/case_study/daiichihoki.php

■その他の事例

その他の事例については、こちらのページをご覧ください。

http://www.sraoss.co.jp/case_study/

情報提供協力

このページは、SRA OSS,inc. 日本支社の協力により作成しました。

補足情報

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「MariaDB MaxScale」など。

■オフィシャルサイト

オフィシャルサイト

→pgpool-II(pgpool Wiki)

ライセンス情報

pgpool-IIのライセンスは「BSDライセンス」です。

詳細について、こちらを参照ください。
→pgpool-II →1 Pgpool Wikiへようこそ! →1.2 Pgpool-Ⅱのライセンス

ダウンロード

→pgpool-II →Downloads

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

【トレンド解説】超入門「 スマートファクトリー 」🏭

トレンド解説

2024.04.15

【トレンド解説】超入門「 スマートファクトリー 」🏭

「 スマートファクトリー 」への理解を深めるための解説として、初心者向けにわかりやすくまとめた記事です。「新しい工場の概念」「デジタルツインの活用」「IoT技術による最適化」など、現代の製造業に必要な知識を効果的に学べます。 スマートファクトリー の導入によるメリットを具体的に解説しています。