Разделение данных и нагрузка
Как распределить работу и безопасно сменить владельца данных?
Содержание слайдов
1. Разделение данных и нагрузка
Как распределить работу и безопасно сменить владельца данных?
2. Равные данные не означают равную нагрузку
Начинаем с запросов сервиса задач.
3. Ключ выбирают под операции
Один порядок не ускорит все запросы.
4. Реплика и раздел решают разные задачи
Копия повышает сохранность; раздел распределяет данные.
5. Маршрут должен приводить к действующему владельцу
Размещение является версионируемым состоянием.
6. Диапазон сохраняет соседство ключей
Сканирование удобно; перекос остаётся возможным.
7. Хеширование меняет цену поиска диапазона
Точный ключ удобен; список требует сборки.
8. Смена делителя перемещает много ключей
Простой hash mod N связан с размером кластера.
9. Кольцо отделяет ключ от списка машин
Ключ выбирает следующую позицию по кругу.
10. Много токенов не создают независимых копий
Виртуальные позиции распределяют диапазоны.
11. Один горячий ключ переживает любое кольцо
Машин больше, владельцев одного ключа — один.
12. Горячий диапазон можно разделить
Но граница должна разделять активную работу.
13. Размер раздела задаёт цену перемещения
Мелкие части гибче, но требуют метаданных.
14. Ключ клиента концентрирует его нагрузку
Сравним две схемы на заданном профиле.
15. Дробление клиента меняет стоимость его списка
Распределённые записи требуют явного пути чтения.
16. Перенос начинается с сохраняемого свойства
Каждая подтверждённая запись должна остаться доступной.
Один действующий писатель
Подтверждённые записи сохранены
Повтор сохраняет идентичность
17. Снимок задаёт начало переноса
Новые записи пока принимает прежний владелец.
18. Копия догоняет поток до барьера
Одного завершённого копирования недостаточно.
19. Барьер останавливает появление новых пробелов
Завершаем старые записи и фиксируем границу.
20. Полномочия передаются вместе с поколением
Новый маршрут не должен оживить старого писателя.
21. Старый клиент обновляет маршрут перед повтором
Идентификатор операции переживает смену владельца.
22. Неопределённое переключение требует чтения решения
Тайм-аут изменения карты не означает отмену.
23. Ребалансировка измеряет и пользу, и ущерб
Копирование конкурирует с обычными запросами.
24. Спроектируйте ключ и безопасный перенос
Используйте входные данные раздатки.
Оценить горячий раздел
Найти потерянную запись
Задать условие переключения
25. Выбор ключа фиксирует будущие компромиссы
Сформулируйте решение через запросы и инварианты.
26. Решения для нашего сервиса
Выбрать ключ под операции и нагрузку.
Различить горячий ключ и горячий диапазон.
Обосновать барьер и проверку переноса.