vault backup: 2024-07-11 08:48:53
This commit is contained in:
parent
de9a10e1c6
commit
9abe4ec094
14
.obsidian/plugins/home-tab/data.json
vendored
14
.obsidian/plugins/home-tab/data.json
vendored
@ -24,12 +24,16 @@
|
|||||||
"unresolvedLinks": false,
|
"unresolvedLinks": false,
|
||||||
"recentFilesStore": [
|
"recentFilesStore": [
|
||||||
{
|
{
|
||||||
"filepath": "_inbox/Репликация master-master.md",
|
"filepath": "_inbox/Синхронная репликация.md",
|
||||||
"timestamp": 1720676085556
|
"timestamp": 1720676657416
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filepath": "_inbox/Репликация БД.md",
|
"filepath": "_inbox/Репликация БД.md",
|
||||||
"timestamp": 1720676082682
|
"timestamp": 1720676654276
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filepath": "_inbox/Репликация master-master.md",
|
||||||
|
"timestamp": 1720676085556
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filepath": "_inbox/Журналы в MySQL.md",
|
"filepath": "_inbox/Журналы в MySQL.md",
|
||||||
@ -38,10 +42,6 @@
|
|||||||
{
|
{
|
||||||
"filepath": "_inbox/Write-Ahead Log.md",
|
"filepath": "_inbox/Write-Ahead Log.md",
|
||||||
"timestamp": 1720675855378
|
"timestamp": 1720675855378
|
||||||
},
|
|
||||||
{
|
|
||||||
"filepath": "_inbox/Журнал БД.md",
|
|
||||||
"timestamp": 1720675813187
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bookmarkedFileStore": [],
|
"bookmarkedFileStore": [],
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
{
|
{
|
||||||
"recentFiles": [
|
"recentFiles": [
|
||||||
{
|
{
|
||||||
"basename": "Репликация master-master",
|
"basename": "Синхронная репликация",
|
||||||
"path": "_inbox/Репликация master-master.md"
|
"path": "_inbox/Синхронная репликация.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"basename": "Репликация БД",
|
"basename": "Репликация БД",
|
||||||
"path": "_inbox/Репликация БД.md"
|
"path": "_inbox/Репликация БД.md"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"basename": "Репликация master-master",
|
||||||
|
"path": "_inbox/Репликация master-master.md"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"basename": "Журналы в MySQL",
|
"basename": "Журналы в MySQL",
|
||||||
"path": "_inbox/Журналы в MySQL.md"
|
"path": "_inbox/Журналы в MySQL.md"
|
||||||
@ -195,10 +199,6 @@
|
|||||||
{
|
{
|
||||||
"basename": "Exchange Topics",
|
"basename": "Exchange Topics",
|
||||||
"path": "_inbox/Exchange Topics.md"
|
"path": "_inbox/Exchange Topics.md"
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Exchange Headers",
|
|
||||||
"path": "_inbox/Exchange Headers.md"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"omittedPaths": [],
|
"omittedPaths": [],
|
||||||
|
@ -12,21 +12,22 @@ linked:
|
|||||||
- "[[Асинхронная репликация]]"
|
- "[[Асинхронная репликация]]"
|
||||||
- "[[Полу-синхронная репликация]]"
|
- "[[Полу-синхронная репликация]]"
|
||||||
---
|
---
|
||||||
Если коммит прошел, то он прошел на всех репликах. Работает надежно, но медленно.
|
При получении запроса от клиента master ожидает, пока все реплики получат новые данные и подтвердят их применение у себя, и только после этого сообщает клиенту, что запрос успешно выполнен. Работает надежно, но медленно.
|
||||||
|
|
||||||
Реализовано в [PostgreSQL](00%20PostgreSQL.md).
|
Реализовано в [PostgreSQL](00%20PostgreSQL.md).
|
||||||
|
|
||||||
**Как работает**:
|
**Как работает**:
|
||||||
- Подготовка транзакции в движке БД
|
- Подготовка транзакции в движке БД: Транзакция начинается на главном сервере (мастере), где собираются все изменения данных.
|
||||||
- Запись транзакции в лог
|
- Запись транзакции в лог: Все изменения записываются в журнал транзакций, что обеспечивает возможность восстановления данных в случае сбоя.
|
||||||
- Пересылка лога репликам
|
- Пересылка лога репликам: Журнал транзакций отправляется на все реплики для синхронного применения изменений.
|
||||||
- Выполнение транзакций на репликах
|
- Выполнение транзакций на репликах: Реплики применяют полученные изменения к своим копиям данных.
|
||||||
- Завершение транзакции в движке БД
|
- Завершение транзакции в движке БД: После успешного применения изменений на всех репликах транзакция завершается.
|
||||||
- Возврат результата клиенту
|
- Возврат результата клиенту: Клиент получает подтверждение о завершении транзакции только после того, как изменения применены на всех репликах.
|
||||||
|
|
||||||
**Плюсы:**
|
**Плюсы:**
|
||||||
- Надежная. Данные не теряются из-за сбоя.
|
- Высокая надежность данных: Данные не теряются даже в случае сбоя одного из серверов, так как изменения применяются на всех репликах одновременно.
|
||||||
|
- Консистентность данных: Обеспечивается консистентность данных на всех репликах, что исключает возможность получения различных результатов для одного и того же запроса.
|
||||||
|
|
||||||
**Минусы:**
|
**Минусы:**
|
||||||
- Увеличивается время отклика. Ждем подтверждение от всех узлов
|
- Увеличенное время отклика: Поскольку подтверждение транзакции возвращается клиенту только после её завершения на всех репликах, время отклика увеличивается. Это может негативно сказаться на производительности системы, особенно при большом количестве реплик.
|
||||||
- Вероятность сбоя увеличивается с увеличением количества узлов. Общая вероятность сбоя это перемножение вероятности сбоя каждого узла.
|
- Высокая вероятность сбоев: С увеличением числа реплик общая вероятность сбоя возрастает, так как транзакция завершается только при успешном выполнении на всех репликах. Если хотя бы одна реплика не отвечает, транзакция не может быть завершена.
|
Loading…
Reference in New Issue
Block a user