Re: archive status ".ready" files may be created too early
От | Alvaro Herrera |
---|---|
Тема | Re: archive status ".ready" files may be created too early |
Дата | |
Msg-id | 202107302351.zovw4tdoe47e@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: archive status ".ready" files may be created too early ("Bossart, Nathan" <bossartn@amazon.com>) |
Ответы |
Re: archive status ".ready" files may be created too early
Re: archive status ".ready" files may be created too early |
Список | pgsql-hackers |
On 2021-Jul-30, Bossart, Nathan wrote: > Yes, that was what I was worried about. However, I just performed a > variety of tests with just 0001 applied, and I am beginning to suspect > my concerns were unfounded. With wal_buffers set very high, > synchronous_commit set to off, and a long sleep at the end of > XLogWrite(), I can reliably cause the archive status files to lag far > behind the current open WAL segment. However, even if I crash at this > time, the .ready files are created when the server restarts (albeit > out of order). I think that creating files out of order might be problematic. On the archiver side, pgarch_readyXlog() expects to return the oldest archivable file; but if we create a newer segment's .ready file first, it is possible that a directory scan would return that newer file before the older segment's .ready file appears. However, the comments in pgarch_readyXlog() aren't super convincing that processing the files in order is actually a correctness requirement, so perhaps it doesn't matter all that much. I noticed that XLogCtl->lastNotifiedSeg is protected by both the info_lck and ArchNotifyLock. I think it it's going to be protected by the lwlock, then we should drop the use of the spinlock. We set archiver's latch on each XLogArchiveNotify(), but if we're doing it in a loop such as in NotifySegmentsReadyForArchive() perhaps it is better to create all the .ready files first and do PgArchWakeup() at the end. I'm not convinced that this is useful but let's at least discard the idea explicitly if not. -- Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/ "Always assume the user will do much worse than the stupidest thing you can imagine." (Julien PUYDT)
Вложения
В списке pgsql-hackers по дате отправления: