Clusterwide spaces
Кластерные спейсы нужны в первую очередь для управления самим кластером, но могут применяться и для каких-нибудь справочников.
Идея кластерных спейсов заключается в том, что пикодата предоставляет основанный на raft журнале API доступа к данным. Содержимое этих спейсов одинаково на каждом инстансе.
ACID
-
Atomic - что касается записи, пока можно и одной операцией ограничиться. Если надо будет - объединим несколько операций в одной raft entry. Куда более важно обеспечить атомарность чтения + записи. -
Consistent - обеспечивается автоматически, покуда никакие шаловливые ручки не трогают кластерные спейсы в обход рафт журнала. -
Isolation - самый животрепещущий вопрос. Какой уровень изоляции транзакци может и собрается предоставить пикодата? Я думаю, serializable. -
Durable - автоматически обеспечивается рафтом.
Onboarding
-
Все "системные" спейсы (picodata_instance, picodata_replicaset, picodata_migration) не хардкодятся, а создаются через единый механизм clusterwide ddl. -
Все кластерные операции выполняются посредством этого clusterwide dml: -
join -
update peers target_grade -
update peers current_grade (by governor) -
add migration
-
Edited by Yaroslav Dynnikov