IT用語集 › データベース › MultiXact

MultiXact

データベース Svenska → 更新: 2026-10-23

複数のトランザクションが同じ行を同時にロックしたいときにPostgreSQLが使う仕組み。独自のカウンタを持ち、それが一周する可能性があり、たいてい歓迎されない話になる。

行には、それを削除またはロックしたトランザクションの識別子を入れる欄があるが、入るのは一つだけだ。外部キーのチェックのように、複数が同時に共有ロックを持つ場面ではこれでは足りない。そこで代わりにMultiXact IDが格納され、メンバー一覧を持つ別の構造を指す。実運用では二つの危険がある。第一に、カウンタは32ビットで、トランザクションIDとは独立したfreezeの期限があり、追いつけなければ同じくシャットダウンに至る。第二に、同じ被参照行へ高い並行負荷がかかると、この構造がボトルネックになり、存在を知らなければ原因の見当もつかない停滞が起きる。

← 用語集に戻る