Thread: checkpoint_timeout irrelevant in 8.1.9

checkpoint_timeout irrelevant in 8.1.9

From
"George Wilk"
Date:

According to the WAL config documentation correctly, checkpoints are created every checkpoint_segments log segments, or every checkpoint_timeout seconds, whichever comes first.  However, it seems as though setting my checkpoint_timeout has no effect on checkpoint creation ( I have it set to 30 seconds).  Forcing checkpoint by running psql –c CHECKPOINT mydb doesn’t do the trick either.  Checkpoints are created solely based on the checkpoint_segments logs reaching their configured size.

 

This is not satisfactory in a low transaction volume environment.  Any hints on how else can I trigger checkpoint?

 

Thanks in advance,

 

~george

Re: checkpoint_timeout irrelevant in 8.1.9

From
"Joshua D. Drake"
Date:
George Wilk wrote:


> However, it seems as though setting
> my checkpoint_timeout has no effect on checkpoint creation ( I have it
> set to 30 seconds).  Forcing checkpoint by running */psql –c CHECKPOINT
> mydb/* doesn’t do the trick either.  Checkpoints are created solely
> based on the checkpoint_segments logs reaching their configured size.
>

There is no such thing as checkpoint creation. Checkpoint timeout means
that at 30 seconds (based on checkpoint_timeout) it will checkpoint
unless it needs to do so sooner.

Joshua D. Drake



>
>
> This is not satisfactory in a low transaction volume environment.  Any
> hints on how else can I trigger checkpoint?
>
>
>
> Thanks in advance,
>
>
>
> ~george
>


--

       === The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive  PostgreSQL solutions since 1997
              http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/



Re: checkpoint_timeout irrelevant in 8.1.9

From
Alvaro Herrera
Date:
George Wilk wrote:
> According to the WAL config documentation correctly, checkpoints are created
> every
> <mk:@MSITStore:C:\Program%20Files\PostgreSQL\8.2\pgAdmin%20III\docs\en_US\pg
> admin3.chm::/pg/runtime-config-wal.html#guc-checkpoint-segments>
> checkpoint_segments log segments, or every
> <mk:@MSITStore:C:\Program%20Files\PostgreSQL\8.2\pgAdmin%20III\docs\en_US\pg
> admin3.chm::/pg/runtime-config-wal.html#guc-checkpoint-timeout>
> checkpoint_timeout seconds, whichever comes first.  However, it seems as
> though setting my checkpoint_timeout has no effect on checkpoint creation (
> I have it set to 30 seconds).  Forcing checkpoint by running psql -c
> CHECKPOINT mydb doesn't do the trick either.  Checkpoints are created solely
> based on the checkpoint_segments logs reaching their configured size.

You are misunderstand what a checkpoint is.  Also, why would you need a
checkpoint every 30 seconds escapes me.  What you probably want is to
archive the WAL segment currently in use.  There's a function you can
use for that, pg_switch_xlog().

--
Alvaro Herrera       Valdivia, Chile   ICBM: S 39º 49' 18.1", W 73º 13' 56.4"
"In Europe they call me Niklaus Wirth; in the US they call me Nickel's worth.
 That's because in Europe they call me by name, and in the US by value!"