Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

Взгляните на Айенде Носорог ДХТ.Возможно, это больше соответствует тому, что вы ищете.Исходник можно получить здесь.

Другие советы

ДриадаLINQ или Hadoop.Net может помочь.

Hadoop.Net — это версия Hadoop для dotnet.Дополнительную информацию о Hadoop можно найти здесь

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

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

Учитывать MS Скорость.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top