diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 5f50aba4..ee0416ca 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -24,12 +24,16 @@ "unresolvedLinks": false, "recentFilesStore": [ { - "filepath": "Решардинг.md", - "timestamp": 1721040878748 + "filepath": "_inbox/Consistent hashing.md", + "timestamp": 1721041001580 }, { "filepath": "_inbox/Шардирование в БД.md", - "timestamp": 1721040873038 + "timestamp": 1721041000638 + }, + { + "filepath": "Решардинг.md", + "timestamp": 1721040878748 }, { "filepath": "_inbox/Directory Based Sharding.md", @@ -38,10 +42,6 @@ { "filepath": "_inbox/Range Base Sharding.md", "timestamp": 1721040234452 - }, - { - "filepath": "_inbox/Key Based Sharding.md", - "timestamp": 1721040132060 } ], "bookmarkedFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index f2ee8778..8e7f0e44 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,13 +1,17 @@ { "recentFiles": [ { - "basename": "Решардинг", - "path": "Решардинг.md" + "basename": "Consistent hashing", + "path": "_inbox/Consistent hashing.md" }, { "basename": "Шардирование в БД", "path": "_inbox/Шардирование в БД.md" }, + { + "basename": "Решардинг", + "path": "Решардинг.md" + }, { "basename": "Directory Based Sharding", "path": "_inbox/Directory Based Sharding.md" @@ -52,10 +56,6 @@ "basename": "Произношение", "path": "_inbox/Произношение.md" }, - { - "basename": "Consistent hashing", - "path": "_inbox/Consistent hashing.md" - }, { "basename": "00 Базы Данных", "path": "wiki/zero/00 Базы Данных.md" diff --git a/_inbox/Consistent hashing.md b/_inbox/Consistent hashing.md index 9a0dc94d..1ca600ed 100644 --- a/_inbox/Consistent hashing.md +++ b/_inbox/Consistent hashing.md @@ -12,6 +12,8 @@ linked: --- Представим, что весь диапазон нашей хэш функции можно отобразить на окружности (0 до 32 или от -32 до 32). Хэшфункция указывает место на круге. Хэш-функция используется для определения места узлов на круге. Этаже хэш функция используется для определения значения ключей на круге. Выбирается ближайший по часовой стрелке узел. +![](Pasted%20image%2020240715135645.png) + **Плюсы:** - При добавлении/удалении шардов затрагивается только часть данных. @@ -21,7 +23,11 @@ linked: ## Virtual Nodes (Bucket) Можно попытаться решить проблему неравноморного распределения. Для этого мы добавим виртуальные шарды: для одной ноды определяется несколько точек на круге. -Такой подход используется в [Cassandra](Cassandra.md) +Такой подход используется в [Cassandra](Cassandra.md). + +Плюсы: +- Более равномерное распределение. +- Можно использовать сервера разной конфигурации, опеределяя ## Дополнительные материалы - Есть какая-то библиотека Guava/Sumbur \ No newline at end of file diff --git a/meta/files/Pasted image 20240715135645.png b/meta/files/Pasted image 20240715135645.png new file mode 100644 index 00000000..9ad6dabb Binary files /dev/null and b/meta/files/Pasted image 20240715135645.png differ diff --git a/Решардинг.md b/Решардинг.md index 03edf25b..5ace2158 100644 --- a/Решардинг.md +++ b/Решардинг.md @@ -15,7 +15,5 @@ linked: Кого задевает процесс решардинга: - Клиентов, так как в момент решардинга могут возникать ошибки из-за не консистентности данных - Сеть, так как по сети передаются данные из одного шарда в другой - - ## Заметки - Что если не переносить записи сразу, а сначала обращаться по новому значению хэш функции, а потом по старому. Таким образом можно в фоне мигрировать данные. \ No newline at end of file