バージョンごとのドキュメント一覧

1.2. 構造的な基本事項 #

<title>Architectural Fundamentals</title>

Before we proceed, you should understand the basic <productname>PostgreSQL</productname> system architecture. Understanding how the parts of <productname>PostgreSQL</productname> interact will make this chapter somewhat clearer. 先に進む前に、PostgreSQLシステム構成の基礎を理解すべきです。 PostgreSQLの各部分がどのように相互作用しているかを理解することにより、本章の内容がわかりやすくなります。

In database jargon, <productname>PostgreSQL</productname> uses a client/server model. A <productname>PostgreSQL</productname> session consists of the following cooperating processes (programs): データベースの用語で言うと、PostgreSQLはクライアント/サーバモデルを使用しています。 PostgreSQLのセッションは以下の協調動作するプロセス(プログラム)から構成されます。

As is typical of client/server applications, the client and the server can be on different hosts. In that case they communicate over a TCP/IP network connection. You should keep this in mind, because the files that can be accessed on a client machine might not be accessible (or might only be accessible using a different file name) on the database server machine. クライアント/サーバアプリケーションでは典型的なことですが、クライアントとサーバはホストが異なっても構いません。 その場合、クライアントとサーバはTCP/IPネットワーク接続経由で通信を行います。 このことには注意してください。 なぜなら、クライアントマシンからアクセスできるファイルは、データベースサーバマシンではアクセスできない(または、異なるファイル名でアクセスできるだけである)可能性があるからです。

The <productname>PostgreSQL</productname> server can handle multiple concurrent connections from clients. To achieve this it starts (<quote>forks</quote>) a new process for each connection. From that point on, the client and the new server process communicate without intervention by the original <filename>postgres</filename> process. Thus, the supervisor server process is always running, waiting for client connections, whereas client and associated server processes come and go. (All of this is of course invisible to the user. We only mention it here for completeness.) PostgreSQLサーバはクライアントから複数の同時接続を取り扱うことができます。 これを達成するため、サーバは接続ごとに新しいプロセスを開始(fork)します。 その時点から、クライアントと新しいサーバプロセスは元のpostgresプロセスによる干渉がない状態で通信を行います。 こうして、スーパーバイザサーバプロセスは常に稼働してクライアントからの接続を待ち続け、一方で、クライアントからの接続と関連するサーバプロセスの起動が行われます。 (もちろんこれは全てユーザからはわかりません。完全性を目的として説明しているだけのことです。)