Re: Why SyncOneBuffer does not called frequently?

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема Re: Why SyncOneBuffer does not called frequently?
Дата
Msg-id CAMkU=1zstxGAfrLEcJcLD_Ls97qEghjnXrgvzQhTvFo3iWqSvg@mail.gmail.com
обсуждение исходный текст
Ответ на Why SyncOneBuffer does not called frequently?  (高健 <luckyjackgao@gmail.com>)
Список pgsql-general
On Wed, Oct 31, 2012 at 1:53 AM, 高健 <luckyjackgao@gmail.com> wrote:
> Hi all:
>
> I am trying to understand when the bgwriter is written.
>
> I thought that the  bgwriter.c's calling turn is:
>
> BackgroundWriterMain ->BgBufferSync-> SyncOneBuffer

SyncOneBuffer is called with skip_recently_used true, so the buffer
will not get written by the background writer if it is was recently
used.

>
> And In my postgresql.conf , the bgwriter_delay=200ms.
>
> I did the following:
>
> postgres=# select * from testtab;
>  id |  val
> ----+-------
>   1 | 12345
> (1 row)
>
> postgres=# update testtab set val='54321' where id=1;
> UPDATE 1
> postgres=# select * from testtab;
>  id |  val
> ----+-------
>   1 | 54321
> (1 row)
>
> postgres=#
>
> Now I can say the buffer is dirty ,right?

It is dirty, but it also has a positive usagecount.

Are you sure it is that SyncOneBuffer is not getting called, rather
than it is getting called but returning before doing the write?

Cheers,

Jeff


В списке pgsql-general по дате отправления:

Предыдущее
От: Moshe Jacobson
Дата:
Сообщение: Re: Parallel Insert and Delete operation
Следующее
От: Christian Hammers
Дата:
Сообщение: When do archived WAL files gets removed after wal_keep_segments changed?