Как узлы с несколькими плотами группируются вместе?

#distributed #consensus #raft

#распределенный #консенсус #плот

Вопрос:

Я пытаюсь реализовать архитектуру, аналогичную мульти-плоту Cockroachdb:https://www.cockroachlabs.com/blog/scaling-Raft /.

У кого-нибудь есть краткое объяснение того, как мульти-плот группирует эти отдельные кластеры плотов? В частности, существует ли экземпляр Raft, координирующий членство серверов, участвующих в каждом диапазоне / сеансе / блоке меньших блоков Raft?

Ответ №1:

Если бы мне пришлось догадываться, они реализуют логику, похожую на рандеву-хеширование (или согласованное хеширование).

Например, всего 10 узлов. И есть диапазон X. Они могли бы использовать хеширование, чтобы решить, какие эти 3 узла отвечают за диапазон. Один из этих узлов будет лидером для данного диапазона. И для другого диапазона узлы будут другими.

Поскольку диапазонов намного больше, чем узлов, это означает, что каждый узел будет участвовать в нескольких диапазонах. Это круто, так как когда узел отправляет сердцебиение подписчику — это сердцебиение подтвердит все диапазоны, в которых данный узел является лидером, а другой узел — подписчиком.

В конце концов, все равно каждый узел отправляет сердцебиение каждому другому узлу.