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
>
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 |