LINUX.ORG.RU

История изменений

Исправление ergo, (текущая версия) :

Представь, что сеть развалилась на две почти равных половины 12 и 13.

это классический сплит. разумеется, в режиме сплита соберутся разные кворумы, выберется новый лидер и тд. после объединения обратно сформируется новый кворум и выяснится форк. как только узел определит, что он стал частью форка он завершает работу принтуя варнинг на этот счет.

Так что после объединения (после сплита) одна из половин этого сплита завершит работу (участники этого сплита задетектят сами наличие форка и самовыпилятся).

Разумеется, я наверняка еще не учел какие-то экзотические корнеркейсы, но того функционала, что уже сейчас реализовано, более чем достаточно, чтобы запилить устойчивый кластер с вводом/выводом пиров из рафт-кластера.

относительно моей модификации - оно в целом рафтовое. из изменений там - наличие кворума; хартбиты не каждые 300мс, а раз в 5 сек ибо наличие функционала мониторов (участники кворума мониторят др друга) решает вопрос реагирования при выпадании кого либо. хартбит же помогает для кейса, когда лидер «залип» на обработке сообщения; голосование за лидера - инициатор отдает голос не за себя, а за того, кто владеет последними данными (аттрибут serial - глобальный счетчик транзакций, этой инфой участники обмениваются в процессе формирования кворума и при джойне к кластеру).

наверное точнее будет назвать raft-based реализация. но тогда придется большой толмут описательный готовить, а так оно любому разрабу уже будет +/- понятно, что это и зачем.

документация будет готова к следующему релизу. там будут детали реализации

Исправление ergo, :

Представь, что сеть развалилась на две почти равных половины 12 и 13.

это классический сплит. разумеется, в режиме сплита соберутся разные кворумы, выберется новый лидер и тд. после объединения обратно сформируется новый кворум и выяснится форк. как только узел определит, что он стал частью форка он завершает работу принтуя варнинг на этот счет.

Так что после объединения (после сплита) одна из половин этого сплита завершит работу (участники этого сплита задетектят сами наличие форка и самовыпилятся).

Разумеется, я наверняка еще не учел какие-то экзотические корнеркейсы, но того функционала, что уже сейчас реализовано, более чем достаточно, чтобы запилить устойчивый кластер с вводом/выводом пиров из рафт-кластера.

относительно моей модификации - оно в целом рафтовое. из изменений там - наличие кворума; хартбиты не каждые 300мс, а раз в 5 сек ибо наличие функционала мониторов (участники кворума мониторят др друга) решает вопрос реагирования при выпадании кого либо. хартбит же помогает для кейса, когда лидер «залип» на обработке сообщения; голосование за лидера - инициатор отдает голос не за себя, а за того, кто владеет последними данными (аттрибут serial - глобальный счетчик транзакций).

наверное точнее будет назвать raft-based реализация. но тогда придется большой толмут описательный готовить, а так оно любому разрабу уже будет +/- понятно, что это и зачем.

документация будет готова к следующему релизу. там будут детали реализации

Исправление ergo, :

Представь, что сеть развалилась на две почти равных половины 12 и 13.

это классический сплит. разумеется, в режиме сплита соберутся разные кворумы, выберется новый лидер и тд. после объединения обратно сформируется новый кворум и выяснится форк. как только узел определит, что он стал частью форка он завершает работу принтуя варнинг на этот счет.

Так что после объединения (после сплита) одна из половин этого сплита завершит работу (участники этого сплита задетектят сами наличие форка и самовыпилятся).

Разумеется, я наверняка еще не учел какие-то экзотические корнеркейсы, но того функционала, что уже сейчас реализовано, более чем достаточно, чтобы запилить устойчивый кластер с вводом/выводом пиров из рафт-кластера.

относительно моей модификации - оно в целом рафтовое. из изменений там - наличие кворума, хартбиты не каждые 300мс, а раз в 5 сек ибо наличие функционала мониторов (участники кворума мониторят др друга) решает вопрос реагирования при выпадании кого либо. хартбит же помогает для кейса, когда лидер «залип» на обработке сообщения.

документация будет готова к следующему релизу. там будут детали реализации

Исходная версия ergo, :

Представь, что сеть развалилась на две почти равных половины 12 и 13.

это классический сплит. разумеется, в режиме сплита соберутся разные кворумы, выберется новый лидер и тд. после объединения обратно сформируется новый кворум и выяснится форк. как только узел определит, что он стал частью форка он завершает работу принтуя варнинг на этот счет.

Так что после объединения (после сплита) одна из половин этого сплита завершит работу (участники этого сплита задетектят сами наличие форка и самовыпилятся).

Разумеется, я наверняка еще не учел какие-то экзотические корнеркейсы, но того функционала, что уже сейчас реализовано, более чем достаточно, чтобы запилить устойчивый кластер с вводом/выводом пиров из рафт-кластера.

документация будет готова к следующему релизу. там будут детали реализации