[pgpool-general-jp: 97] Re: VACUUM時のinsert_lockについて

Yoshiyuki Asaba y-asaba @ sraoss.co.jp
2007年 2月 21日 (水) 15:40:36 JST


浅羽です。

From: Tatsuo Ishii <ishii @ sraoss.co.jp>
Subject: [pgpool-general-jp: 95] Re: VACUUM時のinsert_lockについて
Date: Wed, 21 Feb 2007 15:26:40 +0900 (JST)

> > ただし、lock_hoge がないとエラーになってしまうので、このまま取りこむの
> > は難しいです。かなりの思いつきなのですが pgpool 内でセマフォ管理するよ
> > うにすればいけそうな気がしてきました。
> > 
> >   1. データベースとテーブル名をペアにしたキーを持つハッシュテーブルを
> >      用意
> >   2. INSERT 時にテーブル名を取得(現 pgpool でやっている)
> >   3. データベース名とデーブル名からハッシュテーブルを検索
> >   4. すでにセマフォがあれば semop() する
> >   5. なければセマフォを作って semop() する
> >   6. INSERT を実行
> >   7. semop() でロック解除
> > 
> > うーん、ちょっと大変そうです…。
> 
> それに,複数のWebサーバそれぞれにpgpoolを配置するような構成ではうまく
> いかないですよね...

はい、そうでした…。上の案は忘れてください。別の方法としては、

  CREATE TABLE hoge (...)

を pgpool が受けたら自動的に

  CREATE TABLE lock_hoge();

を実行するようにし、設定ファイルで insert_lock の挙動を切り替えられる
ようにできるという手もありかと思います。その場合には吉田さんが作成して
いただいたパッチを取り込ませていただきます。

--
Yoshiyuki Asaba
y-asaba @ sraoss.co.jp


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