[pgsql-jp: 26627] Re: トランザクション中の select文でエラーが発生した場合

Yasuo Ohgaki yohgaki @ ohgaki.net
2002年 7月 9日 (火) 16:24:29 JST


大垣です。

Tatsuo Ishii wrote:
> OIDカウンタのキャッシュの実体は共有メモリにあるので,バックエンドごと
> にキャッシュしているということはありません.もちろん,OIDを取得する際
> にロックは発生しますが.

失礼しました。シークエンスの場合とごちゃまぜになっていました。(汗

> また,コンカレントであろうとなかろうと,OIDが8192ごとにトランザクショ
> ンログが書かれるので,そっちの方が大きいのではないでしょうか.
> # see backend/access/transam/varsup.c

見てみました。8192毎のログを書くようになっていて、こちらが
大きなオーバーヘッドですね。CPUを沢山積んでいるSMPマシンの
ではログを書いている間のロック時間が長いようなので、同時実行
性を損ないそうですがあまり関係ないかも知れません。

8Kも新しいレコードを作っている間にディスクへの書き込みも何度
も発生するはずですから、本当にオーバーヘッドとして大きいかど
うかは?です。シングルCPUの場合はパフォーマンスにはほとんど
影響ないように思えます。

# OIDの有無を比較するベンチマークをとる場合、4way以上のSMP
# マシンでとってみないと面白くなさそうに思えます。

--
Yasuo Ohgaki





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