我需要有关分布式媒体存储数据存储的建议

时间:2011-06-18 09:17:50

标签: mongodb couchdb distributed hbase couchbase

我想开发一个多媒体系统,系统需要保存数百万个视频和图像,所以我想选择一个分布式存储子系统。谁能给我一些建议?谢谢!

5 个答案:

答案 0 :(得分:4)

我认为'百万视频和图片'的最佳选择是内容分发/投放网络(CDN):

  

CDN是允许的服务器设置   更快,更有效的交付   你的媒体文件。它通过这样做   保持媒体的副本   不同的存在点(POPs)   沿着全球网络确保快速   客户端访问和最快的交付   可能的

如果您将使用CDN,则无需关心许多问题(分发,快速访问)。与CDN的整合也应该非常简单。

答案 1 :(得分:2)

@yi_H

您可以将写入配置为在返回到客户端之前首先复制到多个节点。现在是否需要它当然是用例。并且肯定会影响性能。因此,如果您正在实施一个写入繁重的分析数据库,它将对写入吞吐量产生重大影响。

关于缺乏要求等问题,你提出的所有其他观点,我的第二点。

在nosql数据库中复制带有元数据的文件系统是一种非常常见的做事方式。 @why你有没有考虑过这种方法?

你看过Mongodb gridfs吗?我从来没有使用它,但我会看看它是否能给你任何想法。

答案 2 :(得分:1)

哟给了我们(接近)关于你的要求是什么的零信息。例如:

  • 你想要原子交易吗?
  • 系统是读还是重?
  • 您是否需要快速查询或想要批量处理数据集?
  • 视频有多大?
  • 您想在本地(在LAN上)或跨越多个数据中心/大陆分发数据吗?

如果我们不知道需要支持什么,我们应该如何选择合适的工具?

在不了解系统的情况下,我建议对视频和图像使用某种FS复制,然后在MongoDB,MySQL Master-Master或MySQL Cluster中存储与项目相关的元数据。

答案 3 :(得分:0)

分布式涉及什么?

如果您正在谈论要分发的复制:

MongoDb仅限于主从复制,因此只有一个节点能够读/写,这使得真正分布式系统只有一个故障点。 CouchDB能够进行点对点复制。

找到一个非常好的比较herehere also compared with hbase

使用CouchDB,您还必须意识到您要将http与数据库进行对话并构建Web服务。

此致 克里斯

答案 4 :(得分:0)

另一种方法是使用MongoDB的GridFS,作为( 非常 易于管理的)冗余和分布式文件系统。

有些人会说它读取速度很慢,(and it is,主要是因为它的设计性质),但这并不意味着它对整个系统来说是一个破坏者,因为如果你需要性能稍后,您可以随时将Varnish或Squid放在文件系统层之前。

据我所知,Squid还支持所有不太热门的文件的磁盘缓存。

来源:

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

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