Re: [HACKERS] autovacuum does not start in HEAD

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: ITAGAKI Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>
Cc: pgsql-patches(at)postgresql(dot)org, alvherre(at)commandprompt(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [HACKERS] autovacuum does not start in HEAD
Date: 2007-04-27 02:57:37
Message-ID: 200704270257.l3R2vbh13624@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches


Your patch has been added to the PostgreSQL unapplied patches list at:

http://momjian.postgresql.org/cgi-bin/pgpatches

It will be applied as soon as one of the PostgreSQL committers reviews
and approves it.

---------------------------------------------------------------------------

ITAGAKI Takahiro wrote:
> I wrote:
> > I found that autovacuum launcher does not launch any workers in HEAD.
>
> The attached autovacuum-fix.patch could fix the problem. I changed
> to use 'greater or equal' instead of 'greater' at the decision of
> next autovacuum target.
>
> The point was in the resolution of timer; There is a platform that timer
> has only a resolution of milliseconds. We initialize adl_next_worker with
> current_time in rebuild_database_list(), but we could use again the same
> value in do_start_worker(), because there is no measurable difference
> in those low-resolution-platforms.
>
>
> Another attached patch, autovacuum-debug.patch, is just for printf-debug.
> I got the following logs without fix -- autovacuum never works.
>
> # SELECT oid, datname FROM pg_database ORDER BY oid;
> oid | datname
> -------+-----------
> 1 | template1
> 11494 | template0
> 11495 | postgres
> 16384 | bench
> (4 rows)
>
> # pgbench bench -s1 -c1 -t100000
> [with configurations of autovacuum_naptime = 10s and log_min_messages = debug1]
>
> LOG: do_start_worker skip : 230863399.250000, 230863399.250000, 230863409.250000
> LOG: rebuild_database_list: db=11495, time=230863404.250000
> LOG: rebuild_database_list: db=16384, time=230863409.250000
> DEBUG: autovacuum: processing database "bench"
> LOG: do_start_worker skip : 230863404.250000, 230863404.250000, 230863414.250000
> LOG: do_start_worker skip : 230863404.250000, 230863409.250000, 230863414.250000
> LOG: rebuild_database_list: db=11495, time=230863409.250000
> LOG: rebuild_database_list: db=16384, time=230863414.250000
> LOG: do_start_worker skip : 230863409.250000, 230863409.250000, 230863419.250000
> LOG: do_start_worker skip : 230863409.250000, 230863414.250000, 230863419.250000
> LOG: rebuild_database_list: db=11495, time=230863414.250000
> LOG: rebuild_database_list: db=16384, time=230863419.250000
> ...
> (no autovacuum activities forever)
>
> Regards,
> ---
> ITAGAKI Takahiro
> NTT Open Source Software Center
>

[ Attachment, skipping... ]

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2007-04-27 03:13:58 Feature freeze progress report
Previous Message Bruce Momjian 2007-04-27 02:47:20 Re: [COMMITTERS] pgsql: Remove some of the most blatant brain-fade in the recent guc

Browse pgsql-patches by date

  From Date Subject
Next Message Bruce Momjian 2007-04-27 02:57:44 Re: updated SORT/LIMIT patch
Previous Message Bruce Momjian 2007-04-27 02:45:55 Re: actualised forgotten Magnus's patch for plpgsql MOVE statement