Конфигурация без кворума: causal consistency поверх асинхронной мастер-мастер репликации

Архитектура и масштабируемость

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

Разработчики, архитекторы и просто люди, интересующиеся распределенными системами.

Тезисы

У нас была необходимость распространять конфигурацию по multi-tenant кластеру в условиях ненадёжного транспорта и с требованием автономной работы при нарушениях связности кластера. При этом было необходимо обеспечить предсказуемую выкатку конфигураций и непротиворечивое состояние всей системы.

Эти требования вычеркнули etcd, Consul и любой другой механизм на основе кворума: в момент сетевого раздела они выбирают консистентность ценой доступности.

Поэтому, взяв асинхронную master-master репликацию как транспорт изменений, мы сделали конкурентные изменения не аварией, а штатным режимом. Вместо того чтобы прятать eventual consistency, мы вынесли её в саму модель данных: в центре - tenant-scoped векторные часы, вокруг них immutable-снапшоты, изменения относительно конкретной базовой версии, детерминированный automerge и отдельные явные состояния для rollout, rollback и split-brain.

В докладе разберём, как выстраивается причинно-следственная история конфигурации без глобального порядка; почему снапшот новой активной конфигурации появляется только после успешного применения на всех узлах; как автоматически объединять непересекающиеся изменения без всякой координации; и почему конфликтующие изменения правильнее явно отклонить, чем тихо выбрать победителя.

Доклад будет полезен всем, кто проектирует распределённый control plane или систему управления конфигурациями, - и особенно тем, кто стоит перед выбором: достаточно ли здесь causal consistency или всё-таки нужен полноценный консенсус.

Олег Бабин

Веб-Сервер (Angie Software)

В IT более 8 лет. Практически всё это время занимался разработкой распределенных систем. Начинал свой путь с Tarantool в Mail.Ru Group, работал в Лаборатории Касперского. В настоящее время работаю в Angie Software. Увлекаюсь музыкой и скалолазанием.

Видео

Другие доклады секции

Архитектура и масштабируемость