[pgpool-general: 225] Re: More information on relcache_expire

Sandeep Thakkar sandeeptt at yahoo.com
Wed Feb 15 16:38:21 JST 2012


Thanks Tatsuo!

I have setup a Master and Slave configuration and set relcache_expire as 600 in pgpool.conf. Now I do manual testing within 600 seconds. 
I connect to database through pgpool port 9999. At the psql prompt, I created a table with 3 columns:

CREATE TABLE phonebook(phone VARCHAR(32), name VARCHAR(32), address VARCHAR(64));

I inserted proper values and then executed the select query which returns proper values.
SELECT * FROM phonebook ORDER BY name;

Now, I alter the table and rename the column 'name' with 'firstname'
ALTER TABLE phonebook RENAME COLUMN name TO firstname;

Now, the same select query returns me the ERROR "column "name" does not exist".  I thought it should return fine because relation cache would not have updated table structure, right? Or am I missing something?




________________________________
 From: Tatsuo Ishii <ishii at postgresql.org>
To: sandeeptt at yahoo.com 
Cc: pgpool-general at pgpool.net 
Sent: Tuesday, February 14, 2012 2:52 PM
Subject: Re: [pgpool-general: 221] Re: More information on relcache_expire
 
> right, that makes sense. Thanks!
> 
> BTW, how do we know that the query result is returned from the cache or not?

Please look into PostgreSQL log. If you see access to pg_class or so
before user's query, that is the accessed from pgpool, thus cache is
not used.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp

> ________________________________
>  From: Tatsuo Ishii <ishii at postgresql.org>
> To: sandeeptt at yahoo.com 
> Cc: pgpool-general at pgpool.net 
> Sent: Tuesday, February 14, 2012 2:11 PM
> Subject: Re: [pgpool-general: 221] Re: More information on relcache_expire
>  
>> I mean, let's say I define the value of relcache_expire as "600" seconds. and the TABLE in cache is ALTERED before that. That means my query will produce the wrong result because the relation cache is not yet updated/expired, right?
> 
> Yes.
> 
> On what basis one would define the value of relcache_expire in pgpool.conf?
> 
> I don't think changing table structure so frequently is a real life
> usecase. Rather I think it happens during application development:
> table structures are not stable.
> 
> If your customer really wants to change table structure every 5
> minutes, probably there's something wrong with user's work flow
> anyway.
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese: http://www.sraoss.co.jp
> 
>> ________________________________
>>  From: Sandeep Thakkar <sandeeptt at yahoo.com>
>> To: "pgpool-general at pgpool.net" <pgpool-general at pgpool.net> 
>> Sent: Monday, February 13, 2012 1:58 PM
>> Subject: [pgpool-general: 220] More information on relcache_expire
>>  
>> 
>> - Add relcache_expire directive to control the expiration of the internal system catalog cache. ALTER TABLE might make these cache values obsoleted and the new directive will make the risk lower(Tatsuo)
>>  I would like to know how to make use of this directive? A test case will help.
>> 
>> Thanks.
>> 
>> 
>> _______________________________________________
>> pgpool-general mailing list
>> pgpool-general at pgpool.net
>> http://www.pgpool.net/mailman/listinfo/pgpool-general
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.sraoss.jp/pipermail/pgpool-general/attachments/20120214/dd1be029/attachment.html>


More information about the pgpool-general mailing list