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-13T16:53:53Z
Lists: pgsql-hackers
Attachments
- history-files-first-v1.patch (text/plain) patch v1
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. Regards, -- -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