Re: Load distributed checkpoint
От | Martijn van Oosterhout |
---|---|
Тема | Re: Load distributed checkpoint |
Дата | |
Msg-id | 20061208104359.GD25912@svana.org обсуждение исходный текст |
Ответ на | Re: Load distributed checkpoint (ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp>) |
Список | pgsql-hackers |
On Fri, Dec 08, 2006 at 02:22:14PM +0900, ITAGAKI Takahiro wrote: > AFAIK, other databases use write() and fsync() in combination. They call > fsync() immediately after they write buffers in some small batches. Otherwise, > they uses asynchronous and direct I/O options. Therefore, dirty pages in > kernel buffers are keeped to be low at any time. The "easy" solution I can think of is, when a session/backend is exiting cleanly (client sent quit command), execute fsync() on some of the descriptors before actually closing. At this point the user isn't waiting anymore, so it can take its time. The problem with fsync() remains that it can cause a write spike, althoguh the more often you do it the less of an effect it would have. A longer term solution maybe be create a daemon with system specific information that monitors the load and tweaks parameters in response. Not just postgresql parameters, but also system parameters. Even if it never becomes part of postgresql, it will provide a way to test all these "hunches" people have about optimising the system. BTW, has anyone ever considered having the bgwriter do a NOTIFY whenever it starts/ends a checkpoint, so client coulds monitor the activity without reading the logs? Have a nice day, -- Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > From each according to his ability. To each according to his ability to litigate.
В списке pgsql-hackers по дате отправления: