aliases |
tags |
date |
zero-link |
parents |
linked |
|
|
|
|
|
|
- Выбирается ключ шардирвоания в таблице
- Ключ преобразуется с помощью хэш функции. F(key) -> shard_id
- По хэшу определяется шард
Плюсы:
- Равномерное и алгоритмическое распределение.
Минусы:
- Добавление/удаление шарда всегда боль. Так как хэш функция начинает возвращать другие результаты даже для уже имеющихся данных.
Популярные формулы хэширования:
- Если ключ цифровой, то можно просто поделить его на количество серверов, получив остаток от деления. Если это строка, то можно взять хэш функцию, которая даст число и уже его делить на количество серверов.
- Алгоритм crc32.
- какой-то мур-мур