Change pgarch_readyXlog() to return .history files first

Поиск
Список
Период
Сортировка
От David Steele
Тема Change pgarch_readyXlog() to return .history files first
Дата
Msg-id 929068cf-69e1-bba2-9dc0-e05986aed471@pgmasters.net
обсуждение исходный текст
Ответы Re: Change pgarch_readyXlog() to return .history files first  (David Steele <david@pgmasters.net>)
Re: Change pgarch_readyXlog() to return .history files first  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-hackers
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

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Connections hang indefinitely while taking a gin index's LWLock buffer_content lock
Следующее
От: Andrey Borodin
Дата:
Сообщение: Re: Connections hang indefinitely while taking a gin index's LWLockbuffer_content lock