![]() |
|
Модераторы: skyboy |
![]()
|
|
| ch3cker |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.6.2010 Репутация: нет Всего: нет |
Есть движок рекламной сети, который работает на одном сервере и с одной базой MySQL. За сутки в сети совершается несколько миллионов показов в связи с этим огромная нагрузка на БД и отказы сервера.
Как можно распределить нагрузку на несколько серверов? Имеет ли смысл использовать mysql репликацию ? Проблема в том что на каждую операцию чтения (выборка подходящих баннеров из базы (сложный JOIN запрос) при этом одно из условий чтобы у рекламодателя хватало денег на показ баннера) приходится операция записи (пишется лог показа этого баннера а так же вычитаются деньги с баланса рекламодателя, это делается сразу чтобы исключить ситуацию когда рекламодатель уйдет в минус) Можно логи показа баннера и работу с балансом оформить внутренними процедурами на стороне mysql-сервера, а под относительно статичные операции чтения выделить реплики с доступом всех скриптов только на чтение. Тогда возникает следующая проблема: как сделать чтобы на репликах не выбирались баннеры за которые пользователь уже не сможет расплатиться. Если на мастер сервере его баланс уменьшится то пока это изменение дойдет то реплики может быть еще один показ на который на самом деле денег уже нет ? И как быть когда ресурсов мастер сервера не хватит для операций записи ? Подскажите пожалуйста возможные варианты решения этой проблемы, и как вообще масштабируют проекты где много операций записи ? |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |