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