Распределенное хранилище больших двоичных объектов для .NET? - PullRequest
15 голосов
/ 30 апреля 2009

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

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

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

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

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

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

Ответы [ 5 ]

8 голосов
/ 30 апреля 2009

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

2 голосов
/ 17 мая 2009

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

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

2 голосов
/ 17 мая 2009

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

Hadoop.Net - это версия Hadoop в формате dotnet. Подробнее о Hadoop можно узнать здесь

1 голос
/ 15 сентября 2011

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

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

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

1 голос
/ 30 апреля 2009

Рассмотрим Скорость MS .

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

...