ぱと隊長日誌

ブログ運用もエンジニアとしての生き方も模索中

アーキテクチャ

PostgreSQL は "soft edge" によるデッドロックを回避することがある

PostgreSQL は "soft edge" があるときに、ロック取得順序を入れ替えてデッドロックの解消を試みます。

PostgreSQL インデックス肥大化とインデックスコストへの影響(再モデル化)

PostgreSQL インデックス肥大化によるインデックスコストへの影響をモデル化しました。また、実装の調査も行っています。

VS Code と GDB で PostgreSQL をデバッグする

VS Code + GDB でリモートデバッグする手順について PostgreSQL を題材に解説します。

VS Code Remote - SSH extension で Linux のリモートマシンに接続すると VS Code Server が自動でインストールされる

VS Code Remote - SSH extension は初回接続時に VS Code Server をリモートサーバのホームディレクトリにインストールしています。

Hyper-V の論理プロセッサにおけるコンテキストスイッチとパフォーマンスへの影響

Hyper-Vでは特定のワークロードで論理プロセッサのコンテキストスイッチが多発し、パフォーマンス低下を招くことがあるようです。

Hyper-V のルートスケジューラで他の VM の存在は仮想プロセッサのパフォーマンスにどれだけ影響するのか?

Hyper-V のルートスケジューラはラウンドロビン方式のスケジュールモデルです。また、仕事の無い VP に対してタイムスライスの割り当てはありません。

Hyper-V で論理プロセッサの利用状況は環境やワークロードに左右される

Hyper-V のゲストOS では VP と LP の対応が動的に変化します。また、LP の利用状況は環境やワークロードによって左右されます。

クライアントシステムでも Hyper-V のハイパーバイザースケジューラを変更できる

クライアントシステムでもハイパーバイザースケジューラの設定をすることは可能です。ただし、「ルートスケジューラ」のみ公式にサポートされる構成であることに注意が必要です。

Hyper-V のルートスケジューラでは複数 CPU 動作時に大きく性能劣化することがあるのかも

Windows 10 の Hyper-V でベンチマークを測定していると、複数 CPU 動作時に大きく性能劣化しました。これは「ルートスケジューラ」に原因があるのかもしれません。

Hyper-V で論理プロセッサと仮想プロセッサの対応は動的に変化する

Hyper-V で LP と VP の対応関係は動的です。この検証結果をまとめました。

PostgreSQL のボトルネック調査に待機イベントを活用する

PostgreSQL の pg_stat_activity ビューで待機イベントの情報を収集すると、ボトルネック調査に役立つかもしれません。

PostgreSQL の結合テーブル数と計画時間の関係

PostgreSQL の結合テーブル数と計画時間の関係を調べました。計画時間は join_collapse_limit, geqo_threshold といったパラメータの影響を受けることが分かりました。

PostgreSQL の join_collapse_limit がプランナに与える影響

PostgreSQL の join_collapse_limit がプランナに与える影響を実験から推測しました。平坦化の概念をつかむことができます。

PostgreSQL の deadlock_timeout を見直す優先度はどの程度か?

PostgreSQL のデッドロック検出待機時間パラメータである deadlock_timeout の見直しに、どれほどの優先度で取組むべきなのかを、デッドロック検出処理の仕組みの観点から調査しました。

DEIM2022 「近代的トランザクション処理技法」聴講メモ

DEIM2022 「近代的トランザクション処理技法」の聴講メモです。メモは口頭説明を中心にまとめています。資料を併せてご参照ください。

PostgreSQL の auto_explain のパフォーマンスへの影響

PostgreSQL の auto_explain モジュールを有効化することでパフォーマンスにどの程度影響を与えるのか、検証を行いました。

PostgreSQL の EXPLAIN コマンドの TIMING パラメータのオーバーヘッド

本記事では PostgreSQL の EXPLAIN コマンドの TIMING パラメータのオーバーヘッドがどこから生じているかを解説します。

デブサミ2020「【13-F-2】アプリケーションやシステムが悪い奴らに攻撃されたらどうなる?」聴講メモ

はじめに Developers Summit 2020 (Developers Summit 2020) アプリケーションやシステムが悪い奴らに攻撃されたらどうなる? スピーカー:松岡 正人 [日本シノプシス] の聴講メモです。Twitterのつぶやきがtogetterでまとめられています。併せてご参照くだ…

デブサミ2020「【13-E-5】Googleにおける「ソフトウェア×インフラ」デザイン~マイクロサービス・アーキテクトの視点から~」聴講メモ

