C# keyvalue store

kovrovec

Задача - разместить на винте таблицу с 2 полями. string key и blob value. Строк будет 5-10млн. Данные не меняются, нужно только чтение.
Другими словами мне нужен доступ к Dictionary<string, SomeType>, без загрузки в приложение.
Подскажите пожалуйста, как лучше сделать?
Желательно без необходимости устанавливать СУБД на машине пользователя.

FRider

а блоб то какого размера?

kovrovec

точно сказать сложно. ну не большой. По крайней мере меньше 10кб.

hwh2010

чем не нравится тупой вариант?
ФС
имя файла — md5-хеш от ключа
содержимое — блоб
чтобы ФС не нагнулась — 2-3 уровня вложенности директорий из первых нескольких букв имени файлов
глубину и ветвистость дерева директорий выбираем в зависимости от ФС которая предполагается у юзера
UPD: параноики могут рассмотреть возможность совпадения ключей и хранения нескольких пар в файле

kovrovec

NTFS выделит кучу лишней памяти, а прочие и вовсе загнутся на таком количестве файлов, пусть даже по разным папкам.
Хотелось бы что-то вроде "легкой" субд, которую можно проинсталить без участия пользователя, ориентированную на работу с такого рода key-value данными.

Bibi

berkley db какой-нибудь

kovrovec

На первый взгляд похоже. Попробую. Спасибо!

nawok

SQLite

Maurog

SQLite (библиотечка влинковывается в само приложение)

kovrovec

Во отлично. Спасибо большое.
Оставить комментарий
Имя или ник:
Комментарий: