マジセミドライブ

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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

ウェビナーまとめ

2024.05.15

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

2024年3月12日に三菱電機ITソリューションズ株式会社とアットストリームパートナーズ合同会社の共催で、組立加工製造業向けのセミナー「なぜか高くなる原価を管理する 不確実性の時代を乗り切るためのコスト戦略とは」が開催されました。本セミナーでは、製造業における原価管理の現状と改善手法について深く掘り下げ、経営活動への具体的な活用方法を提示しました。今回は、その講演の要点をお伝えします。

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

OSS情報

2024.07.04

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

「 Hoppscotch 」は、オープンソースのAPI開発エコシステムで、使いやすさとアクセシビリティを重視した軽量なWebベースのスイートです。無料版と有料版があり、PostmanやInsomniaの代替として利用可能です。

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

OSS情報

2024.07.18

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

「 GPT-NeoX 」は、GPU上で大規模言語モデル(LLM)を効率的にトレーニングするためのライブラリです。NVIDIAのモデルを基に独自の最適化が加えられ、オートレグレッシブ言語モデルのトレーニング手法を集約しています。