2009-08-25 2 views
0

Мне любопытно узнать, как большие сайты распространяют нагрузку между различными серверами БД в случае, когда пользователи пишут столько, сколько они читают, т.е. когда стандартное решение о том, что один ведущий принимает запись, и несколько подчиненных устройств, которые позволяют пользователям читать данные, не работают, потому что он просто превращает главный сервер в узкое место.Как сохранить несколько серверов DB для чтения/записи в синхронизации?

Для тех из вас, кто управляет большим сайтом с балансировщиком нагрузки -> несколькими веб-серверами -> несколькими серверами БД, как распределить нагрузку равномерно между серверами БД, чтобы пользователи (в лучшем случае) не имели ждать, пока мастер обновит ведомые устройства, или (в худшем случае) пользователи в конечном итоге будут считывать грязные данные из ведомых устройств, которые еще не обновлены?

спасибо.

+0

Было бы полезно отметить ответы, принятые для ваших предыдущих 16 вопросов ... – RedFilter

+0

Я не знаю, как работает Stackoverflow, appart из публикации вопроса и комментария. Я ответила на другие вопросы. – Gulbahar

ответ

0

Мы не совсем в том месте, где наш главный сервер баз данных является узким местом, но он приближается быстро. У нас есть 70% чтения/30% записи.

Существует несколько решений, но ни одна из них не представляет большой интерес. Мы застряли в MySQL, поэтому нашими основными опциями являются:

  • Бросить оборудование по этой проблеме. Это стратегия, которой мы придерживались в течение многих лет, и она до сих пор хорошо нас обслуживала. К сожалению, наша кривая роста означает, что мы не сможем справиться с этим гораздо дольше.
  • Несколько основных настроек MySQL. Взгляните на «Топологии репликации» в главе 8 High Performance MySQL, чтобы узнать, о чем я говорю. Как поясняется в этом разделе, репликация не является отличным вариантом для масштабирования записей.
  • MySQL кластер. Мне все еще нужно правильно исследовать это и проверить его, чтобы мы могли улучшить нашу производительность записи.
  • Исправьте наше программное обеспечение, чтобы использовать меньше операций записи за операцию. Это было частично сделано, но я не знаю, сколько еще мы можем выжать из него.
  • Патч нашего программного обеспечения, чтобы очертить записи через несколько независимых мастеров. Это очень больно, и я хотел бы избежать этого, если это возможно.
  • Исправьте наше программное обеспечение менее зависимым от MySQL и найдите другую базу данных SQL, которая дает нам лучшие возможности масштабирования записи.

Это параметры, которые у меня есть в настоящий момент, но если вы работаете с другой базой данных, или если вы начинаете и можете выбирать, ваши варианты могут быть радикально разными.

+0

Спасибо Конору за отзыв. – Gulbahar