2010-05-05 2 views
1

Мы обсуждали дизайн стратегии хранилища данных в нашей группе для удовлетворения требований к тестированию, воспроизводимости и синхронизации данных. Одной из предлагаемых идей является адаптация подхода NoSQL с использованием existing tool, а не попытка повторной реализации целого ряда файлов в файловой системе. Я не знаю, подходит ли подход NoSQL даже к лучшему подходу к тому, что мы пытаемся выполнить, но, возможно, если я опишу, что нам нужно/хотите, вы все можете помочь.NoSQL для организации хранения и репликации файловой системы?

  1. Большинство наших файлов являются крупными, более 50 гигабайт, хранятся в фирменном, стороннем формате. Нам нужно иметь доступ к каждому файлу с помощью комбинации имени/даты/источника/времени/артефакта. По существу, стиль стиля пары ключевого значения.
  2. Когда мы запрашиваем файл, мы не хотим загружать его все в память. Они действительно слишком велики и будут болоте нашего сервера. Мы хотим иметь возможность как-то получить ссылку на файл, а затем использовать проприетарный, сторонний API для проглатывания его частей.
  3. Мы хотим легко добавлять, удалять и экспортировать файлы из хранилища.
  4. Мы хотели бы настроить автоматическую репликацию файлов между двумя серверами (для этого мы можем написать скрипт). То есть синхронизировать содержимое одного сервера с другим. Нам не нужна распределенная система, где она появляется только в том случае, если у нас есть один сервер. Мы хотели бы завершить репликацию.
  5. У нас также есть другие файлы меньшего размера, которые имеют отношение типа дерева к файлам Big. Содержимое одного файла будет указывать на следующее и т. Д. И т. Д. Это не «спицевое колесо», это полномасштабное дерево.

Мы предпочли бы использовать API Python, C или C++ для работы с такой системой, но большинство из нас имеет опыт работы с различными языками. Мы не возражаем, пока это работает, выполняет свою работу и экономит время. Что ты думаешь? Есть ли что-то в этом роде?

ответ

3

Что случилось с проверенной файловой системой кластера? Lustre и ceph являются хорошими кандидатами.

Если вы ищете магазин предметов, Hadoop был построен с учетом этого. По моему опыту, Hadoop - это боль, чтобы работать и поддерживать.

+2

Ничего. Спасибо, спасибо. Я думаю, что NoSQL упоминается, потому что это новая жара. – wheaties

5

Вы посмотрели GridFS MongoDB. http://www.mongodb.org/display/DOCS/GridFS+Specification

Вы можете запрашивать файлы по метаданным по умолчанию, а также свои собственные дополнительные метаданные. Файлы разбиваются на маленькие куски, и вы можете указать, какие части вы хотите. Кроме того, файлы хранятся в коллекции (подобно таблице RDBMS), и вы получаете функции репликации Mongo для загрузки.

0

Для меня как Luster, так и Ceph есть некоторые проблемы, которые базы данных, такие как Cassandra, не имеют. Я думаю, что основным вопросом здесь является то, что недостаток Кассандры и других баз данных, подобных ей, был бы в качестве FS-сервера.

Производительность, очевидно, может быть одной. Как насчет использования пространства? Последовательность?

Смежные вопросы