Постоянство кэша - PullRequest
       10

Постоянство кэша

0 голосов
/ 21 января 2010

Я использую механизм кэширования Asp.Net для очень часто меняющегося веб-приложения. Кэш содержит участников чата и их сообщения, и он должен отслеживать присутствие участников.

Данные меняются очень часто, участники входят и выходят, а сообщения отправляются и принимаются.

Кеш предоставляет мне решения для: - спектакль - уменьшение количества операций DDL в базе данных (SQL Server) - возникла проблема с заполнением журнала транзакций.

Я хочу продолжать работать таким образом, но я не могу полагаться на кеш (я могу потерять все данные, когда кэш перезагружается, или некоторые данные, когда память заполнится).

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

Но это означает, что многие операторы обновления / вставки SQL.

кто-то посоветовал мне сохранить базу данных Evey N сообщений / изменений, но это все еще не надежное решение. Я все еще теряю данные.

У кого-нибудь есть идея?

Спасибо Ярон

1 Ответ

2 голосов
/ 21 января 2010

Исправьте проблемы с базой данных. Если вам необходимо надежно сохранять n изменений в секунду, то ваша база данных должна иметь возможность обрабатывать n операций в секунду.

Все остальное (включая сохранение каждых нескольких операций) приведет к некоторой возможности потери данных. Если вы можете принять этот риск потери данных, это сработает.

Также может помочь распределенный кеш (проект Velocity или другой) (данные как минимум сохраняются на нескольких машинах). Но для этого нужно дополнительное оборудование, и вы можете потратить его на емкость базы данных.

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

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