Распределенное хранилище BLOB для .NET?

Я ищу достаточно хорошо протестированную библиотеку + сервер для хранения постоянной распределенной хеш-таблицы.

Я неохотно использую решения на основе SQL, поскольку данные имеют высокую документальную ориентацию, состоящую из миллионов блоков размером ~ 64 КБ с единственным индексом (вычисленным с помощью хэша упомянутого BLOB) и должны быть доступны для распространения долгосрочные перспективы масштабирования.

Из-за соображений расхода и полосы пропускания внешние решения, такие как S3, не являются опцией.

Что-то вроде CouchDB или Project Voldemort было бы идеальным - однако есть заметная нехватка привязок .NET для обоих (PV может быть IKVMC'd из Java, но имеет "проблемы".). Оба ключа и значения представляют собой массивы байтов (ключ - 16 байт, значение до 2048 КБ в среднем составляет 64 КБ).

Я искал до сих пор какой-то порт .NET Dynamo, Chord и т.д., однако большинство результатов, по-видимому, являются чисто кэшами в памяти и не имеют какой-либо формы сохранения или репликации.

У кого-нибудь есть идеи или предложения?

Ответы

Ответ 1

Взгляните на Ayende Rhino DHT. Возможно, вы будете больше соответствовать тому, что ищете. Источник можно получить здесь.

Ответ 2

DryadLINQ или Hadoop.Net может помочь.

Hadoop.Net - это версия для доплетов Hadoop. Подробнее о Hadoop можно найти здесь

Ответ 3

Я действительно думаю, что вы должны рассмотреть SQL Server 2008. Храните данные в таблице с столбцом varbinary (max) вместе с столбцом, который содержит хэш этого столбца. Индекс хеш, как вы предположили.

Затем вы сможете использовать различные функции распространения продукта.

Ответ 4

Рассмотрим MS Velocity.

Резюме: "Velocity" - это распределенная платформа кэширования приложений в памяти для разработки масштабируемых, доступных и высокопроизводительных приложений. "Velocity" объединяет память на нескольких компьютерах, чтобы обеспечить единый просмотр кеширования приложений. Приложения могут хранить любой сериализуемый объект CLR, не беспокоясь о том, где объект хранится. Масштабируемость может быть достигнута путем простого добавления большего количества компьютеров по требованию. "Velocity" также позволяет копировать данные, хранящиеся в кластере, тем самым защищая данные от сбоев. "Скорость" может быть настроена для работы в качестве службы, доступной по сети, или может быть запущена встраиваемой с распределенным приложением.

Ответ 5

Вы можете попробовать StorageEdge, чтобы на нем была технология NCache, поэтому, используя ее, вы будете иметь поддержку распределенного кеша, который повысит производительность, надежность, масштабируемость SharePoint и одновременно оптимизирует его хранение.

Вот ссылка на домашнюю страницу StorageEdge http://www.alachisoft.com/storageedge/ Надеюсь, что это поможет:)

Отдохните для .NET. Вы всегда можете попробовать NCache большое имя в распределенном кэшировании, вы можете найти его детали на http://www.alachisoft.com/ncache/