2024-06-20 22:04:23 +03:00
|
|
|
|
---
|
2024-06-20 22:09:23 +03:00
|
|
|
|
aliases:
|
|
|
|
|
- hash based
|
2024-06-20 22:04:23 +03:00
|
|
|
|
tags:
|
|
|
|
|
- зрелость/🌱
|
|
|
|
|
date:
|
|
|
|
|
- - 2024-06-20
|
|
|
|
|
zero-link:
|
2024-06-21 09:51:54 +03:00
|
|
|
|
- "[[00 Алгоритмы]]"
|
2024-06-20 22:04:23 +03:00
|
|
|
|
parents:
|
|
|
|
|
- "[[Шардирование в БД]]"
|
|
|
|
|
linked:
|
2024-06-30 11:11:56 +03:00
|
|
|
|
- "[[Directory Based Sharding]]"
|
2024-06-20 22:04:23 +03:00
|
|
|
|
---
|
|
|
|
|
![](Pasted%20image%2020240620220323.png)
|
|
|
|
|
|
|
|
|
|
- Выбирается ключ шардирвоания в таблице
|
2024-06-20 22:09:23 +03:00
|
|
|
|
- Ключ преобразуется с помощью хэш функции. F(key) -> shard_id
|
|
|
|
|
- По хэшу определяется шард
|
|
|
|
|
|
|
|
|
|
**Плюсы:**
|
|
|
|
|
- Равномерное и алгоритмическое распределение.
|
|
|
|
|
|
|
|
|
|
**Минусы:**
|
|
|
|
|
- Добавление/удаление шарда всегда боль. Так как хэш функция начинает возвращать другие результаты даже для уже имеющихся данных.
|
|
|
|
|
|
|
|
|
|
Популярные формулы хэширования:
|
|
|
|
|
- cc32
|
|
|
|
|
- какой-то мур-мур
|