Самостоятельная установка кеша памяти - существует ли она? - PullRequest
0 голосов
/ 13 мая 2011

Я читал о различных механизмах кеширования между компьютерами (Redis, Velocity, nMemCached и т. Д.). Все они, кажется, требуют центрального компьютера для управления кешем.

Существует ли такая вещь, как механизм кэширования, который устанавливается самостоятельно - например, если в текущей подсети не существует кэширования, создается узел. Если он существует, он присоединяет машину к пулу кэширования?

Контекст: у меня есть приложение, которое развертывает около 100 пользователей в одной подсети через ClickOnce. Каждый из этих пользователей получает доступ к ресурсу через глобальную сеть (по всей стране, а в некоторых случаях и за океаном), которая выполняет вычисления с очень высокой загрузкой ЦП и требует значительного времени для завершения.

В результате приложение чувствует себя вялым. Я сделал все, что мог, чтобы облегчить это, бросая долгоживущие запросы в отдельные потоки. Но это только берет вас так далеко. Я добавил локальное кэширование (через базу данных SQL Compact), которое работает довольно хорошо, но большинство пользователей получают доступ к аналогичной информации, и вместе они оказывают небольшое давление на вычислительный сервер. Я думаю, что смогу перейти на следующий уровень, если смогу использовать кэш в памяти вместе с моим приложением, которое, кажется, может без проблем работать с другими машинами для создания механизма кэширования всей сети.

Ответы [ 2 ]

2 голосов
/ 13 мая 2011

Вы тот, кто знает, что будет лучше, но хорошо бы иметь "серверное приложение", которое бы координировало весь процесс:

  1. Пользователь1 спрашивает сервер «Мне нужен X».
  2. Сервер сообщает User1 "Ну, спросите об этом в базе данных"
  3. Пользователь2 спрашивает сервер «Мне нужен X».
  4. Сервер сообщает User2: «Пользователь1 получил его».
  5. ...
  6. Пользователь1 говорит серверу «Я больше не хочу X».

Вы также можете сделать некоторые типы данных «не кешируемыми» из-за их изменчивой природы или во избежание засорения одного из пользовательских подключений. Конечно, сервер получит много запросов, но если вам придется сравнить это с широковещательной рассылкой по сетевому решению. Если я не правильно понял вашу проблему, просто напишите комментарий, не обращайте на него внимания, и я удалю ответ, чтобы не вводить в заблуждение пользователей SO.

2 голосов
/ 13 мая 2011

Если вам не нужен главный компьютер или вы не хотите полагаться на конкретную сетевую компоновку / установку, вы можете рассмотреть вариант «Peer to Peer». WCF имеет встроенную поддержку одноранговой связи. Вот ссылка, которая выглядит несколько соответствующей вашим потребностям: Как спроектировать совместное использование состояний в одноранговой сети

...