03_tvtdqhk

advertisement
Поддержка кластерных решений и
разделения модулей на разные базы
данных
Максим, Смирнов
программист
Репликация в MySQL
•
•
Позволяет настроить копирование данных
с основной базы данных (master) на подчиненные (slaves).
Это асинхронный процесс
может быть запущен и остановлен по требованию.
репликация
MySQL master
MySQL slave
MySQL slave
Как работает репликация
• MySQL (master) выполняет запрос
и записывает его в журнал изменений;
• MySQL (slave) отдельным потоком подключается к мастеру
и переносит запись в свой журнал изменений;
• MySQL (slave) отдельным потоком выполняет запрос.
MySQL Master
MySQL Slave
IO_THREAD
SQL_THREAD
БД
ЖИ
БД
ЖИ
Для чего используется репликация
• Масштабирование;
• Увеличение надежности;
• Резервное копирование.
Поддержка процесса репликации в БУС
•
•
Проверка правильности настройки:
1. настройки кодировок
2. критические параметры
3. параметры повышения надежности
4. параметры производительности
Управление процессом репликации
1. запуск процесса репликации
2. корректная остановка репликации
3. ограниченная поддержка команды «CHANGE MASTER TO»
Масштабирование при помощи репликации
• Запросы выборки выполняются к подчиненным узлам;
• Запросы модификации выполняются к основной БД;
• После модификации все последующие запросы выполняются к основной
БД.
запись
чтение
репликация
MySQL master
PHP
MySQL slave
MySQL slave
Веб-аналитика
• Запросы на изменение направляются в другую БД
т.о. снижаются требования к производительности репликации.
• «Тяжелые» запросы отчетов выполняются не мешая работе
сайта.
Запросы модуля веб-аналитики
Запросы других модулей
PHP
БД модулей
Веб-аналитика
Добавление БД в модуле поддержки кластера
Список узлов БД в модуле поддержки кластера
Установка модуля Веб-аналитики в одну из БД
Поиск
• Значительный объем данных (4х кратный по отношению к контенту
1) b_search_content.BODY
2) b_search_content.SEARCHABLE_CONTENT
3) b_search_content_stem
4) ux_b_search_content_stem
PHP
• «Очень тяжелые» поисковые запросы
1) значительный объем данных для сортировки
• Возможность использовать быстрый MyISAM вместо надежного
InnoDB
Запросы модуля поиска
Запросы других модулей
БД модулей
Поиск
Все вместе
запись
чтение
репликация
Поиск
PHP
Веб-аналитика
MySQL master
MySQL slave
MySQL slave
Планы
• Поддержка не только кластерных узлов БД, но и WEB.
• Разделение БД модулей инфоблоков и рекламы.
• Модуль выйдет в редакциях «Портал» и «Большой бизнес».
PHP
PHP
Поиск
PHP
запись
чтение
репликация
Веб-аналитика
MySQL master
MySQL slave
Спасибо за внимание! Вопросы?
Download