我正在开发一个关于媒体存档,搜索,上传,分发以及处理BLOB的系统。
我目前正在尝试找出如何处理BLOB的最佳方法。对于具有大量内存和大磁盘的高端服务器,我的资源有限,但我可以访问大量中等性能的现成计算机并将它们连接到Internet。
因此,我决定不将BLOB存储在一个中央关系数据库中,因为在最坏的情况下,我会在一台平均机器上拥有一个非常繁重的数据库实例。不是一种选择。
将BLOB直接存储在文件系统上并将其路径存储在数据库中也有点难看,并且必须手动管理分发,自己跟踪不同的副本。我甚至都不想接近这一点。
我查看了CouchDB,我非常喜欢他们的基于点对点的设计。这将允许我在互联网上运行分布式机器集群,意味着:
因此,如果我做对了,可以这样总结一下:像API一样的云和自我管理,分布式,复制系统
系统的其余部分执行普通Web应用程序所做的正常操作:处理会话,安全性,用户,搜索等。对于这部分,我仍然想要使用关系数据模型。 (CouchDB声称不是关系数据库的替代品。)
所以我会拥有所有标准数据,包括关系数据库中的BLOB的元数据,但是CouchDB中的BLOB本身。
你觉得这种方法有问题吗?我错过了重要的事吗?你能想到更好的解决方案吗?
谢谢!