ロック(Postgres)
テーブル、行に対しての明示的なLOCKコマンドを使用する。
行単位のロックSELECT FOR UPDATE or SELECT FOR SHSARE
ロックモードに関して
勧告的ロック
アプリケーション固有の排他制御を行う
同時実行制御
追記型アーキテクチャを採用しているのでデータの更新時に、元データを更新するのではなく、更新前データはそのままに更新後のデータを追記する(バキュームによって再利用可能な領域とする)
トランザクションを識別するためにトランザクションID(XID)を付与し、テーブルデータの各行にXIDを保持している(参照するトランザクションが存在しなくなると不要領域として扱われる)
バキューム処理が運用上の課題になっていた。(Heap Only Tupleや自動バキュームの強化)
めも