マジセミドライブ

ウェビナー関連のニュースや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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。