.NET - быстрое и легкое постоянное хранилище ключей - PullRequest
4 голосов
/ 12 апреля 2011

Я ищу постоянное хранилище значений ключей для .NET. Требования:

  • Хранилище используется для объектов, которые идентифицируются строками и имеют несколько необязательных (именованных) свойств со значениями, которые являются просто байтовыми массивами. Для решения SQL я бы смоделировал его как одну строку -> таблица идентификаторов и несколько таблиц id -> BLOB-объектов.
  • Ожидаемый объем данных составляет несколько мегабайт (более 10 Мбайт в настоящее время маловероятно, но масштабирование до 100 Мб будет хорошим бонусом)
  • Легкий вес - желательно односборочный, безусловно, без внешних применений
  • Чтения происходят чаще, чем записи, по крайней мере, в 100 раз.
  • Быстрый доступ для чтения / записи - я ожидаю хранения в памяти и ленивых записей об обновлениях данных; Я могу периодически порождать асинхронные записи сам, бонусные баллы, если хранилище делает это.
  • Атомный ввод / вывод - база данных не должна прерываться, если процесс завершается в середине записи; в противном случае данные не являются критичными, т. е. дополнительная избыточность не требуется.

В настоящее время я думаю, что SQLite будет работать здесь; однако это кажется небольшим излишним - мне нужно только хранилище значений ключей, а не полная поддержка SQL. Я также слышал о bdb и о связывании libdb-dotnet - оно кажется более легким, но я не знаю характеристик производительности / согласованности.

Кто-нибудь может порекомендовать что-нибудь здесь? Приветствуются дополнительные ссылки (т. Е. Было бы замечательно, если бы в .NET Framework было что-то, что может сделать эту работу), а также опыт работы с SQLite или libdb-dotnet (или bdb в целом) или домашним решением, если бы это было безболезненно .

1 Ответ

0 голосов
/ 12 апреля 2011

Возможно, посмотрите на http://ravendb.net/. Он хранит документы JSON в хранилище значений ключей, но с отличной поддержкой объектов .NET.

Из вашего объяснения ваших потребностей вы также можете посмотретьпросто использовать управляемый механизм хранения, Raven.Munin, который представляет собой единую сборку.

...