Поиск масштабируемого хранилища объектов в памяти, содержащего до 150 миллионов мелких объектов in.net
В настоящее время я работаю над системой управления данными, которая должна вычислять огромные объемы данных: представьте себе лист excel, содержащий около 150 миллионов ячеек с данными.
Мы используем базу данных sql server для хранения данных, но производительность вычислений неоптимальна по многим причинам. Рассматривая альтернативы, я подумал, что нужно попробовать структуры объектов в памяти.
Вот основные требования:
-
Нам нужна структура, которая поддерживает нескольких пользователей делать обновления на том же "листе" моей аналогии excel. Если производительность одного обновления достаточно высока, то сериализация обновлений всех пользователей приемлема
-
Мы абсолютно не можем принять потерю данных
-
Нам нужны индексы по объектному ключу, но также и некоторые индексы по частичным ключам, поэтому структура в памяти должна поддерживать не уникальные ключи, что приводит к эффективному поиску по частичным ключам, возвращающим коллекцию совпадающих записей
-
Должен поддерживать .NET
Учитывая эти условия, какие-либо предложения, пожалуйста?
Спасибо,
Кемаль
2 ответа:
Как насчет базы данных NoSQL поверх реляционной базы данных? Что-то вроде MongoDB или RavenDB?
Mongo -это база данных в памяти, и я считаю, что Raven можно настроить для работы в памяти.
Существуют также различные вкусы баз данных NoSQL. Некоторые из них предназначены для "тяжелых для чтения" приложений, а некоторые для "тяжелых для записи" приложений.
Вы также можете посмотреть на CQRS , Если вы выиграете от предварительного вычисления общих поисков или вычислений.
Я бы так и сделал. однако ожидайте, что требование "без потери данных" будет вашим самым большим решающим фактором.
Raima Inc -это еще одна база данных No-SQL, которая работает в памяти, на диске или гибриде этих двух.
Что касается потери данных, то существуют расширения, обеспечивающие зеркальное отображение и репликацию.
Вот ссылка на полные технические спецификации их базы данных: архитектура и функции RDM Embedded 10.1