MemoryMappedFile и b-tree для приложения кэша

Это всего лишь идея, у меня пока нет кода, мне нужен совет по дизайну. Я бы использовал кеш (не распределенный в первом случае), используя MemoryMappedFile в c #. Я думаю, что было бы хорошо иметь б-дерево как структура undelying, но это спорно, а также. Итак, вопрос:

  • Является ли B-tree хорошей стратегией для быстрого поиска элементов поиска, когда поддержка с уменьшением числа - это файлы с отображением памяти?
  • Какие подсказки и трюки у нас есть с файлами с памятью? Насколько вид может быть большим, каковы недостатки, когда он слишком мал или слишком велик?
  • Многопоточное рассмотрение: как мы имеем дело с файлом памяти и параллелизмом? Предполагается, что кэш-сервер будет высоко оценен клиентами, какая стратегия лучше иметь что-то своею?

Поскольку @Internal Server Error спрашивает, я интегрирую вопрос с этим: Ключ будет строкой, длиной около 64 символов. Данные будут байтом [] длиной около 1024 байт, но рассмотрим среднее значение в 128 байт или лучше: то, что я хочу кэшировать, - это объекты OR/M, давайте рассмотрим, как долго является сериализованным объектом в байтах с чем-то вроде сериализатора BSOn ,

1
ключ будет строкой, рассмотрим что-то около 64 символов. Данные должны быть массивом байтов: сериализованный объект, возможно, от 4 до 1 килобайта.
добавлено автор Felice Pollano, источник
@sehe вы правы, я знаю mongodb, но я хочу что-то встраиваемое в мой проект
добавлено автор Felice Pollano, источник
зачем катиться самостоятельно? couchdb, memcached, mongodb; очевидно, mongodb fast
добавлено автор sehe, источник
Каковы типы данных, которые вы кешируете? Какой тип ключа? Сколько данных мы говорим?
добавлено автор 500 - Internal Server Error, источник

1 ответы

  • B-Tree хорош (с файлами с отображением памяти), но если файл не всегда полностью хранится в резидентной памяти, тогда выравнивание по B + Tree с выравниванием по страницам намного лучше. См. также .
  • Трюк с файлами с отображением памяти заключается в использовании 64-битной архитектуры, чтобы вы могли отобразить весь файл в память, иначе вам нужно было бы отображать только части и кешированный read s может быть быстрее, чем mmap s.
  • Попробуйте CAS (сравните и замените) по общей памяти. См. также .
1
добавлено
Большое спасибо, хорошие ссылки тоже.
добавлено автор Felice Pollano, источник
Возможно, есть что-то C# -pish для вас в nosql-database.org . Или некоторый проект C может служить ссылкой.
добавлено автор ArtemGr, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot