WAL insert delay settings
От | Peter Eisentraut |
---|---|
Тема | WAL insert delay settings |
Дата | |
Msg-id | 2e3e7a6d-8b97-c986-bfe8-7463ca396b6a@2ndquadrant.com обсуждение исходный текст |
Ответы |
Re: WAL insert delay settings
Re: WAL insert delay settings Re: WAL insert delay settings Re: WAL insert delay settings |
Список | pgsql-hackers |
Bulk operations like CREATE INDEX, ALTER TABLE, or bulk loads can create a lot of WAL. A lot of WAL at once can cause delays in replication. For synchronous replication, this can make seemingly unrelated sessions hang. But also for asynchronous replication, it will increase latency. One idea to address this is to slow down WAL-generating maintenance operations. This is similar to the vacuum delay. Where the vacuum delay counts notional I/O cost before sleeping, here we would count how much WAL has been generated and sleep after some amount. I attach an example patch for this functionality. It introduces three settings: wal_insert_delay_enabled wal_insert_delay wal_insert_delay_size When you turn on wal_insert_delay_enabled, then it will sleep for wal_insert_delay after the session has produced wal_insert_delay_size of WAL data. The idea is that you would tune wal_insert_delay and wal_insert_delay_size to your required performance characteristics and then turn on wal_insert_delay_enabled individually in maintenance jobs or similar. To test, for example, set up pgbench with synchronous replication and run an unrelated large index build in a separate session. With the settings, you can make it as fast or as slow as you want. Tuning these settings, however, is quite mysterious I fear. You have to play around a lot to get settings that achieve the right balance. So, some questions: Is this useful? Any other thoughts on how to configure this or do this? Should we aim for a more general delay system, possibly including vacuum delay and perhaps something else? -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Вложения
В списке pgsql-hackers по дате отправления: