Поиск в масштабируемом хранилище объектов в памяти до 150 миллионов небольших объектов в .net - PullRequest
4 голосов
/ 23 декабря 2011

В настоящее время я работаю над системой управления данными, которая должна рассчитывать огромные объемы данных: представьте себе таблицу Excel, содержащую около 150 миллионов ячеек с данными.

Мы используем базу данных sql server для хранения данных, но производительность вычислений ниже оптимальной по многим причинам. Рассматривая альтернативы, я подумал о том, чтобы попытаться создать объектную структуру в памяти.

Вот основные требования:

  1. Нам нужна структура, которая поддерживает несколько пользователей, делающих обновления на одном «листе» моей аналогии с Excel. Если производительность одного обновления достаточно высока, сериализованные обновления всех пользователей приемлемы

  2. Мы абсолютно не можем принять потерю данных

  3. Нам нужны индексы для ключа объекта, но также некоторые индексы для частичных ключей, поэтому структура в памяти должна поддерживать неуникальные ключи, что приводит к эффективному поиску по частичным ключам, возвращающим коллекцию совпадающих записей

  4. Должен поддерживать .NET

Учитывая эти условия, какие-либо предложения, пожалуйста?

Спасибо,

Кемаль

Ответы [ 2 ]

1 голос
/ 23 декабря 2011

А как насчет базы данных NoSQL поверх реляционной базы данных?Что-то вроде MongoDB или RavenDB?

Mongo - это база данных в памяти, и я считаю, что Raven можно настроить для работы в памяти.

Существуют различные варианты баз данных NoSQL.Некоторые из них предназначены для приложений с интенсивным чтением, а некоторые - с приложениями с интенсивным чтением.

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

Я бы ожидал, что требование «без потери данных» будет вашим самым большим решающим фактором.

0 голосов
/ 13 января 2012

Raima Inc - это еще одна база данных без SQL, которая работает в оперативной памяти, на диске или представляет собой гибрид этих двух.

Что касается потери данных, существуют расширения, обеспечивающие зеркалирование и репликацию.

Вот ссылка на полные технические характеристики их базы данных: Архитектура и функции RDM Embedded 10.1

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