Re: Change pgarch_readyXlog() to return .history files first
David Steele <david@pgmasters.net>
From: David Steele <david@pgmasters.net>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Cc: Michael Paquier <michael@paquier.xyz>
Date: 2018-12-13T18:45:30Z
Lists: pgsql-hackers
Attachments
- history-files-first-v2.patch (text/plain) patch v2
On 12/13/18 11:53 AM, David Steele wrote: > Hackers, > > The alphabetical ordering of pgarch_readyXlog() means that on promotion > 000000010000000100000001.partial will be archived before 00000002.history. > > This appears harmless, but the .history files are what other potential > primaries use to decide what timeline they should pick. The additional > latency of compressing/transferring the much larger partial file means > that archiving of the .history file is delayed and greatly increases the > chance that another primary will promote to the same timeline. > > Teach pgarch_readyXlog() to return .history files first (and in order) > to reduce the window where this can happen. This won't prevent all > conflicts, but it is a simple change and should greatly reduce > real-world occurrences. > > I also think we should consider back-patching this change. It's hard to > imagine that archive commands would have trouble with this reordering > and the current ordering causes real pain in HA clusters. Some gcc versions wanted more parens, so updated in attached. -- -David david@pgmasters.net
Commits
-
Prioritize history files when archiving
- 37126251ab77 9.5.16 landed
- 9378701243b5 9.6.12 landed
- 0857575774a2 10.7 landed
- a016f59d5901 11.2 landed
- b981df4cc09a 12.0 landed