Skip to content
Snippets Groups Projects
Commit 3ab4e355 authored by Yaroslav Dynnikov's avatar Yaroslav Dynnikov
Browse files

doc: fixup clustering.md

parent 349430df
No related branches found
No related tags found
1 merge request!210doc: update clustering.md
Pipeline #10352 passed
......@@ -13,7 +13,7 @@ picodata run --instance-id iN --listen iN --peer i1
Независимо от количества запускаемых инстансов, в опции `--peer` у каждого из них следует указать один и тот же набор из нескольких инстансов - одного обычно достаточно, но для подстраховки можно взять три. Именно на их основе будет произведена инициализация кластера и поиск всех работающих инстансов для их включения в состав кластера (discovery).
Подробности алгоритма discovery приведены в отдельном [документе](discover.md). В контексте сборки кластера важно лишь понимать, что этот алгоритм позволяет не более чем одному инстансу (peer'у) создать Raft-группу, т.е. стать инстансом с raft_id=1. Если таких инстансов будет несколько, то и Raft-групп, а следовательно и кластеров Picodata получится несколько.
Подробности алгоритма discovery приведены в отдельном [документе](discovery.md). В контексте сборки кластера важно лишь понимать, что этот алгоритм позволяет не более чем одному инстансу (peer'у) создать Raft-группу, т.е. стать инстансом с raft_id=1. Если таких инстансов будет несколько, то и Raft-групп, а следовательно и кластеров Picodata получится несколько.
Топологией Raft-группы управляет алгоритм Raft, реализованный в виде крейта `raft-rs`.
......@@ -128,10 +128,10 @@ struct Peer {
Поток представляет собой бесконечный цикл. На каждой итерации выполняется проверка, что состав `voters` / `learners` соответствует состоянию инстансов, и при необходимости эти изменения пачкой записываются в Raft-журнал:
- Инстансы в статусе `health: Loading` довавляются как неголосующие.
- Если есть возможность, `Offline` инстансы передают право голоса другим `Online`.
- Если есть возможность, `Offline` инстансы передают право голоса другим `Online`. [TODO](## "Сейчас offline инстанс демоутится безусловно, даже если других онлайн кандидатов нет. Не надо так делать.")
- Если общее количество голосующих инстансов оказывается меньше целевого, `Online` инстансы получают право голоса.
Количество голосующих узлов в кластере не настраивается и зависит только от общего количества инстансов. Если инстансов 1 или 2, то голосующий узел один. Если инстансов 3 или 4, то таких узлов три. Для кластера с 5 или более инстансами — пять голосующих узлов.
Количество голосующих узлов в кластере не настраивается и зависит только от общего количества инстансов. Если инстансов 1 или 2, то голосующий узел один. [TODO](## "Сейчас в кластере из 2 инстансов оба делаются голосующими. Надо проработать аргументацию и решить как правильно."). Если инстансов 3 или 4, то таких узлов три. Для кластера с 5 или более инстансами — пять голосующих узлов.
# Graceful shutdown
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment