Checkpointer vs pg_stat_bgwriter

Lists: pgsql-hackers
From: Magnus Hagander <magnus(at)hagander(dot)net>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Cc: Simon Riggs <simon(at)2ndquadrant(dot)com>
Subject: Checkpointer vs pg_stat_bgwriter
Date: 2012-02-26 19:24:08
Message-ID: CABUevEwyxHgFT=-J5udV0gTsS-B7cHtiaTF1ipFE83Q8oogkcw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Hi!

I admit to not having actually tested this since I don't have a good
cluster to test it on right now, but from what I can tell the code in
the new checkpointer process only sends statistics to the collector
once the checkpoint is finished (checkpointer.c, line 549). The 9.1
and earlier sent this every time they entered a delay state (in
BgWriterNap() called from CheckpointWriteDelay()).

So in 9.1 and earlier we could see how a checkpoint wrote things as it
was running, but in 9.2 we'll get it all as one big block at the end
of the checkpoint - which can be a lot later in the spread case.

Am I reading the code right?

And if so, was this an intentional change, and if so why? To me it
seems like a loss of functionality that should be fixed..

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Simon Riggs <simon(at)2ndquadrant(dot)com>
Subject: Re: Checkpointer vs pg_stat_bgwriter
Date: 2012-02-28 06:06:29
Message-ID: CAHGQGwE+66oOE_4XbkR0PwsVH1uCWRuVbuzL7dvWLQNsgS1tew@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Mon, Feb 27, 2012 at 4:24 AM, Magnus Hagander <magnus(at)hagander(dot)net> wrote:
> Hi!
>
> I admit to not having actually tested this since I don't have a good
> cluster to test it on right now, but from what I can tell the code in
> the new checkpointer process only sends statistics to the collector
> once the checkpoint is finished (checkpointer.c, line 549). The 9.1
> and earlier sent this every time they entered a delay state (in
> BgWriterNap() called from CheckpointWriteDelay()).
>
> So in 9.1 and earlier we could see how a checkpoint wrote things as it
> was running, but in 9.2 we'll get it all as one big block at the end
> of the checkpoint - which can be a lot later in the spread case.
>
> Am I reading the code right?
>
> And if so, was this an intentional change, and if so why? To me it
> seems like a loss of functionality that should be fixed..

I agree that this should be fixed.

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center