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

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

我想知道的是:

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


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

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

还有一些链接:

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


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

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

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

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


我是10gen (MongoDB的开发者)的CTO,所以我有点偏见,但我也管理一些在生产中使用MongoDB的网站。

Businessinsider已经在生产中使用mongo一年多了。从用户和博客文章,到网站上的每张图片,他们都在使用它。

Shopwiki正在使用它做一些事情,包括实时分析和缓存层。它们每秒对一个相当大的数据库进行超过1000次的写入。

如果你进入mongodb生产部署页面,你会看到一些人在生产中使用mongodb。

如果您对生产部署的规模或范围有任何疑问,请在我们的用户列表中发帖,我们将非常乐意提供帮助。


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


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

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


SourceForge使用MongoDB。看这个演示或者阅读这里。


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

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


CouchDB 0.11(发布于3月底)是1.0版本的特性冻结版。这意味着我们将保持与当前1.0版API的兼容性,所以现在是重新研究CouchDB的好时机(如果您很久没有研究过)。

CouchDB 0.11源代码发布在这里。这里链接了二进制安装程序和其他好东西。


我们目前在生产中使用MongoDB作为缓存层和存储引擎,用于产品导入和操作产品数据。我们是一家电子商务公司,管理着超过200万个产品(1亿多个属性),横跨10多个分销商,如果没有MongoDB,这项任务几乎是不可能的。


我们将CouchDB作为MySQL的替代品运行在我们的商店(70.0000个商品/商店,所有商品的属性总数为400万个,商品之间的交叉连接)。

我们的目标是:

从master-db轻松复制到具有不同文档的多个客户端。 快速预计算数据,比如“这个属性和那个过滤器有多少部分符合这些条件”

事实:

我们的商店现在运行得比使用MySQL快得多(MySQL数据库需要额外的1-3天的预计算(因此每月更新两次),使数据为产品计数和过滤做好准备,CouchDB需要5个小时,所以我们可以每晚更新产品数据) 设置(过滤)数据分布和备份到商店节点是快速和容易的

但也:

Understanding map/reduce and the limits of not having joins is quite hard No operation on data like "delete where" or "update where" without external programs Replication works well, unless there is a problem; then it's really hard to find out what was the reason (for beginners) The installation of CouchDB without binaries (yes there are a some in the wild, but not for every OS/version) could be hard, if you are not a Linux geek. But the CouchDB Community is helpful (#couchdb), and luckily there are companies out there (cloudant, iriscouch) that offer services from free to big business. CouchDB is moving forward, so there are a lot of changes (improvements) going on that might change they way you work. But basic things remain stable.

结果是: MySQL作为数据创建和维护的数据库是可靠的,易于理解和处理。我认为我们不会改变这一点。 但我也不想错过CouchDB视图的强大功能和复制设置的便利性。

在工作了几个月之后,生产沙发有时会因为错误配置和忘记日志(视图构建花费太长时间或挂起,复制停止)而造成麻烦,但从未丢失数据,并且总是可以轻松重置。


我们在生产中使用MongoDB的移动后端服务,即Netmera。我们使用它来存储所有用户和内容数据。


我们目前使用mongodb作为局域网协作的文件存储服务。 此外,像trello这样的项目使用mongodb作为后端数据存储。 我以前使用过couchdb,但没有用于生产能力。


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


我在生产中使用CouchDB已经快2年了。没有迁移工作,因为项目直接从CouchDB实现开始。它作为一个数据库,存储单个电子产品从开始到包装的数据。

由于我们销售的传感器对精度有很高的要求,我们在不同的阶段做了大量的测试,所有这些都将存储在CouchDB上的一个文档中。

我从我的经验中学到了一些学习曲线,那就是充分利用视图(也称为永久视图)。视图应该是数据库中经常被调用的部分的“小过滤器”。

我的CouchDB数据库不像其他大公司那样疯狂。但到目前为止,我做得还不错。目前我有24000个700MB的文档。

我喜欢CouchDB的特性是“复制”,“存储文档的修订”。

我读了很多关于MongoDB的好评,如果有机会,我想尝试一下。


我们在生产中使用mongodb

www.beachfront.io -接近每秒5k的写请求 www.beachfrontbuilder.com -每秒500个读写请求,维护1000万用户数据和olap。

