Поддержка кластерных решений и разделения модулей на разные базы данных Максим, Смирнов программист Репликация в 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 Спасибо за внимание! Вопросы?