我想知道是否有人可以告诉我MongoDB或CouchDB是否已经为生产环境做好了准备。

我现在正在研究这些存储解决方案(目前我更喜欢MongoDB),但是这些项目还很年轻,所以我预见到我将不得不非常努力地说服我的经理,我们应该采用这种新技术。

我想知道的是:

现在谁在生产环境中使用MongoDB或CouchDB ? 你如何使用MongoDB/CouchDB? 当你采用这种新的存储机制时,你遇到了什么问题(如果有的话)(你是如何克服它们的)? 你是如何处理你不得不面对的移民问题的? 你有任何好的或坏的经验,这些解决方案,你想分享吗?


当前回答

我们在生产环境中使用couchdb,就在项目被纳入Apache保护伞之前。

我们用它来存储所有可能使用dbms的数据,以及各种非结构化数据。就我个人而言,我非常喜欢这样一种方式:您可以将各种数据放入其中,并使用视图根据情况剔除不需要的数据。

最难的部分是摆脱dbms的思维模式。为了安全起见,当存储格式改变时,我们编写了自己的迁移utils,所以这并不是真正的问题。

我们还没有任何负面的经历,但我们也没有在任何巨大的负载下进行设置。我认为事情会运行得很好,因为我们有两个从服务器,从一个主服务器复制所有的写操作。我很确定我们不需要这样做才能正确地进行复制,但这就是我们一开始设置的方式,它一直存在。

其他回答

我在生产中使用CouchDB。目前它存储了所有不在原始DB模式中的“可选”字段。现在我正在考虑将所有数据转移到CouchDB。

我承认这一步很冒险。首先,因为它还不是1.0版本。其次,因为它需要大量的驾驶空间。根据我的计算,CouchDB文件(带索引)比具有相同行的MySQL数据库大30倍。 但我很确定它会好起来的。

MongoDB在授权给企业方面存在一些问题,我不确定细节,但我们的法律部门不明确地告诉我们,我们不允许在我们的任何产品中使用MongoDB。

我对MongoDB一无所知,但从CouchDB常见问题解答:

CouchDB准备好投入生产了吗? 是的,请参阅InTheWild以获得使用CouchDB的部分项目列表。另一个很好的概述是CouchDB案例研究

还有一些链接:

回复:当前CouchDB状态? SimpleDB, CouchDB和其他“新”数据存储-反馈

BBC和meebo.com在生产中使用CouchDB,我的一个客户也是如此。 下面是在野外使用Couch: CouchDB的其他用户的列表

主要的挑战是知道如何组织文档,并停止从关系数据的角度思考问题。

我们使用CouchDB存储移动入站和出站消息,并通过我编写的一些自定义视图报告此流量。前端是用Python编写的。我们没有任何真正的技术问题,它自12月底以来一直在运行。我遇到的唯一障碍是最初从MapReduce的角度思考,但一旦我学会了如何做到这一点,其他一切都很顺利。