1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

読書感想文「内部構造から学ぶPostgreSQL設計運用計画の鉄則」アーキテクチャ部分のみ

Last updated at Posted at 2024-11-22

書籍名「内部構造から学ぶ POstgreSQL 設計運用計画の鉄則」 

改訂3版
上原一樹、勝俣智成、佐伯昌樹、原田登志
技術評論社

読もうと思った動機

仕事でDB設計パフォーマンスの計測をする機会があり、知識不足を実感したため
本書では内部構造、監視計画、監視運用が書かれており学ぶに良い本だと思ったため。

印象に残った部分

公式ドキュメントで関係ありそうな部分も提示しておきます。
バージョンは特に統一してません!

p38 サーバプロセス

正直あんま理解できなかったのですね。
せめて単語だけでも理解するよう努めます。

マスタサーバプロセス

PostgreSQLを制御するさまざまなプロセス(バックグランドプロセス)をforkして起動する親プロセス

fork プロセスを開始(fork)します。
https://www.postgresql.jp/document/8.1/html/tutorial-arch.html

接続の確立
https://www.postgresql.jp/docs/9.4/connect-estab.html

ライタ

共有バッファ内の更新されたページを、対応sるデータファイルのブロックに書き出すプロセス

20.4.5. バックグラウンドライタ
https://www.postgresql.jp/document/16/html/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-BACKGROUND-WRITER

WALライタ

WALライタプロセスは、WAL(Write Ahead Logging)をファイルに書き出すプロセスです。
WALはPostgresSQLの更新情報が記録されたログで、リカバリ時やストリーミングレプリケーションで使用される非常に重要な情報

チェックポインタ

チェックポイントを設定に従って自動的に実行するプロセスです。
チェックポイントは、PostgreSQLがクラッシュした時に、どの箇所からリカバリ処理を行うのか示すポイント

image.png

自動バキュームランチャと自動バキュームワーカ

自動バキュームを制御/実行するプロセスです。
自動バキュームランチャーが自動バキュームワーカを起動する

統計情報コレクタ

データベースの活動状況に関する統計情報を一定間隔で収集するプロセス。

p41 クライアントとサーバの接続 通信

問い合わせの実行

データベースからデータを取り出す処理、または、取り出すためのコマンドを問い合わせと言います。
https://www.postgresql.jp/document/8.0/html/queries.html

パーサ

字句解析、構文解析を実行する。

パーサー
https://www.postgresql.jp/docs/9.4/textsearch-parsers.html

一般的なパーサー
https://e-words.jp/w/%E3%83%91%E3%83%BC%E3%82%B5.html

字句解析

SQLがどういったトークン(構文の単位)から構成されるか解析すること

image.png

構文解析

字句解析で分解された字句の並びがPostgreSQLで扱えるSQLの記述規則に合っているかを検査して
問い合わせツリーを生成します。

image.png

リライタ

SQLを実行するデータベースにルール(SQLを書き換える規則)が定義されている場合、
そのルールを参照してリライタで問い合わせツリーを修正します。

プランナ

リライタで修正された問い合わせツリーを本に最適な実行計画を生成します。

image.png

エグゼキュータ

プランナで決定された実行計画に従って必要な行の集合を抽出します。
image.png

実践できること or 感想

感想

自分の知りたい情報は集まっており、勉強になった部分が多いです。
知らない単語が多かったのでその把握がメインでしたね。

監視、実行計画の部分も勉強になったので後で読書感想書きます。

実践できること

p6プロセス構成、p10のメモリ構成をplantumlで模写する。(配置図)

p41 クライアントとサーバーの接続、p43問い合わせの実行をplantumlで書く。(シーケンス図の予定)

参考

富士通 Postgresql アーキテクチャ
https://www.fujitsu.com/jp/products/software/resources/feature-stories/postgres/article-index/architecture-overview/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?