vault backup: 2024-07-13 20:35:45
This commit is contained in:
parent
1fbe045ced
commit
3415d013ae
20
.obsidian/plugins/home-tab/data.json
vendored
20
.obsidian/plugins/home-tab/data.json
vendored
@ -25,23 +25,23 @@
|
|||||||
"recentFilesStore": [
|
"recentFilesStore": [
|
||||||
{
|
{
|
||||||
"filepath": "_inbox/Шардирование в PostgreSQL.md",
|
"filepath": "_inbox/Шардирование в PostgreSQL.md",
|
||||||
"timestamp": 1720891812342
|
"timestamp": 1720891966605
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filepath": "_inbox/Шардирование в БД.md",
|
"filepath": "_inbox/Шардирование в БД.md",
|
||||||
"timestamp": 1720891792171
|
"timestamp": 1720891915227
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filepath": "Решардинг.md",
|
||||||
|
"timestamp": 1720891912711
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filepath": "_inbox/Consistent hashing.md",
|
||||||
|
"timestamp": 1720891856196
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filepath": "_inbox/Согласованное префиксное чтение.md",
|
"filepath": "_inbox/Согласованное префиксное чтение.md",
|
||||||
"timestamp": 1720891715978
|
"timestamp": 1720891715978
|
||||||
},
|
|
||||||
{
|
|
||||||
"filepath": "_inbox/Партиционирование в БД.md",
|
|
||||||
"timestamp": 1720891574502
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filepath": "_inbox/Партиционирование в PostgreSQL.md",
|
|
||||||
"timestamp": 1720890853115
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bookmarkedFileStore": [],
|
"bookmarkedFileStore": [],
|
||||||
|
@ -8,6 +8,14 @@
|
|||||||
"basename": "Шардирование в БД",
|
"basename": "Шардирование в БД",
|
||||||
"path": "_inbox/Шардирование в БД.md"
|
"path": "_inbox/Шардирование в БД.md"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"basename": "Решардинг",
|
||||||
|
"path": "Решардинг.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Consistent hashing",
|
||||||
|
"path": "_inbox/Consistent hashing.md"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"basename": "Согласованное префиксное чтение",
|
"basename": "Согласованное префиксное чтение",
|
||||||
"path": "_inbox/Согласованное префиксное чтение.md"
|
"path": "_inbox/Согласованное префиксное чтение.md"
|
||||||
@ -191,14 +199,6 @@
|
|||||||
{
|
{
|
||||||
"basename": "laminat-bez-porogov",
|
"basename": "laminat-bez-porogov",
|
||||||
"path": "meta/files/laminat-bez-porogov.jpg"
|
"path": "meta/files/laminat-bez-porogov.jpg"
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "don-karniz-1-1-min.2cda3db99d204da5e2c26e722e63ea04120",
|
|
||||||
"path": "meta/files/don-karniz-1-1-min.2cda3db99d204da5e2c26e722e63ea04120.jpg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Pasted image 20231008173416",
|
|
||||||
"path": "meta/files/Pasted image 20231008173416.png"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"omittedPaths": [],
|
"omittedPaths": [],
|
||||||
|
@ -10,4 +10,7 @@ parents:
|
|||||||
- "[[Шардирование в БД]]"
|
- "[[Шардирование в БД]]"
|
||||||
linked:
|
linked:
|
||||||
---
|
---
|
||||||
В [PostgreSQL](00%20PostgreSQL.md) есть шардирование из коробки, но оно реализовано на базе [партиционирования](Партиционирование%20в%20БД.md). Фактически партиции уезжают на отдельные сервера. Решардинг это боль, так как должен выполняться вручную.
|
В [PostgreSQL](00%20PostgreSQL.md) есть шардирование из коробки, но оно реализовано на базе [партиционирования](Партиционирование%20в%20БД.md). Фактически партиции уезжают на отдельные сервера. [Решардинг](Решардинг.md) это боль, так как должен выполняться вручную.
|
||||||
|
|
||||||
|
Данные от 2017 года
|
||||||
|
![](Pasted%20image%2020240713203302.png)
|
@ -37,7 +37,10 @@ linked:
|
|||||||
- **Трудности с транзакциями и согласованностью**: Шардирование может затруднить обеспечение атомарности и согласованности транзакций, охватывающих несколько шардов, что может потребовать дополнительных усилий для поддержания целостности данных.
|
- **Трудности с транзакциями и согласованностью**: Шардирование может затруднить обеспечение атомарности и согласованности транзакций, охватывающих несколько шардов, что может потребовать дополнительных усилий для поддержания целостности данных.
|
||||||
|
|
||||||
**Проблемы:**
|
**Проблемы:**
|
||||||
|
- [Решардинг](Решардинг.md)
|
||||||
- [Согласованное префиксное чтение](Согласованное%20префиксное%20чтение.md)
|
- [Согласованное префиксное чтение](Согласованное%20префиксное%20чтение.md)
|
||||||
|
- Запросы не по ключу пройдут по всем узлам.
|
||||||
|
- Запросы по диапазону ключей хэширования могут обойти все шарды.
|
||||||
- Данные неравномерно распределились.
|
- Данные неравномерно распределились.
|
||||||
- Попробовать подобрать лучше ключ шардирования/кэш функцию
|
- Попробовать подобрать лучше ключ шардирования/кэш функцию
|
||||||
- Решардинг
|
- Решардинг
|
||||||
@ -49,6 +52,7 @@ linked:
|
|||||||
- [Key Based Sharding](Key%20Based%20Sharding.md). Наиболее распространенный способ.
|
- [Key Based Sharding](Key%20Based%20Sharding.md). Наиболее распространенный способ.
|
||||||
- [Range Base Sharding](Range%20Base%20Sharding.md).
|
- [Range Base Sharding](Range%20Base%20Sharding.md).
|
||||||
- [Directory Based Sharding](Directory%20Based%20Sharding.md)
|
- [Directory Based Sharding](Directory%20Based%20Sharding.md)
|
||||||
|
- [Consistent hashing](Consistent%20hashing.md). Уменьшает боль от [решардинга](Решардинг.md)
|
||||||
|
|
||||||
Роутинг на шарды:
|
Роутинг на шарды:
|
||||||
- Умный клиент. Приложение само решает в какой шард идти
|
- Умный клиент. Приложение само решает в какой шард идти
|
||||||
@ -64,17 +68,6 @@ linked:
|
|||||||
|
|
||||||
Реализации в СУБД:
|
Реализации в СУБД:
|
||||||
- [Шардирование в PostgreSQL](Шардирование%20в%20PostgreSQL.md)
|
- [Шардирование в PostgreSQL](Шардирование%20в%20PostgreSQL.md)
|
||||||
## Решардинг
|
|
||||||
При добавлении/удалении ноды нужно провести решардинг. Перенести старые данные на новые узлы.
|
|
||||||
|
|
||||||
Лучше если количество нод будет равно степени 2. Формула shard_Id % count.
|
|
||||||
- 16 записей на 8 шардов -> 2 записи на шард
|
|
||||||
- 16 записей на 16 шардов -> 1 запись на шард
|
|
||||||
|
|
||||||
- [Consistent hashing](Consistent%20hashing.md)
|
|
||||||
|
|
||||||
## Заметки
|
## Заметки
|
||||||
- Как и в случае [партиционирования](Партиционирование%20в%20БД.md) запросы по ключу шардирования ускорятся.
|
- Как и в случае [партиционирования](Партиционирование%20в%20БД.md) запросы по ключу шардирования ускорятся.
|
||||||
- Запросы не по ключу пройдут по всем узлам.
|
|
||||||
- Запросы по диапазону ключей хэширования могут обойти все шарды.
|
|
||||||
- Можно создавать различные индексы на узлах. При этом может оказаться так, что индексы на исходной таблице могут не подойди для шардирования.
|
- Можно создавать различные индексы на узлах. При этом может оказаться так, что индексы на исходной таблице могут не подойди для шардирования.
|
BIN
meta/files/Pasted image 20240713203302.png
Normal file
BIN
meta/files/Pasted image 20240713203302.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
17
Решардинг.md
Normal file
17
Решардинг.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
tags:
|
||||||
|
- зрелость/🌱
|
||||||
|
date:
|
||||||
|
- - 2024-07-13
|
||||||
|
zero-link:
|
||||||
|
- "[[00 Базы Данных]]"
|
||||||
|
parents:
|
||||||
|
- "[[Шардирование в БД]]"
|
||||||
|
linked:
|
||||||
|
---
|
||||||
|
При добавлении/удалении ноды нужно провести решардинг. Перенести старые данные на новые узлы.
|
||||||
|
|
||||||
|
Лучше если количество нод будет равно степени 2. Формула shard_Id % count.
|
||||||
|
- 16 записей на 8 шардов -> 2 записи на шард
|
||||||
|
- 16 записей на 16 шардов -> 1 запись на шард
|
Loading…
Reference in New Issue
Block a user