простейшее хранилище значений ключей для XML-данных с лучшей производительностью для .NET - PullRequest
2 голосов
/ 27 августа 2010

Мне нужен способ хранения большого количества XML-данных различного размера в простом хранилище ключей / значений. До сих пор я пробовал два простых подхода:

  1. RAM: хранить все в экземпляре ConcurrentDictionary
    • Проблема: ограниченные ресурсы при запуске проекта, один сервер с 8 ГБ ОЗУ!
    • Примечание: Windows AppFabric может стать решением в будущем, если мы получим более мощные серверы.
  2. HDD: храните каждое значение в своем собственном файле на жестком диске, с ключами, сопоставленными с путями
    • Проблема: задержка
    • Вопрос: какая разница из-за использования SSD в наиболее оптимистичном сценарии?

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

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

Ответы [ 2 ]

2 голосов
/ 27 августа 2010

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

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

0 голосов
/ 13 августа 2013

GetCache.net - это распределенное хранилище ключей / значений, которое работает только в оперативной памяти. Это масштабируемый и поддерживает репликацию данных и срок действия данных. Клиентская библиотека основана на WCF. Это доступно от Nuget .

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