| From: | Giuseppe Broccolo <giuseppe(dot)broccolo(at)2ndquadrant(dot)it> | 
|---|---|
| To: | pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: Risk of set system wise statement_timeout | 
| Date: | 2013-09-12 14:09:21 | 
| Message-ID: | 5231CB11.3040508@2ndquadrant.it | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
Il 11/09/2013 22:02, Alex Lai ha scritto:
> I have been reading few posted comment about the risk for autovacuum 
> for older postgres liek version 8.
> I am currently running 9.2.4.  We have a need to terminate any query 
> running longer than 2 hours.  Most of our query should finish within 
> 15 minutes.  We don't have very large amount of changes in the system 
> and we run autovacuum daily.  Running the larger table for autovacuum 
> should be fast.  Under my situation, setting statement_timeout = 
> 7200000 which is 2 hours seems very low risk trigger fail to 
> autovacuum.  Any one have any idea not to do it or any workaround to 
> decrease the risk of fail autovacuum 
Setting statement_timeout in postgresql.conf is not recommended for many 
reasons. You are interested to terminate just your query. I suggest to 
use pg_stat_activity table to search query running longer than 2 hours, 
and them to terminate them with pg_cancel_backend() function. I just did 
a simple test where I defined a function which retrieves the pid of the 
query process, and then terminate it if its running time is longer than 
2 hours:
CREATE OR REPLACE FUNCTION cancel_after_2hours() RETURNS VOID AS $$
DECLARE
     r RECORD;
BEGIN
     FOR r IN SELECT * FROM pg_stat_activity WHERE query_start < 
CURRENT_TIMESTAMP - interval '120 minutes'
     LOOP
         SELECT pg_cancel_backend(r.pid);
     END LOOP;
END;
$$ LANGUAGE 'plpgsql';
then add a line like the following in your cron
0 * * * * psql <databasenamehere> -c "SELECT cancel_after_2hours();"
to be sure that it will be executed in automatic way.
Hope it can help,
Giuseppe.
-- 
Giuseppe Broccolo - 2ndQuadrant Italy
PostgreSQL Training, Services and Support
giuseppe(dot)broccolo(at)2ndQuadrant(dot)it | www.2ndQuadrant.it
| From | Date | Subject | |
|---|---|---|---|
| Next Message | AI Rumman | 2013-09-12 14:53:37 | 9.2 Replication in Ubuntu ; need help | 
| Previous Message | againstdemons84 | 2013-09-12 13:11:17 | Re: Trouble with replication |