fooler
Новичок
Покритикуйте мою многосерверную модель хранения данных
Добрый день
Проблема такая.
Имеем таблицу из которой постоянно идёт много много запросов на чтение (более ста в секунду) и гораздо меньше (на 2-3 порядка) запросов на удаление/добавление/изменение.
Имею проблему чтения записи - постоянные локи и зависание.
Нашёл в интернете различные решения и советы. Остановится решил на репликации.
Получил в распоряжение физически ещё один сервер.Внутри датацентра связал из дополнительно сетевушками напрямую.
На первом сервере запускаю Mysql как мастер сервер.
На втором стоит www сервер и запущено две версии mysql, оба как слейвы.
Запись произвожу на мастер (в архитектуре приложения это возможно реализовать в моём случае).
Поясню зачем мне нужно две версии mysql на втором сервере. После изучения методов репликации выяснилось что и Statement-Based Replication (SBR) и Row-Based Replication (RBR) по большому счёту могут тоже вызывать проблемы блокировок при активном чтении слейва, хотя SBR и выигрывает значительно в этом плане.
Поэтому я решил настроить своё приложение чтобы чтение шло с одного экземпляра mysql слейва, а репликация в этот момент происходила на другой mysql слейв. Если процесс скажем переключать раз в 15 минут, то единственная проблема это неактуальность данных на 15 минут на слейве который мы читаем (в моём случае это не принципиально).
Главное, что будет решено в такой схеме это полное исключение одновременной записи и чтения в какую-либо из таблиц слейва какими-либо методами.
Если есть замечания/советы - с удовольствием выслушаю
Спасибо
Добрый день
Проблема такая.
Имеем таблицу из которой постоянно идёт много много запросов на чтение (более ста в секунду) и гораздо меньше (на 2-3 порядка) запросов на удаление/добавление/изменение.
Имею проблему чтения записи - постоянные локи и зависание.
Нашёл в интернете различные решения и советы. Остановится решил на репликации.
Получил в распоряжение физически ещё один сервер.Внутри датацентра связал из дополнительно сетевушками напрямую.
На первом сервере запускаю Mysql как мастер сервер.
На втором стоит www сервер и запущено две версии mysql, оба как слейвы.
Запись произвожу на мастер (в архитектуре приложения это возможно реализовать в моём случае).
Поясню зачем мне нужно две версии mysql на втором сервере. После изучения методов репликации выяснилось что и Statement-Based Replication (SBR) и Row-Based Replication (RBR) по большому счёту могут тоже вызывать проблемы блокировок при активном чтении слейва, хотя SBR и выигрывает значительно в этом плане.
Поэтому я решил настроить своё приложение чтобы чтение шло с одного экземпляра mysql слейва, а репликация в этот момент происходила на другой mysql слейв. Если процесс скажем переключать раз в 15 минут, то единственная проблема это неактуальность данных на 15 минут на слейве который мы читаем (в моём случае это не принципиально).
Главное, что будет решено в такой схеме это полное исключение одновременной записи и чтения в какую-либо из таблиц слейва какими-либо методами.
Если есть замечания/советы - с удовольствием выслушаю
Спасибо