Почему для количества шардов удобна степень двойки, а не, например, тройка?

Для числа шардов 2^k остаток от деления неотрицательного хеша можно заменить маской hash & (n-1). Это удобно, но не гарантирует лучшее распределение.

Короткий ответ

Что ответить на собеседовании

Для числа шардов 2^k остаток от деления неотрицательного хеша можно заменить маской hash & (n-1). Это удобно, но не гарантирует лучшее распределение.

Подробный разбор

Ответ с пояснениями

Для числа шардов 2^k остаток от деления неотрицательного хеша можно заменить маской hash & (n-1). Это удобно, но не гарантирует лучшее распределение.

Нужен качественный хеш, в том числе его младшие биты: маска использует именно их. Три шарда тоже допустимы через остаток от деления, а современный компилятор может оптимизировать вычисления. Реальные критерии — конкуренция, горячие ключи и стоимость миграции. Не выбирайте число шардов исключительно ради одной дешёвой операции.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее