[pgsql-jp: 40249] Re: トランザクション ID の最大値
Takahiro Itagaki
itagaki.takahiro @ oss.ntt.co.jp
2010年 4月 5日 (月) 12:35:36 JST
tanaka <tanaka_hideo @ yahoo.co.jp> wrote:
すでに内部実装の話になっているので、そういったことに興味があれば
ぜひソースコードを読んでみてください。最新のコードであれば、
vacuum_freeze_min_age, xid_age, txid_current, GetNewTransactionId
あたりが grep するときのキーワードになるでしょう。8.2 だとハードコーディングが
残っていたりと若干違いますが、コード中の該当箇所は、概ね同じです。
> 1. VACCUMを実行すると、現在のXIDから、
> どれくらい前から、凍結されるのでしょうか?
>
> 2. そして、それは、どれくらい量 凍結されるのでしょうか?
> (例えば、現在のXIDが20億だったとして、10億前から、10億分
> 凍結されるのでしょうか?)
>
> 3. age(datfrozenxid) で表示される値は、
> 現在のXIDが20億として、凍結されているXIDが13億より前からだとしら、
> 7億(20-13)と表示されるという事でしょうか?
>
> 4. 現在のXIDは、xmax で知ることができるという理解でよいでしょうか?
>
> 5.XIDは、postgres内で唯一の番号が付くのでしょうか?
> postgresの中にテーブルやデータベースが複数存在する時に、
> 最大のXIDを。すべての中で、最大のXIDを表示する方法はあるでしょうか?
> (それとも、XIDは、テーブル内、又は データベース内 で、それぞれ番号
> が付くのでしょうか?)
------------------------------------------------------------
NTT オープンソース ソフトウェア センタ
板垣貴裕 <itagaki.takahiro @ oss.ntt.co.jp>
pgsql-jp メーリングリストの案内