Реализация хранилища BLOB-объектов

Я ищу способ реализовать (предоставить) хранилище больших двоичных объектов для приложения, которое я создаю.

Мне нужно следующее:

  • Доступ осуществляется с помощью простых ключей (таких как первичные ключи; мне не нужна иерархия);
  • BLOB-объекты размером от 1 КБ до 1 ГиБ. Оба сценария должны быть быстрыми и поддерживаться (поэтому системы, которые работают на основе больших блоков, как, я полагаю, делает Hadoop);
  • Потоковый доступ к большим двоичным объектам (т. е. возможность чтения случайных частей большого двоичного объекта);
  • Доступ через REST;
  • Нет окончательной согласованности.

Мои требования к инфраструктуре следующие:

  • Горизонтальное масштабирование, но с шардингом все в порядке (поэтому нет необходимости, чтобы система изначально поддерживала горизонтальное масштабирование);
  • Высокая доступность (поэтому репликация и автоматический переход на другой ресурс);
  • Я не могу использовать хранилище BLOB-объектов Azure или Google; это частное облачное приложение.

Я готов реализовать такую ​​систему сам, но я предпочитаю готовую систему, которая реализует это или, по крайней мере, его части.

у меня например посмотрел на Hadoop, но он имеет окончательную согласованность, поэтому отсутствует. Кажется, существует несколько реализаций Linux DFS, но все они работают с использованием монтирования, и мне просто нужен доступ к REST. Кроме того, похоже, что диапазон размеров BLOB-объектов усложняет задачу.

Какую систему я могу использовать для этого?


person Pieter van Ginkel    schedule 26.07.2014    source источник
comment
Я решил использовать MogileFS.   -  person Pieter van Ginkel    schedule 04.08.2014


Ответы (1)


Это довольно старый пост, но я выгляжу примерно так же. Я нашел стек GridFS и модуль доступа к HTTP на основе ngnix.

person Michael Bleterman    schedule 22.05.2017