[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