パブリック クラウド需要の高まりに伴い、オンプレミス上に構築されている PostgreSQL などの「オープン ソース データベース」を Azure Database for PostgreSQL などに移行する機会が増えているのではないかと思います。
Azure Database for PostgreSQLの基本として、自分の整理も兼ねて、PostgreSQL のアーキテクチャについてまとめてみます。
※ PostgreSQL (オンプレミス) は、Azure Database for PostgreSQL フレキシブル サーバーで選択可能なバージョン「14」を使用しています。
PostgreSQL について
PostgreSQL とは
PostgreSQL (ポストグレスキューエル) は、オープンソースのリレーショナル データベース管理システム (RDBMS) の一つであり、Linux や Windows OS 上で動作します。
PostgreSQLの大きな特色として、他のオープンソフトのリレーショナル データベースと同様に ソースコード が公開されているだけではなく、必要に応じてユーザーが公開されているソースコードをもとに独自機能を追加し、商用としてユーザーに提供することが可能になっています。
[補足]
ライセンス:PostgreSQL のソースコードを改変した場合においても、他のオープンソースソフトウェアとは異なり、ソースコードの公開が強制されないため、独自機能が追加されたカスタマイズ版のPostgreSQLを商用として販売することも可能。
コミュニティ : 営利企業によって維持/所有されているのではなく、コミュニティの中で世界中の技術者が協力しながら公開された場の中で開発が進められている。
PostgreSQL のバージョン
◇ リリース サイクル
- メジャー バージョン : 約1年
- マイナー バージョン : 約3ヶ月
◇ サポート期間
- 5年間 (メジャー バージョン)
◇ バージョン
- PostgreSQL 10 以降 : x.y (例: 11.8, 12.3)
「x」: メジャーバージョン、「y」: マイナーバージョン
- PostgreSQL 9.6 以前 : x.y.z (例: 9.5.22, 9.6.18)
「x.y」: メジャーバージョン、「z」: マイナーバージョン
[補足]
マイナーバージョンのリリースでは、再現頻度の高い製品不具合の改修、セキュリティに関する問題の改修 などの修正が行われ、新機能の追加などはメジャー バージョンで追加されています。
詳細な改修情報については、PostgreSQL のリリースノートを参照します。
PostgreSQL の アーキテクチャ 1
PostgreSQL のアーキテクチャ図を以下に記載します。
クライアント から PostgreSQL への接続は、以下の流れで行われます。
- postgres マスタープロセス (postmaster) に接続要求を実施。
- postgres マスタープロセスは、新しいプロセス (postgres プロセス) を開始。
- クライアント (アプリケーション) - postgres プロセス 間で接続が確立。
※ postgres プロセスはセッション単位で作成されます。
[補足]
Windows 上に PostgreSQL をインストールした場合、接続を確立すると以下のように 「postgres.exe」が増えていきます。
PostgreSQL の主要プロセスを SQL Server、Oracle プロセスと対比する形でまとめてみようと思います。
◇ PostgreSQLの主要プロセス (SQL Server/Oracle 比較)
※ SQL Server は「sqlservr」プロセスのみであり、システム スレッドにより「lazy writer」、「log writer」、「checkpoint」などのシステム処理を実施。
PostgreSQL の主要プロセスの役割についてもまとめてみようと思います。
◇ PostgreSQLの主要プロセス説明
[まとめ]
PostgreSQL (オンプレミス) のアーキテクチャを理解することで、より Azure Database for PostgreSQL サービスを理解できるようになるのではないかと思います。
次回、PostgreSQLのファイルシステム、メモリアーキテクチャ、追記型アーキテクチャに関する内容についてまとめてみようと思います。
【第2回】基本から始める Azure Database for PostgreSQL 【PostgreSQL アーキテクチャ 2】へ
※ 2022年7月現在