我正在开发一个关于媒体归档,搜索,上传,分发和处理BLOB的系统。将关系和基于文档的“数据库”结合起来
我目前正试图找出如何处理BLOB的最佳方式。对于拥有大量内存和大容量磁盘的高端服务器,我的资源有限,但我可以访问大量中等性能的现成电脑,并将它们挂接到Internet上。
因此,我决定不店的BLOB的中央关系数据库,因为我会再有,在最坏的情况下,一个非常沉重的数据库实例,可能是一个平均的机器上。没有选择。
直接在文件系统上存储BLOB作为文件并将它们的路径存储在数据库中也有点难看,并且分发将不得不手动管理,并且自己跟踪不同的副本。我甚至不想接近这一点。
我看着CouchDB,我非常喜欢他们的基于对等的设计。这将让我在互联网上运行的机器的分布式集群,意味着:
- 低成本硬件
- 分布的冗余和故障转移的开箱
- 轻量级REST接口
所以如果我说得对,我可以这样总结:像API和自我管理,分布式,复制系统的云
系统的其余部分完成普通Web应用程序的常规工作:处理会话,安全性,用户,搜索等。对于这部分我仍然想使用关系数据模型。 (CouchDB声称不是是关系数据库的替代品)。
因此,我将拥有关系数据库中的所有标准数据,包括BLOB的元数据,但BLOB本身在CouchDB中。
您是否看到这种方法存在问题?我错过重要的东西吗?你能想出更好的解决方案吗?
谢谢!
蒙戈也更接近于关系模型,所以你也许可以只使用脱身,而不是沙发+关系。 – kristina 2009-08-05 20:40:34