[pgpool-general-jp: 1122] Re: 一時テーブルに対するオンメモリクエリキャッシュについて

Hidenori Saitoh saitoh_hidenori_b1 @ lab.ntt.co.jp
2012年 11月 15日 (木) 17:34:13 JST


長田様
齋藤です。お世話になっております。

ご連絡ありがとうございます。

解決しました。
check_temp_table が off になっていました。
on にすることで、毎回問い合わせが DB に行くことが確認できました。

pgpool-II のユーザマニュアルには、check_temp_table とオンメモリ
クエリキャッシュの関連性が記載されていないようですので、
次回マニュアルの更新時に、ご配慮いただければと思います。

------
以下、確認したときに実行したSQLとログ出力内容
------
CREATE TEMP TABLE tmptbl(i int);
INSERT INTO tmptbl VALUES (1);
SELECT * FROM tmptbl where i = 1;
SELECT * FROM tmptbl where i = 1;

2012-11-15 16:46:42 LOG: pid 5254: DB node id: 0 backend pid: 5683
statement: CREATE TEMP TABLE tmptbl(i int);
2012-11-15 16:46:58 LOG: pid 5254: DB node id: 0 backend pid: 5683
statement: INSERT INTO tmptbl VALUES (1);
2012-11-15 16:47:32 LOG: pid 5254: DB node id: 0 backend pid: 5683
statement: SELECT * FROM tmptbl where i = 1;
2012-11-15 16:47:48 LOG: pid 5254: DB node id: 0 backend pid: 5683
statement: SELECT * FROM tmptbl where i = 1;
------

以上です。よろしくお願い致します。


(2012/11/15 11:13), Yugo Nagata wrote:
> 長田です。お世話になっております。
>
> 試してみたのですが、現象が再現出来ませんでした。
> いくつか確認させて下さい。
>
> 1. 同名のテーブル temp_cache_ok が存在してないか
> 通常のテーブルと一時テーブルは同名のものが併存できます。(スキーマが違うため)
> 一時テーブルと同名のテーブルがあり、そのキャッシュが残っていた場合に、
> そのキャッシュが読み出された可能性があります。
>
> 2. 再現性
> pgpoolに新しく接続して、提示いただいたクエリを実行した場合
> かならず同じ現象が起きますでしょうか?
> また生のログがありましたら送っていただけないでしょうか。
>
> 3. pgpool.conf の設定
> check_temp_table, white_memqcache_table_list の設定に変更はありますか?
> 可能ならば pgpool.conf を送っていただけないでしょうか。
>
> 以上、お願い致します。
>
> On Tue, 13 Nov 2012 14:08:52 +0900
> Hidenori Saitoh<saitoh_hidenori_b1 @ lab.ntt.co.jp>  wrote:
>
>> 齋藤です。お世話になっております。
>>
>> pgpool-II 3.2.1 のオンメモリクエリキャッシュ機能を利用しています。
>> pgpool-II ユーザマニュアルでは、「キャッシュが作成される場合と
>> 作成されない場合」に、次のときにはキャッシュされないと書かれています。
>>
>> ・一時テーブルを使っているSELECT
>>
>> しかし、一時テーブルに対するSELECTに対してもキャッシュが有効に
>> なってしまいました。
>>
>> 以下、確認した際に実行したクエリ内容とそのときの pgpool-II のログです。
>>
>> ● 実行したクエリ内容
>> CREATE TEMP TABLE temp_cache_ok (b INT);
>> INSERT INTO temp_cache_ok VALUES (12),(34),(56);
>> SELECT * FROM temp_cache_ok;
>> SELECT * FROM temp_cache_ok;
>> SELECT * FROM temp_cache_ok;
>>
>> ● pgpool-II のログ内容
>> DB node id: 0 backend pid: 26033 statement: CREATE TEMP TABLE temp_cache_ok (b INT);
>> DB node id: 0 backend pid: 26033 statement: SELECT * FROM temp_cache_ok;
>> query result fetched from cache. statement: SELECT * FROM temp_cache_ok;
>> query result fetched from cache. statement: SELECT * FROM temp_cache_ok;
>>
>>
>> 以上です。ご確認よろしくお願い致します。
>> _______________________________________________
>> pgpool-general-jp mailing list
>> pgpool-general-jp @ sraoss.jp
>> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
>
>



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