[pgsql-jp: 35695] Re: vacuum 時のCLOGファイルへの影響について

Katsuhiko Okano k_okano @ po.ntts.co.jp
2005年 7月 7日 (木) 18:12:23 JST


岡野です。

------- Reply Message

> > > 実験すれば分かりますが、pg_clogのファイル(256KB固定サイズで、数は増えま
> > > すが大きくなったりしません)は、vacuum時に不要なものはちゃんと削除されま
> > > す。
> > 
> > おっしゃるとおり、まずは自分で実験してみるべきでした。
> > バージョン8.0.3でやってみたところ、百万トランザクションでは
> > VACUUM FULLをしても小さくなりませんでした。
> > (0000というファイルのサイズが増えてファイル数は1ファイルのままでした)
> 
> 各ファイルは最大256KBで、かつ1トランザクション2bitなので、100万程度では
> 、そもそもファイル分割が起こるまで発生していないので、まだ切り捨てはない
> ですね。その0000ファイルがさらに複数個増え、そのうちのふるいファイルがも
> う参照されないと判断された時点でファイル自体が取り除かれます。

256KB = 256*1024バイト = 262144バイト
 = 262144*8ビット= 2097152ビット
これを2で割ると、1048576個のトランザクションの状態が1ファイルに入る。
と理解しました。

今回実験したDBをstopしてstartした時のメッセージを確認したところ、
> LOG:  next transaction ID: 1001551; next OID: 2021708
と、まだファイル分割されない範囲でした。


#何の制限で256KBなのかは理解できていません。
#関連ドキュメントをご存知でしたら教えていただければ幸いです。


> pg_xlogやpg_clogに入っているファイルはトランザクションログのたぐいですの
> で、いわゆるテーブルやインデックスの取り扱いとは全く異なる仕組みになって
> います。

了解です。後でちょっとソースをあたってみます。


----------------------------------------
Katsuhiko Okano
k_okano at po.ntts.co.jp
NTT Sofrware Corp. (division "NBRO-PT4")



pgsql-jp メーリングリストの案内