【发布时间】:2011-06-18 09:17:49
【问题描述】:
我想开发一个多媒体系统,系统需要保存数百万的视频和图像,所以我想选择一个分布式存储子系统。谁能给我一些建议?谢谢!
【问题讨论】:
标签: mongodb couchdb distributed hbase couchbase
我想开发一个多媒体系统,系统需要保存数百万的视频和图像,所以我想选择一个分布式存储子系统。谁能给我一些建议?谢谢!
【问题讨论】:
标签: mongodb couchdb distributed hbase couchbase
我想“数百万视频和图像”的最佳选择是内容分发/交付网络 (CDN):
CDN 是一种服务器设置,它允许 更快、更高效地交付 您的媒体文件。它通过 维护您的媒体副本 不同的存在点 (POP) 沿着全球网络,以确保快速 客户访问和最快的交付 可能
如果您将使用 CDN,您无需关心许多问题(分发、快速访问)。与 CDN 的集成也应该非常简单。
【讨论】:
@yi_H
您可以将写入配置为首先复制到多个节点,然后再返回客户端。现在是否需要这当然取决于用例。并且肯定会影响性能。因此,如果您正在实现一个写入繁重的分析数据库,它将对写入吞吐量产生重大影响。
您就缺乏要求等问题提出的所有其他观点,我赞同这一点。
在 nosql 数据库中复制带有元数据的文件系统是一种非常常见的处理方式。 @为什么你会考虑这种方法?
你看过 Mongodb gridfs 吗?我从未使用过它,但我会看看它是否能给你任何想法。
【讨论】:
Yo 给了我们(几乎)零关于您的要求的信息。例如:
如果我们不知道它需要支持什么,我们应该如何选择正确的工具?
在不了解系统的情况下,我建议对视频和图像使用某种 FS 复制,然后将与项目关联的元数据存储在 MongoDB、MySQL Master-Master 或 MySQL Cluster 中。
【讨论】:
分布与什么有关?
如果您正在谈论复制以分发:
MongoDb 仅限于主从复制,因此只有一个节点能够读取/写入,这给真正的分布式系统留下了单点故障。 CouchDB 能够进行点对点复制。
找到一个很好的比较 here 和 here also compared with hbase。
使用 CouchDB,您还必须知道您将通过 http 与数据库通信并构建 web 服务。
问候, 克里斯
【讨论】:
另一种方法是使用 MongoDB 的 GridFS,作为(非常易于管理的)冗余和分布式文件系统。
有些人会说它的读取速度很慢,(and it is,主要是因为它的设计性质)但这并不一定意味着它对你的整个系统来说是一个破坏者,因为如果你以后需要性能,您总是可以将 Varnish 或 Squid 放在文件系统层的前面。
据我所知,Squid 还支持所有不太热的文件的磁盘缓存。
来源:
【讨论】: