Хранение большого объема данных в сеансе - PullRequest
1 голос
/ 23 марта 2010

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

Итак, мы договорились, что данные будут запрашиваться только тогда и только тогда, когда они необходимы, поэтому, если веб-пользователь хочет увидеть список контактов (например), этот список извлекается в локальную таблицу данных. Затем, если новый контакт создается на веб-сайте, новый контакт отправляется в CRM и одновременно добавляется в локальную таблицу данных. Аналогично для правок.

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

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

Ответы [ 2 ]

1 голос
/ 23 марта 2010
  • 20 одновременных пользователей не слишком много.

  • Клиенты "смотрят на свои контакты": в зависимости от размера таблицы "контакты", не могли бы вы сохранить ее в наборе данных в памяти (все контакты). Затем вы можете фильтр в соответствии с первичным ключом.
    Альтернатива сеансу: Кэш , Приложение

Кэш с SqlCacheDependency и CacheItemRemovedCallback должен быть хорошим вариантом для сессии

  • XML-файлы для каждого контакта с клиентом.
1 голос
/ 23 марта 2010

Вы ни о чем не беспокоитесь. По сути это дамп масштабируемости - тупой дизайн. НО: если вы можете выбросить 1 ГБ памяти при проблеме, для 20 пользователей сохранение 16 МБ памяти не является проблемой.

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

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