Re: archive status ".ready" files may be created too early
От | alvherre@alvh.no-ip.org |
---|---|
Тема | Re: archive status ".ready" files may be created too early |
Дата | |
Msg-id | 202108182346.zkaxdlu27ry4@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
|
Список | pgsql-hackers |
On 2021-Aug-18, Bossart, Nathan wrote: > As long as XLogBackgroundFlush() found work to do, it would take care > of notifying, but I don't think we can depend on that. However, since > we're primarily using the WAL writer to take care of the case when the > record has already been flushed, notifying beforehand seems fine to > me. If XLogBackgroundFlush() does end up calling XLogWrite(), it'll > call it again, anyway. Agreed. > In the attached patch, I modified XLogInsertRecord() to simply set the > latch if we detect that flushRecPtr has advanced. Right, that's what I was thinking. I modified that slightly to use LogwrtResult.Flush (which should be fresh enough) instead of calling GetFlushRecPtr again, which saves a bit. I also changed it to > instead of >=, because if I understand you correctly we only care to notify if the flush pointer advanced, not in the case it stayed the same. I made a few other cosmetic tweaks -- added comment to SegmentBoundaryEntry and renamed the 'pos' to 'endpos'; renamed argument 'notify' of XLogArchiveNotify to 'nudge' (because having two different "notify" concepts in that function seemed confusing). -- Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/ "It takes less than 2 seconds to get to 78% complete; that's a good sign. A few seconds later it's at 90%, but it seems to have stuck there. Did somebody make percentages logarithmic while I wasn't looking?" http://smylers.hates-software.com/2005/09/08/1995c749.html
Вложения
В списке pgsql-hackers по дате отправления: