SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
45分でわかる
             PostgreSQLの仕組み

                   2012/10/17
               SRA OSS, Inc. Japan
                     山田 努
              tsutomu@sraoss.co.jp

2012/10/17    Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   1
序:目次
   各サーバプロセス
   クライアント/サーバ通信
   データ格納、ストレージ上の記録方式
   SQL実行
   トランザクション処理
   トランザクションログとリカバリ、レプリケーション



2012/10/17   Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   2
プロセス構成
 postmaterがメイン
 常駐支援プロセス
      一部設定に依存                 postmaster
                                                                                    postgres
 接続要求に応じて                       startup
                                                                                    postgres
  子プロセスを起動                     writer        wal writer           checkpointer


                               archiver           stats collector        logger
                               wal receiver                                       wal sender
                               autovacuum launcher                       autovacuum worker

2012/10/17   Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.                    3
各プロセスの役割
 プロセス
 postmaster            PostgreSQLの親プロセス。接続を待ち受けるプロセス。
 postgres              個々のクライアントの要求を処理するプロセス。
 writer                共有バッファをディスクに書き出すプロセス。
 wal writer            WAL書き込みを行うプロセス。
 checkpointer          CHECKPOINT処理を行うプロセス。(9.2)
 archiver              WALログをアーカイブするプロセス。
 logger                PostgreSQLのログをファイルへ書き出すプロセス。
 stats collector       統計情報を収集するプロセス。
 autovacuum launcher   不要領域を監視するプロセス。
 autovacuum worker     自動VACUUMを実行するプロセス。複数起動することがある。
 wal sender            WALをスタンバイサーバへ転送するプロセス。
 wal receiver          WALをマスターサーバから受信するプロセス。
プロセス間通信
 signalによる通知(INT,TERM,USR1)
      Windows版はEvent を使う
      latch (9.1~) pipeを使ってsignalを捉える仕組み
 SysV IPC
      共有メモリ
      セマフォ
 localhost udp
      statistic collecter


2012/10/17         Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   5
クライアント/サーバ
 ソケット通信(tcp/stream)
      unix domain
      IPv4,v6
 接続要求を受けてから fork() する
      ユーザ認証は、子プロセス側で行なわれる
      pg_hba.conf




2012/10/17      Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   6
通信プロトコル
 プロトコルバージョン3.0
 認証
 キャンセルキー
      別の接続経路を使って、中止依頼を送信する
 簡易問い合わせ、SQL文字列で送信
 拡張問い合わせ、PREPAREとEXECUTE
      parse/bind/excute
 notice バックエンドからの通知

2012/10/17      Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   7
データベースクラスタ
 データベースクラスタ
      ファイルシステムに記録されるデータ一式
              initdbコマンドで作成される
      プロセスの集合体
              postmasterプロセス他 (前述)
 データベースクラスタで共有される情報
      ロール、データベース
      global/ ディレクトリ = pg_globalテーブルスペース



2012/10/17            Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   8
プロセスとデータベースクラスタ
                    データベースクラスタ
  initdb     生成
 コマンド
                                             テンプレート
                  template0     template1    データベース
postmaster
 プロセス

             対応       userdb1      userdb2    postgres
 postgres
 プロセス                                        データベース
             対応
 postgres         postgres user1    user2 ロール
 プロセス
データ格納
 ファイルシステム上の1ディレクトリ
      ディレクトリ構成
              global/
                   pg_control …
                base/数字(データベース)/数字(リレーション)
                pg_clog/
                pg_xlog/16進数24桁(トランザクションログ)
                pg_tblspc/シンボリックリンク(テーブルスペース)
                *.conf (設定ファイル)



2012/10/17                Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   10
テーブルデータ
 リレーション単位(テーブル、インデックス)
      pg_class.relfilenode, oidで管理
              pg_filenode.map, pg_relation_filenode()
      1ファイル 1GBに分割
      TOAST (The Oversized-Attribute Storage
       Technique)
 _fsm (Free Space Map),_vm (Visibility Map)
      タプルが見える = 有効である = VACUUM不要
      index only scanでも利用

2012/10/17              Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   11
ブロック構造
 タプル(行)データはブロック単位で管理
         テーブルファイル
                                              ctid = (1, 1)
                                                pd_linp[0]            ctid = (1, 2)         ctid = (1, 3)
   8kB       0ページ                  PageHeaderData                          pd_linp[1]            pd_linp[2]
                                pd_linp[3]           …                           pd_linp[n]
   8kB       1ページ           ctid = (1, 4)                                   ctid = (1, n + 1)

                                                                                         pd_lower
   8kB       2ページ                                            フリースペース
                                                             フリースペース

                                                     pd_upper
              …
                                                                              タプルn                 …
                                タプル3                 タプル2                  タプル1                 特殊データ
   8kB       nページ
             nページ
                                                                   pd_special
      ページサイズは最大32kB


2012/10/17            Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.                               12
VACUUM
 追記型アーキテクチャ
   世代管理
   トランザクションID周回問題
 不要領域の回収
 HOT (Heap Only Tuple)
   更新内容を同じページ内に記録してリンクを作る。インデッ
    クスの更新を不要にする。適時不要領域の回収が可能。
   fill factor
SQL実行処理
 parse
      prepare/bind
 rewrite
 planner/optimizer
 executer




2012/10/17       Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   14
パース、リライト
 パースツリー
   デバックログ
     debug_print_parse / debug_print_rewritten /
      debug_print_plan
 SQLの書き換え(rewrite)
   pg_rules (pg_rewrite)
   pg_views
最適化処理
 optimizer
      ルールによるクエリ書き換え
      FROM JOINの組合せ、順序
 コスト計算
      スキャン方法の選択
      ANALYZEによる統計情報
 ヒント句はない
      設定パラメータの影響も少ない


2012/10/17    Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   16
executor
 プランに従って、データの参照・更新を行なう
 共有バッファの管理




                ページ
  エグゼキュータ
                       対応する   ブロック
                       ページが
                       既にあれば
            共有バッファメ    ブロックは テーブルファイル
  クライアント    モリ         読まない
データ書き込み
 更新はトランザクションログと共有バッファに行なう

          エグゼキュータ
           データ変更
                                     非同期書き込み
   変更01
             (1)   (2)               クラッシュしたら
   変更02                       ページ    トランザクションログ
   変更03                              から復旧
                                                  ブロック


トランザクションログ               共有バッファメモリ
(pg_xlog)
トランザクション隔離と同時実行
 MVCC (MultiVersion Concurrency Control)
  多版型同時実行制御
 追記型
      トランザクションIDを使った管理
 タプルは特殊なカラムを持っている
      xmin,xmax,cmin,cmax
      作られた時、消された時、その操作をしたトランザクション
              コマンドID (ex) CURSOR FETCHで見えるか見えないか



2012/10/17           Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   19
コミットログ
 pg_clog/
   トランザクションの状態
   実行中 / COMMITED / ABORTED

 参考文献
   Mvcc Unmasked - Bruce Momjian
     January, 2012
     http://momjian.us/main/writings/pgsql/mvcc.pdf
トランザクションログ
 pg_xlog/
 WAL (write ahead log)
      何を実行したかの記録
              バッファに対する変更内容を記録
              XLogInsert()
      確実に記録するために同期書き込み
              複数の実行バックエンドのための処理が入る
              共有バッファの更新前に処理される(共有バッファの同期は後述)




2012/10/17         Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   21
リカバリ
 recoveryモード
      プログラム起動時の初期処理
 WALファイルを元に再実行(replay)
      standbyモードやreplicationは、常時リカバリ状態になっ
       ている