我们通过实现自定义组件克服了数据归档面临的唯一挑战。


这个问题已经有了答案,但现在又有了一个NoSQL DB,它的许多伟大的特性正在成为趋势。它是Couchbase;它在移动平台上作为CouchbaseLite运行,在服务器端作为Couchbase Server运行。

下面是Couchbase Lite的一些主要特性。

Couchbase Lite是一个轻量级、面向文档(NoSQL)的语法数据库引擎,适合嵌入到移动应用程序中。

轻量级的意思是:

嵌入式——数据库引擎是一个链接到应用程序的库,而不是一个单独的服务器进程。 小代码大小——对于移动应用程序来说很重要,因为移动应用程序通常是通过蜂窝网络下载的。 快速启动对时间非常重要,因为移动设备的cpu相对较慢。 低内存使用—典型的移动数据集相对较小,但一些文档可能具有较大的多媒体附件。 当然,良好的性能-确切的数字取决于您的数据和应用程序。

面向文档的意思是:

以灵活的JSON格式存储记录,而不需要预定义的模式或规范化。 文档可以有任意大小的二进制附件,比如多媒体内容。 应用程序数据格式可以随着时间的推移而变化,而不需要显式的迁移。 MapReduce索引提供了快速查找,而不需要使用特殊的查询语言。

Syncable的意思是:

Any two copies of a database can be brought into sync via an efficient, reliable, proven replication algorithm. Sync can be on-demand or continuous (with a latency of a few seconds). Devices can sync with a subset of a large database on a remote server. The sync engine supports intermittent and unreliable network connections. Conflicts can be detected and resolved, with app logic in full control of merging. Revision trees allow for complex replication topologies, including server-to-server (for multiple data centers) and peer-to-peer, without data loss or false conflicts. Couchbase Lite provides native APIs for seamless iOS (Objective-C) and Android (Java) development. In addition, it includes the Couchbase Lite Plug-in for PhoneGap, which enables you to build iOS and Android apps that you develop by using familiar web-application programming techniques and the PhoneGap mobile development framework.

你可以在Couchbase Lite上探索更多

和Couchbase服务器

这将成为下一个大事件。


就生产而言,无缝故障转移/恢复都需要一个保姆 1- Couchbase,没有无缝的故障转移/恢复,需要人工干预。重新平衡需要太多时间,如果丢失多个节点,风险也会很大。

2- Mongo与shards,数据恢复从松散的配置服务器,不是一个容易的任务


Adobe正在使用MongoDB作为他们即将发布的Adobe Experience Manager(以前的Day CQ)的核心DB引擎。

在我工作的机构中,有几个客户在大客户的项目中使用CouchDB。

在我看来,这两个都是伟大而可行的DBs。:)


下面是mongoDB生产部署站点的列表

The New Yorks Times: Using it in a form-building application for photo submissions. Mongo's lack of schema gives producers the ability to define any combination of custom form fields. SourceForge: is used for back-end storage on the SourceForge front pages, project pages, and download pages for all projects. Bit.ly Etsy IGN: powers IGN’s real-time traffic analytics and RESTful Content APIs. Justin.tv: powers Justin.tv's internal analytics tools for virality, user retention, and general usage stats that out-of-the-box solutions can't provide. Posterous Intuit Foursquare: Sharded Mongo databases are used for most data at foursquare. Business Insider: Using it since the beginning of 2008. All of the site's data, including posts, comments, and even the images, are stored on MongoDB. Github: is used for an internal reporting application. Examiner: migrated their site from Cold Fusion and SQL Server to Drupal 7 and MongoDB. Grooveshark: currently uses Mongo to manage over one million unique user sessions per day. Buzzfeed Discus Evite: Used for analytics and quick reporting. Squarespace Shutterfly: is used for various persistent data storage requirements within Shutterfly. MongoDB helps Shutterfly build an unrivaled service that enables deeper, more personal relationships between customers and those who matter most in their lives. Topsy Sharethis Mongohq: provides a hosting platform for MongoDB and also uses MongoDB as the back-end for its service. Our hosting centers page provides more information about MongoHQ and other MongoDB hosting options.

和更多的……

提取: http://lineofthought.com/tools/mongodb

你也可以在那里查看其他数据库或工具。