[Pgpool-hackers] Invalidating relcache
Tatsuo Ishii
ishii at sraoss.co.jp
Fri Jan 14 12:08:12 UTC 2011
>> Pgpool-II maintaines internal relation cache to caching the query
>> result against backend. The cache scope is per session i.e. existing
>> in pgpool child process. The cache is mainly used for inquring system
>> catalog to know if the table is a tempory one, or rewirting timestamp
>> for example. Problem is, if the structure of a table which is in the
>> cache is changed by ALTER TABLE ADD COLUMN or some such, the contents
>> of the relcache are not valid anymore.
>
> Is it difficult to refresh the cache when the ALTER or some query with
> problem is issued?
> (Is it too simple..?)
If a pgpool child receives the ALTER TABLE request, it's not too hard
to invalidate the cache in the *same* child process. But there's no
way for other children to know the child received ALTER TABLE.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp
>>
>> The only solution at present is, restarting pgpool or using
>> child_life_time, not super conveninet.
>>
>> My idea is adding an expiration timer in the cache entry so that the
>> cache entry is invalidated after N seconds. The N can be changed by
>> editing pgpool.conf.
>>
>> Thoughts?
>> --
>> Tatsuo Ishii
>> SRA OSS, Inc. Japan
>> English: http://www.sraoss.co.jp/index_en.php
>> Japanese: http://www.sraoss.co.jp
>> _______________________________________________
>> Pgpool-hackers mailing list
>> Pgpool-hackers at pgfoundry.org
>> http://pgfoundry.org/mailman/listinfo/pgpool-hackers
>
>
> --
> Yoshiharu Mori <y-mori at sraoss.co.jp>
> SRA OSS, Inc Japan http://www.sraoss.co.jp
> TEL: 03-5979-2701
> FAX: 03-5979-2702
More information about the Pgpool-hackers
mailing list