はじめに Developers Summit 2020 (Developers Summit 2020) Googleにおける「ソフトウェア×インフラ」デザイン~マイクロサービス・アーキテクトの視点から~ スピーカー:中井 悦司 [グーグル・クラウド・ジャパン] の聴講メモです。Twitterのつぶやきがto…

NTTDATATC2019「PostgreSQL 12 は ここがスゴイ!」聴講メモ

はじめに NTTデータ テクノロジーカンファレンス 2019(NTTデータ テクノロジーカンファレンス 2019 ~ 未来を創る NTT DATA の確かな技術力 ~) 【テクノロジー】PostgreSQL 12 は ここがスゴイ!~性能改善や pluggable storage engine などの新機能を徹…

NTTDATATC2019「横浜銀行のマルチクラウド戦略とそれを支える「A-gate」」聴講メモ

はじめに NTTデータ テクノロジーカンファレンス 2019(NTTデータ テクノロジーカンファレンス 2019 ~ 未来を創る NTT DATA の確かな技術力 ~) 【事例】横浜銀行のマルチクラウド戦略とそれを支える「A-gate」 の聴講メモです。横浜銀行のA-gate採用はNTT…

DBTS2018「今後のDBのトランザクション処理のあり方について徹底討議する」パネラー参加記録

始めに db tech showcase Tokyo 2018 (db tech showcase Tokyo 2018 | db tech showcase) 今後のDBのトランザクション処理のあり方について徹底討議する ~"InvisibleWriteRule: トランザクションの書込み最適化" を中心に にパネラーとして参加してきました…

トランザクションをもっと深く知るための資料集

データベースを扱う方にとって、トランザクションは当たり前の存在です。そんな当たり前のものがどういった理論と技術で実現されているか、そしてそれらが今も進化していることをご存知でしょうか。トランザクションをもっと深く知りたい方に向けて、参考と…

PostgreSQLの一部の関数はトランザクション分離レベルに従わない

はじめに PostgreSQL 8.4.1 で pg_dump と index の再作成を同時に実行すると "ERROR: cache lookup failed for index" の発生することがあるのはなぜか?との質問に、tom lane さんがこんな回答をしていました。 pg_dump runs in a serializable transactio…

Bitmap Index Scan の後の Bitmap Heap Scan でRecheck処理が行われることの解説

PostgreSQL の実行計画において、Bitmap Index Scan の後に実行される Bitmap Heap Scan で "Recheck cond" と出力されます。Index Scan をしているにも関わらず、なぜ Heap Scan でインデックスの検索条件を再チェックする必要があるのか解説します。

PostgreSQLの実行計画の実行順とコスト・実行時間の累積

はじめに PostgreSQLの実行計画の読み解き方は公式マニュアルで説明されています。PostgreSQL 10 でのリンクを示します。 14.1. EXPLAINの利用ですが、若干分かり辛い個所があるため、本エントリでは以下の観点に着目して補足することにします。 ノードの実…

ネストしたサブクエリにOR条件を含むSQLのパフォーマンスをPostgreSQLで改善する

はじめに ネストしたサブクエリ(副問合せ)はEXISTS条件でよく利用されます。ですが、このサブクエリのフィルタ条件次第ではパフォーマンス問題となることがあります。これを Oracle Database で改善する例がOracleの記事(以下、「記事」とだけ表記した場…

デブサミ2018「【16-C-3】Gitで安定マスターブランチを手に入れる」聴講メモ

はじめに Developers Summit 2018 (Developers Summit 2018) 【16-C-3】Gitで安定マスターブランチを手に入れる スピーカー:井上 誠一郎 さん [ワークスアプリケーションズ] / 三宅 泰裕 さん [ワークスアプリケーションズ]) の聴講メモです。メモは口頭…

デブサミ2018「【15-E-5】最新技術に挑戦し続けるLIFULL HOME'Sアプリの開発について」聴講メモ

はじめに Developers Summit 2018 (Developers Summit 2018) 【15-E-5】最新技術に挑戦し続けるLIFULL HOME'Sアプリの開発について スピーカー:高橋 庸介 さん [LIFULL] の聴講メモです。メモは口頭説明を中心にまとめています。資料を併せてご参照ください…

デブサミ2018「【15-C-4】多様なビジネスドメイン、サービスフェーズが混在する中での組織戦略と技術戦略」聴講メモ

はじめに Developers Summit 2018 (Developers Summit 2018) 【15-C-4】多様なビジネスドメイン、サービスフェーズが混在する中での組織戦略と技術戦略 スピーカー:宮川 典久 さん [リクルートテクノロジーズ] の聴講メモです。メモは口頭説明を中心にまと…