Выбор ответа Middle Масштабирование обновлено
Почему не hash % N
Вопрос
Ключи распределены по 4 узлам кеша формулой hash(key) % 4. Добавили пятый узел. Что произойдёт?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Переедет около 80% ключей. Ключ остаётся на месте, только если hash % 4 == hash % 5, а это верно примерно для 1/5 ключей.
Варианты ответа
- Переедет примерно 1/5 ключей
- Ни один ключ не переедет
- Переедут лишь ключи последнего узла
- Переедет около 80% ключейправильный ответ
Разбор
Ключ остаётся на месте, только если hash % 4 == hash % 5, а это верно примерно для 1/5 ключей. Остальные около 80% меняют узел, и кеш почти полностью промахивается, нагрузка уходит в БД. Именно эту проблему решает консистентное хеширование: при добавлении узла переезжает около 1/N ключей.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.