[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 メーリングリストの案内