Мне нужны предложения для распределенного хранилища данных хранилища - PullRequest
5 голосов
/ 18 июня 2011

Я хочу разработать одну мультимедийную систему, система должна сохранять миллионы видео и изображений, поэтому я хочу выбрать подсистему распределенного хранения. кто может дать мне предложение? спасибо!

Ответы [ 5 ]

4 голосов
/ 19 июня 2011

Полагаю, что лучшим вариантом для «миллионов видео и изображений» является сеть распространения / доставки контента (CDN):

CDN - это настройка сервера, которая обеспечивает более быструю и эффективную доставку вашихмедиа файлы.Это достигается путем сохранения копий ваших носителей в разных точках присутствия (POP) в глобальной сети, чтобы обеспечить быстрый доступ клиентов и максимально быструю доставку

Если вы будете использовать CDN, вам не нужно заботиться омного проблем (раздача, быстрый доступ).Интеграция с CDN также должна быть очень простой.

2 голосов
/ 18 июня 2011

@ yi_H

Вы можете настроить свои записи так, чтобы они сначала реплицировались на несколько узлов, прежде чем они вернутся к клиенту.Теперь, нужно ли это или нет, конечно, в случае использования.И, безусловно, включает в себя удар производительности.Поэтому, если вы реализуете аналитическую базу данных с интенсивной записью, это окажет значительное влияние на производительность записи.

Все остальные замечания, которые вы высказываете по этому вопросу с точки зрения отсутствия требований и т. Д., Я повторяю это.

Наличие реплицированной файловой системы с метаданными в базе данных nosql - очень распространенный способ работы.@ Почему вы рассматривали такой подход?

Вы смотрели на Mongodb gridfs?Я никогда не использовал это, но это то, на что я бы посмотрел, чтобы увидеть, если это дает вам какие-либо идеи.

1 голос
/ 18 июня 2011

Йо дал нам (почти) нулевую информацию о ваших требованиях. Например:

  • Хотите ли вы атомарные транзакции?
  • Является ли система тяжелым для чтения или записи?
  • Вам нужны быстрые запросы или пакетная обработка набора данных?
  • Насколько большие видео?
  • Хотите ли вы распространять данные локально (по локальной сети) или охватывать несколько центров обработки данных / континентов?

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

Без каких-либо знаний о системе я бы посоветовал использовать для видео и изображений некую репликацию FS, а затем хранить метаданные, связанные с элементами, в MongoDB, MySQL Master-Master или MySQL Cluster.

0 голосов
/ 17 августа 2012

Альтернативой является использование GridFS MongoDB, служащей ( очень легко управляемой) избыточной и распределенной файловой системой.

Некоторые скажут, что при чтении это происходит медленно, ( и это , в основном из-за характера его конструкции), но это не значит, что это нарушитель соглашения для вашей системы в целом, потому что если вам нужна производительность в дальнейшем, вы всегда можете поставитьЛак или Squid перед уровнем файловой системы.

Насколько мне известно, Squid также поддерживает кэш на диске для всех менее загруженных файлов.

Источники:

http://www.mongodb.org/display/DOCS/GridFS

http://www.squid -cache.org / Doc / config / cache_dir /

0 голосов
/ 18 июня 2011

Распределенный, связанный с чем?

Если вы говорите о репликации для распространения:

MongoDb ограничен только репликацией Master-Slave, поэтому только один узел может читать / писать, что оставляетВы с единственной точкой отказа для действительно распределенной системы.CouchDB способен к одноранговой репликации.

Найти очень хорошее сравнение здесь и здесь также по сравнению с hbase .

С CouchDBВы также должны знать, что собираетесь использовать http для базы данных и встроить веб-сервисы.

С уважением, Крис

...