PostgreSQLをミッションクリティカル領域へ ~ Enterprise Postgres 12のこだわり ~
PostgreSQLインサイド

PostgreSQLは、近年のオープンソースソフトウェア(以降、OSS)活用の流れを受け、その使い勝手の良さから幅広く利用されています。データベースで重要となる信頼性や性能などの機能においても、リリースごとに機能改善が続けられています。しかし、大規模かつ社会的影響が大きいシステムの構築においては、さらにミッションクリティカルな機能要件が求められます。
この機能要件にこだわり、機能を追求しているのが富士通のデータベース「FUJITSU Software Enterprise Postgres(以降、Enterprise Postgres)」です。Enterprise Postgresは、堅牢な運用性が求められるミッションクリティカルシステムに対応するため、PostgreSQLを拡張し、信頼性、性能、セキュリティを強化しています。

ミッションクリティカルへの取り組み

Enterprise Postgresでは、PostgreSQL 9.5をベースとした開発当初より、運用操作の操作性向上のための独自GUI(WebAdmin)の提供や周辺OSSの取り込み(運用ツールやクライアントドライバー)による連携性向上など、さまざまな側面からPostgreSQLの機能を拡張しています。
中でも特に注力しているのがミッションクリティカル向けの機能強化です。データベースの根幹ともいえる信頼性や性能、セキュリティといった分野はEnterprise Postgresを提供する富士通の得意分野であり、Enterprise Postgresは、まさにその強みが活かされた製品となっています。例えば、信頼性の面では、PostgreSQLのストリーミングレプリケーションを機能強化し、トラブル発生時の自動切り替えを可能にした「データベース多重化」、セキュリティの面では、アプリケーションを修正することなくデータを暗号化できる「透過的データ暗号化」などが挙げられます。
2020年7月にリリースされたEnterprise Postgres 12では、ミッションクリティカルに向けた更なる機能拡張が図られ、高度な可用性が要求される大規模システムに対応しうるデータベースとなっています。

関連コンテンツ

Enterprise Postgres 12の新機能を解説

Enterprise Postgres 12で追加された機能の中から、ミッションクリティカル向けに提供された機能である「Connection Manager」、「Global Meta Cache」および「災害対策運用の強化」を紹介します。

瞬時のサーバー切り替えにより可用性を向上させるConnection Manager

Connection Managerは、業務継続を実現するための機能です。
例えばレプリケーション構成において、サーバーに障害が発生し、スタンバイがプライマリーに替わった場合、アプリケーションは接続するサーバーを変更する必要があります。PostgreSQLのクライアントドライバーにもこれを実現する機能はありますが、接続すべきサーバーにたどり着くまで接続を試行する必要があり、接続のロスが発生します。Connection Managerは、サーバーの属性を常にチェックすることで、接続先のサーバーを瞬時に特定します。このため無駄な接続を試行せずに接続先を変更できます。
また、Pgpool-IIやpgbouncerなどのOSSツールにも同様の機能がありますが、これらは専用のプロセスを介してアプリケーションとデータベースクラスタ間の通信を行っています。これに対して、Connection Managerは、アプリケーションとデータベースクラスタを直接通信させることで、OSSツールと比較するとSQLレスポンスが早いという優位性を持ち合わせています。

関連コンテンツ

メモリー使用量削減により高性能を実現するGlobal Meta Cache

Global Meta Cacheは、SQL処理に必要な情報をプロセス間で共有することでメモリー使用量を削減する機能です。
PostgreSQLでは、各プロセスメモリー上のハッシュテーブルにシステムカタログやテーブル定義情報をキャッシュ(以降、メタキャッシュ)することでSQL処理の高速化を実現しています。しかし、アクセスするテーブル数などが増えるとプロセスメモリー上のメタキャッシュが増え、やがてはメモリー不足の要因となってしまいます。同様にアプリケーションの実行多重度を上げるには大量のメモリーが必要となるため、メモリー不足を誘発してしまう可能性があります。Global Meta Cacheでは、メタキャッシュを共有メモリー上に展開することで、プロセスメモリーの使用量を削減します。これにより、プロセス数を増やすことができ、アプリケーションの実行多重度を上げることで処理性能の向上につながります。
ミッションクリティカルなシステムでアプリケーションを高多重で実行させる場合など、Global Meta Cacheにより、効率的なメモリーの使用による性能向上が実現できます。

