TOP比較データ> PostgreSQLのプロセス構造




アーキテクチャ比較
徹底比較!! Oracle & PostgreSQL


第2回:アーキテクチャ比較  プロセス構造の違い

著者:ミラクル・リナックス  高橋 強   2004/11/24
1   2  次のページ
アーキテクチャの違いを知ること

  アーキテクチャの違いを知ることは、ソフトウェアを選択する際に重要なことです。アーキテクチャの違いを知ることで、そのソフトウェアの開発思想や特性をイメージすることが出来、自ずとそれぞれのソフトウェアの適応領域が見えてくるのです。すでにどちらか一方のアーキテクチャをある程度理解されている方ならば、もう一方のアーキテクチャを理解することで、両者の違いを知る近道となることでしょう。

  限られた時間・スペースで、アーキテクチャについて全てを説明することは難しいので、プロセス構造、ファイル構造の二つの面から基本構造の違いを説明していきます。そこで基盤となる両者の差が少し見えてくるはずです。第2回となる今回では、プロセス構造の違いについて解説し、次回の第3回でファイル構造の違いについて解説します。


PostgreSQLのプロセス構造

  図1はPostgreSQLのプロセス構造を表したものです。PostgreSQLはクライアント・サーバ型のデータベース管理システムです。アプリケーションが動作する「フロントエンド」とデーモンらが動作・存在する「バックエンド」とが独立しています。(もちろん、同じサーバ上でもかまいません。)

  フロントエンドとバックエンドの間には論理的なネットワークの境界線が引かれていて、クライアントとサーバが独立して存在できる事を示しています。

  フロントエンドでは、クライアントとなるアプリケーション・プログラムが起動され、バックエンドのサーバに接続して問い合わせを発行します。サーバは受け取った問い合わせを実行し、結果をクライアント側に返します。

PostgreSQLのプロセスとメモリ構造と物理ファイルの関連図
図1.PostgreSQLのプロセスとメモリ構造と物理ファイルの関連図

起動してからの動作

  次に、PostgreSQLを起動してフロントエンドから問い合わせを実行するまでを説明します。最初にpostmasterというデーモン・プロセスを起動します。同時にデータをキャッシュする為の共有メモリバッファと呼ばれる領域を共有メモリ上に確保します。postmasterプロセスは、サーバ上でTCP/IPのポート(デフォルトでは 5432)をListenして、フロントエンドからの接続要求に待機します。

  ユーザはpsqlなどのクライアント・アプリケーションを起動して、サーバ側のpostmasterプロセスに対して接続要求を発行します。

  postmasterは要求に対して認証し、受け入れた場合は、新しいバックエンド・プロセスであるpostgresを生成します。この後、postmasterは介在せずに、フロントエンドのpsqlとバックエンドのpostgresが直接通信を行います。このpostgresはpostmasterのシンボリック・リンクで実体は同じコードを共有しています。

  ここまでが一つの接続要求を処理する流れであり、その後postmasterプロセスはまた他のフロントエンドからの接続要求待ち状態となります。

  クライアント側で起動されるpsqlなどのプロセス(フロントエンド)とバックエンド・プロセスpostgres は一対一で対応します。同時接続数が20あれば、サーバ側ではバックエンド・プロセスも20(さらに1つのpostmasteプロセスが)起動された状態になります。このプロセス間で使用されるプロトコルは、libpqプロトコルと呼ばれます。


1   2  次のページ


ミラクル・リナックス
著者プロフィール
ミラクル・リナックス株式会社  高橋 強
1993年某SIベンダへ入社後、Oracle、DB関連のコンサルティング、チューニング、社内案件の技術支援などを10年ほど担当。2004年ミラクル・リナックス株式会社へ入社。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。

INDEX
第2回:アーキテクチャ比較  プロセス構造の違い
PostgreSQLのプロセス構造
  Oracleのプロセス構造
徹底比較!! Oracle & PostgreSQL
第1回 データベースソフトウェアの選択基準とは
第2回 アーキテクチャ比較  プロセス構造の違い
第3回 アーキテクチャ比較  ファイル構造の違い PostgreSQLの特徴
第4回 PostgreSQLの適用範囲を考える 〜 機能比較
第5回 PostgreSQLの適用範囲を考える 〜 データ登録のパフォーマンス
第6回 PostgreSQLの適用範囲を考える 〜 データ検索のパフォーマンス
第7回 PostgreSQLの適用範囲を考える 〜 更新・削除のパフォーマンス
第8回 PostgreSQLの適用範囲を考える 〜 ベンチマークテスト
第9回 PostgreSQLの適用範囲を考える 〜 管理・運用編
商用&OSSデータベースの現状と今後
第1回 シェアの差はそのままデータベースの実力の差か?〜RDBMS各々のメリットとデメリット比較〜
第2回 止まらない安心&止まっても安心?〜有名ブランドだけが可用性を保証できるのか?
第3回 1台なら大丈夫。つないでいっても大丈夫?〜OSSのスケーラビリティの実際
第4回 商用 vs. OSSの単純な機能比較では話にならない 〜 データベースのセキュリティを考える
第5回 ホントにつながる?商用とOSSの異種データベース接続を見てみよう
第6回 「バックアップとは何か」から見た、商用 vs OSSデータベースの違いとは?
第7回 ラクする?こだわる?データベースのパフォーマンスチューニング