diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 1ac06361..873d9b85 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": 1718909771420 + "filepath": "_inbox/Key Based Sharding.md", + "timestamp": 1718910242721 }, { "filepath": "_inbox/Шардирование в БД.md", - "timestamp": 1718909535878 + "timestamp": 1718910222388 + }, + { + "filepath": "Партиционирование в БД.md", + "timestamp": 1718909771420 }, { "filepath": "_inbox/Горизонтальное масштабирование.md", @@ -38,10 +42,6 @@ { "filepath": "_inbox/Вертикальное масштабирование.md", "timestamp": 1718909525308 - }, - { - "filepath": "_inbox/Шардирование - OTUS.md", - "timestamp": 1718908901467 } ], "bookmarkedFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index 81dd835b..07c9517e 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": "Key Based Sharding", + "path": "_inbox/Key Based Sharding.md" }, { "basename": "Шардирование в БД", "path": "_inbox/Шардирование в БД.md" }, + { + "basename": "Партиционирование в БД", + "path": "Партиционирование в БД.md" + }, { "basename": "Горизонтальное масштабирование", "path": "_inbox/Горизонтальное масштабирование.md" @@ -195,10 +199,6 @@ { "basename": "00 Разработка", "path": "wiki/zero/00 Разработка.md" - }, - { - "basename": "Java Разработка", - "path": "knowledge/dev/java/Java Разработка.md" } ], "omittedPaths": [], diff --git a/_inbox/Key Based Sharding.md b/_inbox/Key Based Sharding.md new file mode 100644 index 00000000..22c86adc --- /dev/null +++ b/_inbox/Key Based Sharding.md @@ -0,0 +1,16 @@ +--- +aliases: +tags: + - зрелость/🌱 +date: + - - 2024-06-20 +zero-link: + - "[[00 Архитектура ПО]]" +parents: + - "[[Шардирование в БД]]" +linked: +--- +![](Pasted%20image%2020240620220323.png) + +- Выбирается ключ шардирвоания в таблице +- \ No newline at end of file diff --git a/_inbox/Шардирование в БД.md b/_inbox/Шардирование в БД.md index f697cf26..a7fde1eb 100644 --- a/_inbox/Шардирование в БД.md +++ b/_inbox/Шардирование в БД.md @@ -13,9 +13,10 @@ linked: - "[[Партиционирование в БД]]" --- ## Тезисы -- Один из вариантов масштабирования +- Один из вариантов масштабирования. - Данные разбиваются на части. Части размещаются на разных серверах. -- Не является [репликацией](_inbox/Репликация.md) и [партиционированием](Партиционирование%20в%20БД.md) +- Не является [репликацией](_inbox/Репликация.md) и [партиционированием](Партиционирование%20в%20БД.md). +- Шардирование последняя мера по улучшению производительности. *** Шардирование — это метод разделения и распределения больших объёмов данных по разным базам данных или узлам в рамках одной распределённой системы, чтобы облегчить их управление, обеспечить масштабируемость и повысить производительность. Каждая часть данных, или "шард", функционирует как отдельная база данных, и все шарды вместе образуют логически единую базу данных. @@ -32,13 +33,13 @@ linked: - **Высокая доступность и устойчивость к отказам**: Отказ одного шарда не приводит к полному сбою системы. Данные в остальных шардах остаются доступными, что повышает общую устойчивость системы к отказам. **Минусы:** -- **Сложность управления**: Управление множеством шардов и обеспечение их синхронизации может быть сложной задачей, требующей продвинутых решений для мониторинга, резервного копирования и восстановления. -- **Сложность проектирования**: Приложениям, использующим шардированные базы данных, часто требуется более сложная архитектура и дизайн базы данных, а также изменения в логике приложения для эффективного распределения и доступа к данным. +- **Сложность управления**: Нет стандартных механизмов по управлению шардами. В случае добавления или удаления шардов может потребоваться перераспределение больших объемов данных, что может быть ресурсоемкой операцией и повлиять на производительность системы. - **Трудности с транзакциями и согласованностью**: Шардирование может затруднить обеспечение атомарности и согласованности транзакций, охватывающих несколько шардов, что может потребовать дополнительных усилий для поддержания целостности данных. -- **Перераспределение данных**: В случае добавления или удаления шардов может потребоваться перераспределение больших объемов данных, что может быть ресурсоемкой операцией и повлиять на производительность системы. **Проблемы** - [Согласованное префиксное чтение](Согласованное%20префиксное%20чтение.md) +Стратегии разбиения на шарды +- [Key Based Sharding](Key%20Based%20Sharding.md) ## Заметки - Реализации шардирования могут мешать [JOIN SQL](JOIN%20SQL.md) \ No newline at end of file diff --git a/meta/files/Pasted image 20240620220323.png b/meta/files/Pasted image 20240620220323.png new file mode 100644 index 00000000..a328f96f Binary files /dev/null and b/meta/files/Pasted image 20240620220323.png differ