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@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@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@pg200 ~]# Does the above ordinary backends mean to the process 3184? Best Regards jian gao 2013/10/9 Jeff Janes <jeff.ja...@gmail.com> > On Tue, Oct 8, 2013 at 1:54 AM, 高健 <luckyjack...@gmail.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 >