From 58adfb19955d9d4663427223a8943c964c89d433 Mon Sep 17 00:00:00 2001 From: Georgy Moshkin <gmoshkin@picodata.io> Date: Wed, 21 Feb 2024 16:19:39 +0300 Subject: [PATCH] topology_management.md: add stubs for governor algorithm --- docs/architecture/proc_api.md | 10 +++--- docs/architecture/topology_management.md | 42 ++++++++++++++++++++++++ docs/overview/glossary.md | 5 ++- 3 files changed, 51 insertions(+), 6 deletions(-) diff --git a/docs/architecture/proc_api.md b/docs/architecture/proc_api.md index 0f3367a2..b0740646 100644 --- a/docs/architecture/proc_api.md +++ b/docs/architecture/proc_api.md @@ -336,7 +336,7 @@ fn proc_replication(is_master, replicaset_peers) -> Lsn ÐÑ‚y хранимую процедуру вызывает только [governor](../overview/glossary.md#governor) в рамках алгоритма автоматичеÑкой Ñмены топологии клаÑтера (подробнее он опиÑан -[здеÑÑŒ](пока-нигде-не-опиÑан)). +[здеÑÑŒ](./topology_management.md#governor)). ПервоиÑточником принадлежноÑти инÑтанÑа к тому или иному репликаÑету ÑвлÑетÑÑ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð² ÑиÑтемной таблице [_pico_instance](./system_tables.md#_pico_instance), @@ -380,7 +380,7 @@ fn proc_replication_promote(vclock, timeout) ÐÑ‚y хранимую процедуру вызывает только [governor](../overview/glossary.md#governor) в рамках алгоритма автоматичеÑкой Ñмены текущего маÑтера репликаÑета -(подробнее он опиÑан [здеÑÑŒ](пока-нигде-не-опиÑан)). +(подробнее он опиÑан [здеÑÑŒ](./topology_management.md#governor)). Получив такой Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸Ð½ÑÑ‚Ð°Ð½Ñ Ð´Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ‚ÑÑ Ð¿Ð¾ÐºÐ° его локальный [vclock](../overview/glossary.md#vclock) не догонит vclock предыдущей @@ -407,7 +407,7 @@ fn proc_replication_demote() -> Vclock ÐÑ‚y хранимую процедуру вызывает только [governor](../overview/glossary.md#governor) в рамках алгоритма автоматичеÑкой Ñмены текущего маÑтера репликаÑета -(подробнее он опиÑан [здеÑÑŒ](пока-нигде-не-опиÑан)). +(подробнее он опиÑан [здеÑÑŒ](./topology_management.md#governor)). Получив такой Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸Ð½ÑÑ‚Ð°Ð½Ñ Ñразу переходит в read-only режим и отправлÑет в ответ текущее значение Ñвоего [vclock](../overview/glossary.md#vclock), которое @@ -441,7 +441,7 @@ fn proc_sharding(raft_term, raft_index, timeout, do_reconfigure) ÐÑ‚y хранимую процедуру вызывает только [governor](../overview/glossary.md#governor) в рамках алгоритма автоматичеÑкой Ñмены топологии клаÑтера (подробнее он опиÑан -[здеÑÑŒ](пока-нигде-не-опиÑан)). +[здеÑÑŒ](./topology_management.md#governor)). **ОСТОРОЖÐО:** детали реализации и параметры запроÑа Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¾Ð¹ вероÑтноÑтью Ñкоро уÑтареют. @@ -478,7 +478,7 @@ fn proc_sharding_bootstrap(raft_term, raft_index, timeout) ÐÑ‚y хранимую процедуру вызывает только [governor](../overview/glossary.md#governor) в рамках алгоритма автоматичеÑкой Ñмены топологии клаÑтера (подробнее он опиÑан -[здеÑÑŒ](пока-нигде-не-опиÑан)). +[здеÑÑŒ](./topology_management.md#governor)). За жизненный цикл клаÑтера Ñта процедуры вызываетÑÑ Ñ€Ð¾Ð²Ð½Ð¾ один раз как только в клаÑтере поÑвлÑетÑÑ Ð¿ÐµÑ€Ð²Ñ‹Ð¹ репликаÑет удовлетворÑющий ÑоответÑтвующему diff --git a/docs/architecture/topology_management.md b/docs/architecture/topology_management.md index 10a9e5e6..78e4c4c2 100644 --- a/docs/architecture/topology_management.md +++ b/docs/architecture/topology_management.md @@ -1,5 +1,6 @@ # Управление топологией +<!--------------------------------------------------------------------------—--> ## Общие ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ {: #intro } Топологией клаÑтера в Picodata называетÑÑ ÑовокупноÑÑ‚ÑŒ конфигураций @@ -37,6 +38,7 @@ Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð³Ñ€ÐµÐ¹Ð´Ð¾Ð² в клаÑтере региÑтрируютÑÑ Ð² [журнале аудита](../reference/audit_events.md). +<!--------------------------------------------------------------------------—--> ## Сценарии ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð³Ð¸ÐµÐ¹ {: #scenarios } ### Добавление инÑтанÑа в клаÑтер {: #joining } @@ -94,3 +96,43 @@ Дальнейшие дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð¾ выводу инÑтанÑа из ÑкÑплуатации выполнÑет `governor`. + + +<!--------------------------------------------------------------------------—--> +## Governor - централизованное управление клаÑтером {: #governor } + +БольшинÑтво механизмов ÑвÑзанных Ñ Ð¾Ñ‚ÐºÐ°Ð·Ð¾ÑƒÑтойчивоÑтью в Picodata так или иначе +ÑвÑзаны Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð¾Ð¼ governor. С техничеÑкой точки Ð·Ñ€ÐµÐ½Ð¸Ñ governor -- Ñто +поток ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (fiber) вÑегда выполнÑющийÑÑ Ð½Ð° [raft-лидере](../overview/glossary.md#raft_leader). +Дальше перечиÑлены ответÑтвенноÑти губернатора. + + +### ÐвтоматичеÑкое переключение узлов голоÑующих в raft {: #governor_raft_failover } + +Governor Ñледит за выполнение ограничений опиÑанных [здеÑÑŒ](./raft_failover.md#raft_voter_failover). + + +### ÐвтоматичеÑкое назначение маÑтеров репликаÑетов {: #replicaset_master_switchover } + +Work in progress + + +### ÐвтоматичеÑкое назначение веÑов ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ {: #replicaset_weight_change } + +Work in progress + + +### Первичное раÑпределение бакетов {: #governor_vshard_bootstrap } + +Work in progress + + +### ÐвтоматичеÑкое изменение конфигурации vshard {: #governor_vshard_cfg } + +Work in progress + + +### Применение изменений клаÑтерной Ñхемы данных {: #governor_schema_change } + +Governor гарантирует отказоуÑтойчивоÑÑ‚ÑŒ изменений клаÑтерной Ñхемы данных. +Подробнее алгоритм опиÑан [здеÑÑŒ](./clusterwide_schema.md#two_phase_algorithm). diff --git a/docs/overview/glossary.md b/docs/overview/glossary.md index bb9574bd..75cea7f8 100644 --- a/docs/overview/glossary.md +++ b/docs/overview/glossary.md @@ -226,7 +226,10 @@ Vclock репликаÑет-лидера играет важную роль в ### Губернатор (governor) {: #governor } -**Governor (губернатор)** — внутреннÑÑ Ñ†ÐµÐ½Ñ‚Ñ€Ð°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÑущноÑÑ‚ÑŒ, управлÑÑŽÑ‰Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñми и жизненными циклами инÑтанÑов в ÑоответÑтвие Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñми их грейдов. "Губернатор" выполнÑетÑÑ Ð½Ð° лидере raft-группы. +**Governor (губернатор)** — алгоритм автоматичеÑкого централизованного ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñми инÑтанÑов +(подробнее [здеÑÑŒ](../architecture/topology_management.md#governor)). +С точки Ð·Ñ€ÐµÐ½Ð¸Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ governor Ñто поток ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (fiber) вÑегда выполнÑющийÑÑ Ð½Ð° [raft-лидере](#raft_leader). +Governor управлÑет жизненными циклами инÑтанÑов Ñ€ÐµÐ°Ð³Ð¸Ñ€ÑƒÑ Ð½Ð° Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ñ… [грейдов](#grade). ### Крейт (crate) {: #crate } -- GitLab