Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information