View
2.309
Download
4
Category
Preview:
Citation preview
Синхронная репликация БД:какая от неё польза?
Алексей Юрченко
2
В программе
1. Мифы о синхронной репликации.
2. Какая репликация «достаточно» синхронна?
3. Синхронный Multi-Master как способ географически приблизить сервер к клиенту.
4. Тесты производительности на расстоянии 6000 км.
Мифы о синхронной репликации.
Что такое синхронная репликация?
COMMIT
репликация
OK
Клиент Master Slave
CO
MM
IT
!Опасностьпотери данных
Aсинхронная репликация:
Что такое синхронная репликация?
COMMITрепликация
подтверждение
OK
Клиент Master Slave
CO
MM
IT
Синхронная репликация:
Дополнительнаязадержка
6
Поиск в Google: “synchronous replication”1.RiskyThinking: неприменима в глобальных сетях.
2.TechTarget: работает только до 300 км
3.TechTarget: правда о синхронной репликации: асинхронная репликация защищает данные лучше синхронной!
4. Axxana: “требует дорогого высокопроизводительного
a) оборудования,
b) программного обеспечения
c) линий связи”
Что значит “синхронная”?
8
Синхронная или полу-синхронная?
Всё сводится к следующему вопросу:
Останавливаем ли мы работу мастера в случае сбоя на слэйве?
9
Синхронная или полу-синхронная?
Всё сводится к следующему вопросу:
Останавливаем ли мы работу мастера в случае сбоя на слэйве?
- Конечно нет.
10
Синхронная или полу-синхронная?
Вывод:
Полу-синхронная репликация достаточно “синхронна”!
11
Синхронная или полу-синхронная?
Следствие 1:
Синхронная репликация настолько же дорогая и медленная, как копирование
данных по сети.
12
Синхронная или полу-синхронная?
Следствие 2:
Синхронная репликация практически настолько же требовательна к
ресурсам, как и асинхронная.
13
Преимущества синхронной репликации
Итак, синхронная репликация предотвращает потерю данных при сбое
главного сервера.
(так себе новость)
Это всё?
Глобальный доступ к центральной базе данных.
15
Доступ к данным в глобальном масштабе
→ отказ от глобального доступа
Глобальныеданные
Региональныеданные
Региональныеданные
Локальныеклиенты
Локальныеклиенты
16
Доступ к данным в глобальном масштабе
Географическое разделение данных не всегда желательно или возможно
→ доступ к центральной базе.
Synchronous Multi-Master
18
Синхронный Multi-Master
Aсинхронный multi-master обнаруживает конфликты слишком поздно.→ требуется разделение данных:
BA
AB
Клиенты Клиенты
← Master← Slave
Master →Slave → Асинхронная
репликация
19
Синхронный Multi-Master
Синхронный multi-master обнаруживает и разрешает конфликты до коммита транзакции.→ разделения данных не требуется!
общаябаза
общаябаза
Клиенты Клиенты
Синхроннаярепликация
← MasterMaster →
Тесты производительности
1. Централизованный доступ:
21
eu-westus-east
Тесты: конфигурация
m1.large
Клиент Клиент
Virginia, US Ireland, EU~6000 км, время отклика ~90 мс
2. Глобальная синхронизация:
22
eu-westus-east
Тесты: конфигурация
m1.large m1.large
Клиент Клиент
Virginia, US Ireland, EU~6000 км, время отклика ~90 мс
23
Тесты: конфигурация
Нагрузка: Sysbench OLTP 10M rows
Метрики: среднее и 95% время исполнения,общая производительность.
Умеренная нагрузка: 8 клиентов
Высокая нагрузка: 64 клиента
Умеренная нагрузка - средние задержкиКлиент Centralized Replicated эффект
us-east 28.03 119,80 ~4.3x
eu-west 1953.89 122.92 ~0.06x
Высокая нагрузка - 95% задержкиКлиент Centralized Replicated эффект
us-east 59.32 150.66 ~2.5x
eu-west 2071.49 157.11 ~0.08x
Высокая нагрузка - средние задержкиКлиент Centralized Replicated эффект
us-east 213.11 270.00 ~1.3x
eu-west 2039.16 264.95 ~0.13x
Высокая нагрузка - 95% задержкиКлиент Centralized Replicated эффект
us-east 387.16 416.24 ~1.07x
eu-west 2209.19 421.76 ~0.19x
Клиент Centralized Replicated Эффект
us-east 300.10 236.89~1.5x
eu-west 31.07 241.49
Высокая нагрузка - общая производительность
Обсуждение
30
Как это работает?
Master SlaveКлиентЧтение, запись,
прочие команды
толькозапись
Синхронизация client↔server гораздо “тяжелее”, чемmaster↔slave
31
Как это работает?
Master SlaveКлиентЧтение,Запись,
проч.
толькозапись
Синхронизация client↔server гораздо “тяжелее”, чемmaster↔slave→ сервер надо “придвинуть” как можно ближе к клиенту
32
Как бороться с задержкой синхронизации?
– Так же, как и с любыми другими задержками:
А. – минимизировать эффект путём использования более длинных транзакций – чем длиннее транзакция, тем реже происходит синхронизация.
Б. – использовать большее количество одновременных сессий – пока одна сессия ждёт синхронизации, другая может использовать свободные ресурсы сервера.
33
Программное обеспечение
Тесты были проведены с использованием
MySQL 5.5.20, wsrep patch 23.4 & Galera 2.0
Download:
http://www.codership.com/downloads/download-mysqlgalera
Вопросы?
Спасибо за внимание!
Happy Clustering :-)
Recommended