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