[pgcluster: 523] Re: ロック取得の障害について

Mana Takebe takebemana @ yahoo.co.jp
2004年 9月 1日 (水) 15:19:12 JST


三谷様

武部です。ご返答ありがとうございます。
最新版を確認させていただきます。

参考までにお問合せの内容に回答させていただきます。

> 具体的には同時接続10ユーザーで、登録、更新のクエリーを
> >
> 12時間投げつづける、というようなことを行っています。
> >
> 開始3時間弱くらいで以下のようなエラーが起こりはじめ
> > (Host2のログ参照)
> > レプリケーションが行われなくなります。
> このテストでは,同時接続の10ユーザはセッションを切らず
に同一セッションで
> 12時間クエリーを送り続けていると考えてよろしいでしょう
か.

Webアプリからコネクションプールを使って接続していますの
で、
それと同様の状態になると思います。
 
> その場合,以下の2点について教えてください.
> (1)
> どのようなクエリーを,どのようなテーブルに送られていま
すか.
ここでテーブル定義の詳細やデータの内容の詳細を公開するの
は
控えたいと思いますが、決まったテーブルに、決まったクエリ
ーを投げたときにエラーが発生する、という感じではなく、INSERT
時、UPDATE時にランダムに発生しているように見えます。

登録・更新対象はいくつかありますが、
例えば以下のようなテーブルです。
また、更新時にトリガーで更新日付をセットしている
ものもあります。

CREATE SEQUENCE SEQ_LogID MINVALUE 0 MAXVALUE
9223372036854775807;
CREATE TABLE Log (
	LogID bigint NOT NULL DEFAULT NEXTVAL('SEQ_LogID'),
	LogLevel smallint NOT NULL CONSTRAINT
LogLevel_RANGE_CHECK CHECK (LogLevel >= -128 AND LogLevel
<= 127),
--中略--
	DateLogged timestamp NOT NULL
,CONSTRAINT PK_Log PRIMARY KEY (LogID)
) WITHOUT OIDS;


CREATE TABLE ELog (
	RequestID char(32) NOT NULL,
--中略--
	LogStatus smallint NOT NULL CONSTRAINT
LogStatus_RANGE_CHECK CHECK (LogStatus >= -128 AND
LogStatus <= 127),
	DateEntered timestamp NOT NULL DEFAULT current_timestamp
,CONSTRAINT PK_ELog PRIMARY KEY (RequestID)
) WITHOUT OIDS;

シーケンスの取得あたりが問題になって
いそうな気がします。・・

> (2)
> 登録・更新クエリーはどのくらいの頻度で(1分あたり何件
くらい)送信さ
> れ続けていますでしょうか.

登録・更新だけで1秒に10件程度送信されています。
1トランザクションで2〜3の登録・更新クエリーが
流れますのでトランザクション的は1秒に5程度かと思います
。
またこの登録・更新の間にSELECTも10件程度流れます。
 
======================================
Mana Takebe <takebemana @ yahoo.co.jp>




__________________________________________________
GANBARE! NIPPON!
Yahoo! JAPAN JOC OFFICIAL INTERNET PORTAL SITE
http://mail.ganbare-nippon.yahoo.co.jp/




pgcluster メーリングリストの案内