diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 7ca723e4..55e13c7f 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -23,9 +23,17 @@ "markdownOnly": false, "unresolvedLinks": false, "recentFilesStore": [ + { + "filepath": "_inbox/Range Base Sharding.md", + "timestamp": 1721040234452 + }, { "filepath": "_inbox/Шардирование в БД.md", - "timestamp": 1721039784200 + "timestamp": 1721040232892 + }, + { + "filepath": "_inbox/Key Based Sharding.md", + "timestamp": 1721040132060 }, { "filepath": "_inbox/Партиционирование в БД.md", @@ -34,14 +42,6 @@ { "filepath": "_inbox/Партиционирование в PostgreSQL.md", "timestamp": 1721039299373 - }, - { - "filepath": "Решардинг.md", - "timestamp": 1721037859219 - }, - { - "filepath": "Home.md", - "timestamp": 1721037621404 } ], "bookmarkedFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index 677a3234..cda6b9ea 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,9 +1,17 @@ { "recentFiles": [ + { + "basename": "Range Base Sharding", + "path": "_inbox/Range Base Sharding.md" + }, { "basename": "Шардирование в БД", "path": "_inbox/Шардирование в БД.md" }, + { + "basename": "Key Based Sharding", + "path": "_inbox/Key Based Sharding.md" + }, { "basename": "Партиционирование в БД", "path": "_inbox/Партиционирование в БД.md" @@ -44,14 +52,6 @@ "basename": "Consistent hashing", "path": "_inbox/Consistent hashing.md" }, - { - "basename": "Range Base Sharding", - "path": "_inbox/Range Base Sharding.md" - }, - { - "basename": "Key Based Sharding", - "path": "_inbox/Key Based Sharding.md" - }, { "basename": "Directory Based Sharding", "path": "_inbox/Directory Based Sharding.md" diff --git a/_inbox/Key Based Sharding.md b/_inbox/Key Based Sharding.md index f9bfce37..70bb22da 100644 --- a/_inbox/Key Based Sharding.md +++ b/_inbox/Key Based Sharding.md @@ -21,4 +21,4 @@ linked: - Равномерное и алгоритмическое распределение. **Минусы:** -- Добавление/удаление шарда всегда боль. Так как хэш функция начинает возвращать другие результаты даже для уже имеющихся данных. \ No newline at end of file +- [Решардинг](Решардинг.md) всегда боль. Так как хэш функция начинает возвращать другие результаты даже для уже имеющихся данных. \ No newline at end of file diff --git a/_inbox/Шардирование в БД.md b/_inbox/Шардирование в БД.md index 9ad57816..1de4f170 100644 --- a/_inbox/Шардирование в БД.md +++ b/_inbox/Шардирование в БД.md @@ -40,7 +40,7 @@ linked: - [Решардинг](Решардинг.md) - [Согласованное префиксное чтение](Согласованное%20префиксное%20чтение.md) - При запросе SELECT FROM данные могут отдаться сначала все с одного шарда, потом с другого и так далее. -- Запросы не по ключу шардирования пройдут по всем узлам. +- Запросы не по ключу шардирования обойдут все узлы. - Запросы по диапазону ключей хэширования могут обойти все шарды. - Данные неравномерно распределились. - Попробовать подобрать лучше ключ шардирования/кэш функцию @@ -49,9 +49,11 @@ linked: - Держать нужные данные на одном шарде - Делать вычисления в одном сервисе -Обычно для распределения по шардам используется какая-то функция шардирования, в которую передается ключ. +Как выбрать ключ для шардирования и хэш функцию: +- Определиться, какой функционал для вашего бизнеса самый полезный. Какие запросы нужно выполнить, чтобы этот функционал работал. Как разбить данные так, чтобы данные запросы стали быстрее. +- Подумать о [Решардинг](Решардинг.md). Насколько легко будет добавлять и убирать шарды. -Популярные формулы хэширования: +Обычно для распределения по шардам используется какая-то функция шардирования, в которую передается ключ. Популярные формулы хэширования: - Если ключ цифровой, то можно просто поделить его на количество серверов, получив остаток от деления. Если это строка, то можно взять хэш функцию, которая даст число и уже его делить на количество серверов. - При изменении количества серверов будет большая головная боль с [решардингом](Решардинг.md), так как придется перетаскивать данные практически со всех шардов. - Алгоритм crc32. @@ -63,9 +65,6 @@ linked: - [Directory Based Sharding](Directory%20Based%20Sharding.md) - [Consistent hashing](Consistent%20hashing.md). Уменьшает боль от [решардинга](Решардинг.md). -Как выбрать ключ для шардирования и хэш функцию: -- Определиться, какой функционал для вашего бизнеса самый полезный. Какие запросы нужно выполнить, чтобы этот функционал работал. Как разбить данные так, чтобы данные запросы стали быстрее. -- Подумать о [Решардинг](Решардинг.md). Насколько легко будет добавлять и убирать шарды. Как направлять на шарды: - Умный клиент. Приложение само решает в какой шард идти