Re: Can checkpoint creation be parallel?

From: 高健 <luckyjackgao(at)gmail(dot)com>
To: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Can checkpoint creation be parallel?
Date: 2013-10-09 03:05:51
Message-ID: CAL454F2zUH+wO61JAsNJcJHWtwT_erSKA2yrm-GiCYBTJu1brQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks a lot for all your kindly replying!

>The background writer and ordinary backends might write data (for their
own rea>sons) that the checkpointer would have otherwise needed to write
anyway.

And does the ordinary backends refer to
the ones created when a client make a connection to PG?

For exampel:
When staring PG:
[root(at)pg200 ~]# ps -ef | grep post
root 3039 3015 0 11:02 pts/1 00:00:00 su - postgres
postgres 3040 3039 0 11:02 pts/1 00:00:00 -bash
postgres 3093 1 0 11:03 pts/1 00:00:00
/usr/local/pgsql/bin/postgres -D ./data
postgres 3095 3093 0 11:03 ? 00:00:00 postgres: checkpointer
process
postgres 3096 3093 0 11:03 ? 00:00:00 postgres: writer process

postgres 3097 3093 0 11:03 ? 00:00:00 postgres: wal writer
process
postgres 3098 3093 0 11:03 ? 00:00:00 postgres: autovacuum
launcher process
postgres 3099 3093 0 11:03 ? 00:00:00 postgres: stats collector
process
root 3126 3103 0 11:03 pts/2 00:00:00 grep post

After using psql to connect:
[root(at)pg200 ~]# ps -ef | grep post
root 3039 3015 0 11:02 pts/1 00:00:00 su - postgres
postgres 3040 3039 0 11:02 pts/1 00:00:00 -bash
postgres 3093 1 0 11:03 pts/1 00:00:00
/usr/local/pgsql/bin/postgres -D ./data
postgres 3095 3093 0 11:03 ? 00:00:00 postgres: checkpointer
process
postgres 3096 3093 0 11:03 ? 00:00:00 postgres: writer process

postgres 3097 3093 0 11:03 ? 00:00:00 postgres: wal writer
process
postgres 3098 3093 0 11:03 ? 00:00:00 postgres: autovacuum
launcher process
postgres 3099 3093 0 11:03 ? 00:00:00 postgres: stats collector
process
root 3150 3130 0 11:03 pts/3 00:00:00 su - postgres
postgres 3151 3150 0 11:03 pts/3 00:00:00 -bash
postgres 3183 3151 0 11:04 pts/3 00:00:00 ./psql
postgres 3184 3093 0 11:04 ? 00:00:00 postgres: postgres postgres
[local] idle
root 3186 3103 0 11:04 pts/2 00:00:00 grep post
[root(at)pg200 ~]#

Does the above ordinary backends mean to the process 3184?

Best Regards

jian gao

2013/10/9 Jeff Janes <jeff(dot)janes(at)gmail(dot)com>

> On Tue, Oct 8, 2013 at 1:54 AM, 高健 <luckyjackgao(at)gmail(dot)com> wrote:
>
>> Hello:
>>
>> Sorry for disturbing:
>>
>> I have one question about checkponint . That is : can checkpoint be
>> parallel?
>>
>
> PostgreSQL does not currently implement it that way. And it is hard to
> see what the benefit would be of doing so. But it should be theoretically
> possible.
>
>
>> It is said that checkpoint will be activated according to either
>> conditions:
>>
>> 1)After last checkpoint, checkpoint_timeout seconds passed.
>>
>
> After the *start* of the last checkpoint. Provided that the last
> checkpoint has finished.
>
>
>> 2)When shared_buffers memory above checkpoint_segments size is filled
>> with data.
>>
>
> It is not shared_buffers that is measured, but the WAL files themselves
> (which effectively means wal_buffers usage) that is measured.
>
>
>> My experience is that :
>>
>> There is only one checkpoint process there and works, and even when there
>> are many data created during transactions,
>>
>> There will also be only one checkpoint process deal with it
>>
>> (maybe background writer or some other server process will deal it)?
>>
>
> The background writer and ordinary backends might write data (for their
> own reasons) that the checkpointer would have otherwise needed to write
> anyway.
>
> Cheers,
>
> Jeff
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bob Futrelle 2013-10-09 04:27:20
Previous Message 高健 2013-10-09 02:58:37 streaming replication timeout error