2012/10/17    Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   22
同期処理
 共有バッファの更新内容をディスクへ書き込む
 checkpoint
      過去のトランザクションログが不要になる
              WALのリサイクル
              WALが不足すると強制checkpoint
              最後のcheckpoint以降の更新がクラッシュリカバリに必要
 共有バッファが不足した時は随時書き出す
 バックグラウンド書き込み
      writerプロセス

2012/10/17          Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   23
レプリケーション
 streaming replication
      ネットワーク経由でWALを受信
      非同期・同期

 詳しくは、別のところで…




2012/10/17   Copyright © 2012 SRA OSS, Inc. Japan All rights reserved.   24
終り
 各項目についての解説は他にも色々とありますので
  、探してみて下さい。
 他データベースでの各処理の仕組みと比較するのも
  良いだろう。


     ご静聴ありがとうございました。

Mais conteúdo relacionado

Mais procurados

CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...NTT DATA Technology & Innovation
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性Ohyama Masanori
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...NTT DATA Technology & Innovation
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)Uptime Technologies LLC (JP)
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)NTT DATA Technology & Innovation
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)NTT DATA Technology & Innovation
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 

Mais procurados (20)

CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
 
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題
 
使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 

Semelhante a C16 45分でわかるPostgreSQLの仕組み by 山田努

プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009Ryota Watabe
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説Shoken Fujisaki
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門Daiyu Hatakeyama
 
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web serviceYAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web serviceKazuho Oku
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)Uptime Technologies LLC (JP)
 
プロとしてのOracleアーキテクチャ入門 ~番外編~
プロとしてのOracleアーキテクチャ入門 ~番外編~プロとしてのOracleアーキテクチャ入門 ~番外編~
プロとしてのOracleアーキテクチャ入門 ~番外編~ryouta watabe
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3openrtm
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用についてLINE Corporation
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理junichi anno
 
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史Insight Technology, Inc.
 
Kyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseKyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseMikio Hirabayashi
 
20101018 JJUG CCC10 WindowsAzure
20101018 JJUG CCC10 WindowsAzure20101018 JJUG CCC10 WindowsAzure
20101018 JJUG CCC10 WindowsAzureShinichiro Isago
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成弘毅 露崎
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)Kosuke Kida
 

Semelhante a C16 45分でわかるPostgreSQLの仕組み by 山田努 (20)

PostgreSQLバックアップの基本
PostgreSQLバックアップの基本PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
 
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web serviceYAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
 
プロとしてのOracleアーキテクチャ入門 ~番外編~
プロとしてのOracleアーキテクチャ入門 ~番外編~プロとしてのOracleアーキテクチャ入門 ~番外編~
プロとしてのOracleアーキテクチャ入門 ~番外編~
 
PostgreSQL安定運用のコツ2009 @hbstudy#5
PostgreSQL安定運用のコツ2009 @hbstudy#5PostgreSQL安定運用のコツ2009 @hbstudy#5
PostgreSQL安定運用のコツ2009 @hbstudy#5
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
 
Kyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseKyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in Japanese
 
Nginx
NginxNginx
Nginx
 
20101018 JJUG CCC10 WindowsAzure
20101018 JJUG CCC10 WindowsAzure20101018 JJUG CCC10 WindowsAzure
20101018 JJUG CCC10 WindowsAzure
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
 

Mais de Insight Technology, Inc.

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Insight Technology, Inc.
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明するInsight Technology, Inc.
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーンInsight Technology, Inc.
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとInsight Technology, Inc.
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームInsight Technology, Inc.
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門Insight Technology, Inc.
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 Insight Technology, Inc.
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也Insight Technology, Inc.
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー Insight Technology, Inc.
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?Insight Technology, Inc.
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Insight Technology, Inc.
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?Insight Technology, Inc.
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...Insight Technology, Inc.
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 Insight Technology, Inc.
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Insight Technology, Inc.
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]Insight Technology, Inc.
 

Mais de Insight Technology, Inc. (20)

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
Docker and the Oracle Database
Docker and the Oracle DatabaseDocker and the Oracle Database
Docker and the Oracle Database
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォーム
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
 
Lunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL ServicesLunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL Services
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
 

Último

情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 

Último (12)

情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 

C16 45分でわかるPostgreSQLの仕組み by 山田努

  • 1. 45分でわかる PostgreSQLの仕組み 2012/10/17 SRA OSS, Inc. Japan 山田 努 tsutomu@sraoss.co.jp 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 1
  • 2. 序:目次  各サーバプロセス  クライアント/サーバ通信  データ格納、ストレージ上の記録方式  SQL実行  トランザクション処理  トランザクションログとリカバリ、レプリケーション 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 2
  • 3. プロセス構成  postmaterがメイン  常駐支援プロセス  一部設定に依存 postmaster postgres  接続要求に応じて startup postgres 子プロセスを起動 writer wal writer checkpointer archiver stats collector logger wal receiver wal sender autovacuum launcher autovacuum worker 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 3
  • 4. 各プロセスの役割  プロセス postmaster PostgreSQLの親プロセス。接続を待ち受けるプロセス。 postgres 個々のクライアントの要求を処理するプロセス。 writer 共有バッファをディスクに書き出すプロセス。 wal writer WAL書き込みを行うプロセス。 checkpointer CHECKPOINT処理を行うプロセス。(9.2) archiver WALログをアーカイブするプロセス。 logger PostgreSQLのログをファイルへ書き出すプロセス。 stats collector 統計情報を収集するプロセス。 autovacuum launcher 不要領域を監視するプロセス。 autovacuum worker 自動VACUUMを実行するプロセス。複数起動することがある。 wal sender WALをスタンバイサーバへ転送するプロセス。 wal receiver WALをマスターサーバから受信するプロセス。
  • 5. プロセス間通信  signalによる通知(INT,TERM,USR1)  Windows版はEvent を使う  latch (9.1~) pipeを使ってsignalを捉える仕組み  SysV IPC  共有メモリ  セマフォ  localhost udp  statistic collecter 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 5
  • 6. クライアント/サーバ  ソケット通信(tcp/stream)  unix domain  IPv4,v6  接続要求を受けてから fork() する  ユーザ認証は、子プロセス側で行なわれる  pg_hba.conf 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 6
  • 7. 通信プロトコル  プロトコルバージョン3.0  認証  キャンセルキー  別の接続経路を使って、中止依頼を送信する  簡易問い合わせ、SQL文字列で送信  拡張問い合わせ、PREPAREとEXECUTE  parse/bind/excute  notice バックエンドからの通知 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 7
  • 8. データベースクラスタ  データベースクラスタ  ファイルシステムに記録されるデータ一式  initdbコマンドで作成される  プロセスの集合体  postmasterプロセス他 (前述)  データベースクラスタで共有される情報  ロール、データベース  global/ ディレクトリ = pg_globalテーブルスペース 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 8
  • 9. プロセスとデータベースクラスタ データベースクラスタ initdb 生成 コマンド テンプレート template0 template1 データベース postmaster プロセス 対応 userdb1 userdb2 postgres postgres プロセス データベース 対応 postgres postgres user1 user2 ロール プロセス
  • 10. データ格納  ファイルシステム上の1ディレクトリ  ディレクトリ構成  global/  pg_control …  base/数字(データベース)/数字(リレーション)  pg_clog/  pg_xlog/16進数24桁(トランザクションログ)  pg_tblspc/シンボリックリンク(テーブルスペース)  *.conf (設定ファイル) 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 10
  • 11. テーブルデータ  リレーション単位(テーブル、インデックス)  pg_class.relfilenode, oidで管理  pg_filenode.map, pg_relation_filenode()  1ファイル 1GBに分割  TOAST (The Oversized-Attribute Storage Technique)  _fsm (Free Space Map),_vm (Visibility Map)  タプルが見える = 有効である = VACUUM不要  index only scanでも利用 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 11
  • 12. ブロック構造  タプル(行)データはブロック単位で管理 テーブルファイル ctid = (1, 1) pd_linp[0] ctid = (1, 2) ctid = (1, 3) 8kB 0ページ PageHeaderData pd_linp[1] pd_linp[2] pd_linp[3] … pd_linp[n] 8kB 1ページ ctid = (1, 4) ctid = (1, n + 1) pd_lower 8kB 2ページ フリースペース フリースペース pd_upper … タプルn … タプル3 タプル2 タプル1 特殊データ 8kB nページ nページ pd_special ページサイズは最大32kB 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 12
  • 13. VACUUM  追記型アーキテクチャ  世代管理  トランザクションID周回問題  不要領域の回収  HOT (Heap Only Tuple)  更新内容を同じページ内に記録してリンクを作る。インデッ クスの更新を不要にする。適時不要領域の回収が可能。  fill factor
  • 14. SQL実行処理  parse  prepare/bind  rewrite  planner/optimizer  executer 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 14
  • 15. パース、リライト  パースツリー  デバックログ  debug_print_parse / debug_print_rewritten / debug_print_plan  SQLの書き換え(rewrite)  pg_rules (pg_rewrite)  pg_views
  • 16. 最適化処理  optimizer  ルールによるクエリ書き換え  FROM JOINの組合せ、順序  コスト計算  スキャン方法の選択  ANALYZEによる統計情報  ヒント句はない  設定パラメータの影響も少ない 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 16
  • 17. executor  プランに従って、データの参照・更新を行なう  共有バッファの管理 ページ エグゼキュータ 対応する ブロック ページが 既にあれば 共有バッファメ ブロックは テーブルファイル クライアント モリ 読まない
  • 18. データ書き込み  更新はトランザクションログと共有バッファに行なう エグゼキュータ データ変更 非同期書き込み 変更01 (1) (2) クラッシュしたら 変更02 ページ トランザクションログ 変更03 から復旧 ブロック トランザクションログ 共有バッファメモリ (pg_xlog)
  • 19. トランザクション隔離と同時実行  MVCC (MultiVersion Concurrency Control) 多版型同時実行制御  追記型  トランザクションIDを使った管理  タプルは特殊なカラムを持っている  xmin,xmax,cmin,cmax  作られた時、消された時、その操作をしたトランザクション  コマンドID (ex) CURSOR FETCHで見えるか見えないか 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 19
  • 20. コミットログ  pg_clog/  トランザクションの状態  実行中 / COMMITED / ABORTED  参考文献  Mvcc Unmasked - Bruce Momjian  January, 2012  http://momjian.us/main/writings/pgsql/mvcc.pdf
  • 21. トランザクションログ  pg_xlog/  WAL (write ahead log)  何を実行したかの記録  バッファに対する変更内容を記録  XLogInsert()  確実に記録するために同期書き込み  複数の実行バックエンドのための処理が入る  共有バッファの更新前に処理される(共有バッファの同期は後述) 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 21
  • 22. リカバリ  recoveryモード  プログラム起動時の初期処理  WALファイルを元に再実行(replay)  standbyモードやreplicationは、常時リカバリ状態になっ ている 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 22
  • 23. 同期処理  共有バッファの更新内容をディスクへ書き込む  checkpoint  過去のトランザクションログが不要になる  WALのリサイクル  WALが不足すると強制checkpoint  最後のcheckpoint以降の更新がクラッシュリカバリに必要  共有バッファが不足した時は随時書き出す  バックグラウンド書き込み  writerプロセス 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 23
  • 24. レプリケーション  streaming replication  ネットワーク経由でWALを受信  非同期・同期  詳しくは、別のところで… 2012/10/17 Copyright © 2012 SRA OSS, Inc. Japan All rights reserved. 24
  • 25. 終り  各項目についての解説は他にも色々とありますので 、探してみて下さい。  他データベースでの各処理の仕組みと比較するのも 良いだろう。 ご静聴ありがとうございました。