Re: Using condition variables to wait for checkpoints
От | Andres Freund |
---|---|
Тема | Re: Using condition variables to wait for checkpoints |
Дата | |
Msg-id | 20190312231204.k5jqe7x2wetl6m6u@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Using condition variables to wait for checkpoints (Thomas Munro <thomas.munro@gmail.com>) |
Ответы |
Re: Using condition variables to wait for checkpoints
|
Список | pgsql-hackers |
Hi, On 2019-03-13 11:56:19 +1300, Thomas Munro wrote: > A user complained about CREATE DATABASE taking > 200ms even with fsync > set to off. Andres pointed out that that'd be the clunky poll/sleep > loops in checkpointer.c. > > Here's a draft patch to use condition variables instead. > > Unpatched: > > postgres=# checkpoint; > CHECKPOINT > Time: 101.848 ms > > Patched: > > postgres=# checkpoint; > CHECKPOINT > Time: 1.851 ms Neat. That's with tiny shmem though, I bet? > + <row> > + <entry><literal>CheckpointDone</literal></entry> > + <entry>Waiting for a checkpoint to complete.</entry> > + </row> > + <row> > + <entry><literal>CheckpointStart</literal></entry> > + <entry>Waiting for a checkpoint to start.</entry> > + </row> Not sure I like these much, but I can't quite ome up with something meaningfully better. Looks good to me. Having useful infrastructure is sure cool. - Andres
В списке pgsql-hackers по дате отправления: