Распределенное хранилище BLOB-объектов для .NET?
-
03-07-2019 - |
Вопрос
Я ищу достаточно хорошо протестированную библиотеку+сервер для хранения постоянной распределенной хеш-таблицы.
Я не решаюсь использовать решения на основе 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/