diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 873d9b85..fcdbef9c 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -25,11 +25,11 @@ "recentFilesStore": [ { "filepath": "_inbox/Key Based Sharding.md", - "timestamp": 1718910242721 + "timestamp": 1718910399246 }, { "filepath": "_inbox/Шардирование в БД.md", - "timestamp": 1718910222388 + "timestamp": 1718910383022 }, { "filepath": "Партиционирование в БД.md", diff --git a/_inbox/Key Based Sharding.md b/_inbox/Key Based Sharding.md index 22c86adc..4c52e4cc 100644 --- a/_inbox/Key Based Sharding.md +++ b/_inbox/Key Based Sharding.md @@ -1,5 +1,6 @@ --- -aliases: +aliases: + - hash based tags: - зрелость/🌱 date: @@ -13,4 +14,15 @@ linked: ![](Pasted%20image%2020240620220323.png) - Выбирается ключ шардирвоания в таблице -- \ No newline at end of file +- Ключ преобразуется с помощью хэш функции. F(key) -> shard_id +- По хэшу определяется шард + +**Плюсы:** +- Равномерное и алгоритмическое распределение. + +**Минусы:** +- Добавление/удаление шарда всегда боль. Так как хэш функция начинает возвращать другие результаты даже для уже имеющихся данных. + +Популярные формулы хэширования: +- cc32 +- какой-то мур-мур \ No newline at end of file diff --git a/_inbox/Шардирование в БД.md b/_inbox/Шардирование в БД.md index a7fde1eb..75c64f33 100644 --- a/_inbox/Шардирование в БД.md +++ b/_inbox/Шардирование в БД.md @@ -40,6 +40,6 @@ linked: - [Согласованное префиксное чтение](Согласованное%20префиксное%20чтение.md) Стратегии разбиения на шарды -- [Key Based Sharding](Key%20Based%20Sharding.md) +- [Key Based Sharding](Key%20Based%20Sharding.md). Наиболее распространенный способ. ## Заметки - Реализации шардирования могут мешать [JOIN SQL](JOIN%20SQL.md) \ No newline at end of file