広域災害にも安心な四重化システムの構築が可能

災害対策システムでは、運用センター内を冗長化し可用性を高めたうえで遠隔地の災害対策センターにバックアップを配置するのが一般的です。この構成においては、災害対策センターに何らかのトラブルが発生した場合、運用を一旦中断し、災害対策センターを復旧させたのち、再度、災害対策システムの運用を開始するといった手順が必要となります。
Enterprise Postgresでは、従来より、災害対策運用のための「ログの順序性保証」が提供されていましたが、Enterprise Postgres 12では、運用センターだけでなく災害対策センター内を冗長化するための機能が追加されました。災害対策センター側のプライマリーサーバーに障害が発生した場合、運用センターから災害対策センターの接続先サーバーを自動的にスタンバイサーバーに切り替えることで、運用を停止することなく災害対策システムを継続できます。災害対策センターの冗長化は、前述したデータベース多重化機能により実現されているため、PostgreSQLで同様のシステムを構築する場合と比べると構築手順や運用の手数が減り、また、信頼性も確実に向上します。

関連コンテンツ

コミュニティーに参画しミッションクリティカルに向けた機能を強化

Enterprise Postgres 12で拡張した独自機能を解説してきましたが、その一方で、PostgreSQLコミュニティーとの関連も深く、コミュニティー活動にも積極的に参画し、機能強化をしているのも製品の特長の1つといえます。
Enterprise Postgres 12のベースとなっているPostgreSQL 12では、Enterprise Postgresの開発者が提案、開発に参画した機能が提供されています。「宣言的パーティショニング」では、パーティショニングの性能改善にEnterprise Postgresの開発者が取り組みました。処理遅延のボトルネックの検出やボトルネック解消のための作業に携わることで性能改善を実現しています。また、PostgreSQL 12で追加された「テーブルアクセスメソッドインターフェイス」もEnterprise Postgresの開発者が提案、開発した機能です(PGCon 2017アンカンファレンス / PGCon 2019で発表)。なお、PostgreSQL 12は、従来のheap形式のみの対応ですが、現在、データ形式に応じたさまざまな格納構造が開発中であり、それらを実装するためのインターフェイスとして期待されています。
さらに、Enterprise Postgres 12で提供したVACUUM / TRUNCATEの機能改善や前述したGlobal Meta Cacheは、コミュニティーにフィードバックされ、将来、PostgreSQLへの機能の組み込みを提案しています。PostgreSQLの機能をプロダクト製品で先行提供することで安定した品質が担保されることはもちろんですが、Enterprise Postgresのミッションクリティカル機能をPostgreSQLに取り込むことで、高信頼、高性能の分野においてPostgreSQLの成長を支えていると言えます。

関連コンテンツ

Enterprise Postgresの今後の展開

Enterprise Postgresの開発チームでは、現在もPostgreSQLコミュニティーへの機能提案や機能開発を続けています。例えば、「データ圧縮機能」や「データロード機能改善」です。これらの機能については、PGConf.EUやPGCon 2020でEnterprise Postgresの開発者が機能開発への取り組みを発表しています。
また、Enterprise Postgres自身の今後の展開としては、大規模システムへの更なる機能拡充に向けてスケールアウト機能の提供を目指しています。Enterprise Postgresは、今後もPostgreSQLコミュニティーと連携しながらミッションクリティカルを追求し続けます。

関連コンテンツ

2020年7月1日公開

Enterprise Postgresについてもっと知りたい!

Enterprise Postgresが提供するさまざまな機能についての詳細な説明や動作環境、価格などの製品情報や90日間無料で全ての機能を試せる無料体験版、カタログやご紹介資料など製品に興味があるお客様必見の情報を取り揃えています。ぜひ、こちらのページも併せてご覧ください。

デジタルビジネスを支えるデータベース
FUJITSU Software Enterprise Postgres

オープンソースのPostgreSQLをベースに、導入・運用のしやすさ向上と「セキュリティ」「性能」「信頼性」を強化しており、PostgreSQLを利用しているさまざまなアプリケーションや周辺ツールおよびノウハウを活用したシステム構築ができます。

  • Enterprise Postgresの製品情報を見る
FUJITSU Software Enterprise Postgres

本コンテンツに関するお問い合わせ

お電話でのお問い合わせ

Webでのお問い合わせ

当社はセキュリティ保護の観点からSSL技術を使用しております。

ページの先頭へ