System Design. Подготовка к сложному интервью - Глава 5 - Консистентное хэширование
Консистентное хеширование является краеугольной технологией для распределенных систем. Многие разработчики программного обеспечения этого не осознают, но консистентное хеширование необходимо во многих местах: балансировщики нагрузки, кэши, CDN, генераторы id, базы данных, чаты/социальные сети и многие другие системы.
Эта тема состоит из:
- Проблема с перехешированием и почему нам нужно, чтобы хеширование было ПОСЛЕДОВАТЕЛЬНЫМ
- Хэш-пространство и хэш-кольцо
- БАЗОВЫЙ подход (введенный Каргером и др. в MIT)
- Расширенный подход с ВИРТУАЛЬНЫМИ УЗЛАМИ
Эти моменты раскрыты в очень интересной главе 5 книги: