5

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

4

5 回答 5

4

我想“数百万视频和图像”的最佳选择是内容分发/交付网络 (CDN):

CDN 是一种服务器设置,可以更快、更有效地交付媒体文件。它通过在全球网络的不同存在点 (POP) 上维护您的媒体副本来实现这一点,以确保快速的客户访问和尽可能快的交付

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

于 2011-06-18T22:35:29.840 回答
2

Yo 给了我们(几乎)零关于您的要求的信息。例如:

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

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

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

于 2011-06-18T11:34:21.960 回答
2

@yi_H

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

您就缺乏要求等问题提出的所有其他观点,我赞同这一点。

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

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

于 2011-06-18T19:21:47.673 回答
0

分布与什么有关?

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

MongoDb 只限于主从复制,所以只有一个节点能够读/写,这给真正的分布式系统留下了单点故障。CouchDB 能够进行点对点复制。

在这里找到一个很好的比较,这里也与 hbase 进行了比较

使用 CouchDB,您还必须知道您将使用 http 与数据库通信并构建 web 服务。

问候,克里斯

于 2011-06-18T09:33:02.893 回答
0

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

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

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

资料来源:

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

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

于 2012-08-17T13:09:31.037 回答