Re: Re: BUG #13685: Archiving while idle every archive_timeout with wal_level hot_standby
От | Michael Paquier |
---|---|
Тема | Re: Re: BUG #13685: Archiving while idle every archive_timeout with wal_level hot_standby |
Дата | |
Msg-id | CAB7nPqTpb10+oGr=b5Wa7c87xN+Bnk0a+_ShyxcYf+PHd-UGAw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Re: BUG #13685: Archiving while idle every archive_timeout with wal_level hot_standby (Michael Paquier <michael.paquier@gmail.com>) |
Ответы |
Re: Re: BUG #13685: Archiving while idle every
archive_timeout with wal_level hot_standby
Re: Re: BUG #13685: Archiving while idle every archive_timeout with wal_level hot_standby |
Список | pgsql-hackers |
On Sun, Nov 8, 2015 at 9:50 PM, Michael Paquier <michael.paquier@gmail.com> wrote: > On Sat, Nov 7, 2015 at 3:54 PM, Michael Paquier wrote: >> I thought about something like that at some point by saving a minimum >> activity pointer in XLogCtl, updated each time a segment was forcibly >> switched or after inserting a checkpoint record. Then the bgwriter >> looked at if the current insert position matched this minimum activity >> pointer, skipping LogStandbySnapshot if both positions match. Does >> this match your line of thoughts? > > Looking at the code, it occurred to me that the LSN position saved for > a XLOG_SWITCH record is the last position of current segment, so we > would still need to check if the current insert LSN matches the > beginning of a new segment and if the last segment was forcibly > switched by saving RecPtr of RequestXLogSwitch in XLogCtl for example. > Thoughts? I haven't given up on this patch yet, and putting again my head on this problem I have finished with the patch attached, which checks if the current insert LSN position is at the beginning of a segment that has just been switched to decide if a standby snapshot should be logged or not. This allows bringing back an idle system to the pre-9.3 state where a segment would be archived in the case of a low archive_timeout only when a checkpoint has been issued on the system. In order to achieve this idea I have added a field on XLogCtl that saves the last time a segment has been forcibly switched after XLOG_SWITCH. Honestly I am failing to see why we should track the progress since last checkpoint as mentioned upthread, and the current behavior is certainly a regression. Speaking of which, this patch was registered in this CF, I am moving it to the next as a bug fix. Regards, -- Michael
Вложения
В списке pgsql-hackers по дате отправления: