Я создаю виджет опроса, используя элементы управления ASP.NET и Linq-to-Sql для сайта с высоким трафиком. Виджет, фактически, уже построен. Но он еще не использует кеширование.Кэширование для опроса?
Этот опрос может работать в режиме с несколькими опросами, что означает, что каждая загрузка страницы элемента управления попадет в базу данных, чтобы найти какие-либо опросы, которые текущий пользователь не принял. Также есть несколько обращений к базе данных о обратной передаче: проверка, чтобы убедиться, что пользователь не взял опрос, хит, чтобы записать результат в базу данных, и последнюю серию хитов для подсчета результатов.
Update, я заново сформулировать следующие вопросы:
было бы целесообразно для контроля таких как опрос, чтобы поразить базу данных на каждой странице хитом? Как бы эта производительность увеличилась до примерно 20 000 пользователей. Предположим, сервер имеет 2 сервера, балансировщик нагрузки, современный многоядерный процессор и 2 гигабайта.
Какое кэширование для этого сценария вы бы хотели использовать? Примите во внимание, что, например, любое количество людей может принять участие в опросе в течение любого промежутка времени, и для расчета результатов необходимо общее количество людей, которые прошли опрос. Более проблематично, при каждой загрузке код должен попасть в базу данных, чтобы найти опросы, которые пользователь не выполнил.
У меня есть идеи, но вы хотите получить дополнительную экспертную обратную связь. Благодарю.
Update:
Итак, давайте перейдем сценарий для кэширования. Можно было кэшировать опросы (вопросы), но по-прежнему нужно было бы, вероятно, попасть в базу данных для опросов, полученных от опросов пользователей. Одна из возможностей - создать тень, записывая как хранилище в памяти, так и хранилище базы данных.
Можно использовать схему обновления для сброса кеша, когда пользователь отправляет успешный опрос (когда он изменяется). Куки-файлы можно использовать для предотвращения множественных попыток, хотя это было бы восприимчиво к игре.
Я хочу ознакомиться с подробной информацией о предлагаемой схеме. Например, как вы будете использовать кэширование вывода, кэширование linq-to-sql и т. Д. Не только общие понятия.
Спасибо. Извините, вы не получили кредит. не понимал, что кто-то еще ответил. это ближе к тому, что я ожидал. –
Нет проблем, я просто рад помочь. Надеюсь, поможет :-) – AHM