autovacuum does not start in HEAD - Mailing list pgsql-hackers

From ITAGAKI Takahiro
Subject autovacuum does not start in HEAD
Date
Msg-id 20070425164613.70BB.ITAGAKI.TAKAHIRO@oss.ntt.co.jp
Whole thread Raw
Responses Re: autovacuum does not start in HEAD  (Alvaro Herrera <alvherre@commandprompt.com>)
Re: autovacuum does not start in HEAD  (ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp>)
List pgsql-hackers
I found that autovacuum launcher does not launch any workers in HEAD.

AFAICS, we track the time to be vaccumed of each database in the following way:

1. In rebuild_database_list(), we initialize avl_dbase->adl_next_worker  with (current_time + autovacuum_naptime /
nDBs).
2. In do_start_worker(), we skip database entries that adl_next_worker  is between current_time and current_time +
autovacuum_naptime.
3. If there is no jobs in do_start_worker(), we call rebuild_database_list()  to rebuild database entries.

The point is we use the same range (current_time and current_time +
autovacuum_naptime) at 1 and 2. We set adl_next_worker with values in the
range, and drop all of them at 2 because their values are in the range.
And if there is no database to vacuum, we re-initilaize database list at 3,
then we repeat the cycle.

Or am I missing something?

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center



pgsql-hackers by date:

Previous
From: Dave Page
Date:
Subject: Buildfarm: Stage logs not available for MSVC builds
Next
From: Dave Page
Date:
Subject: ECPG failure on BF member Vaquita (Windows Vista)