我想知道是否有人可以告诉我MongoDB或CouchDB是否准备好 production 环境 .
我现在正在研究这些存储解决方案(我现在很喜欢MongoDB),但是这些项目还很年轻,所以我预计我必须努力工作才能说服我的经理我们应该采用这个新技术 .
我想知道的是:
今天谁在 生产环境 环境中使用MongoDB或CouchDB?
您如何使用MongoDB / CouchDB?
当你采用这种新的存储机制时,你遇到了什么问题(如果有的话)(你是如何克服它们的)?
您是如何处理您必须处理的任何迁移问题的?
您对这些您想要分享的解决方案有任何好/坏经历吗?
我是10gen(MongoDB的开发人员)的首席技术官,所以我有点偏颇,但我也管理了一些在 生产环境 中使用MongoDB的网站 .
businessinsider一直在使用mongo 生产环境 一年多了 . 他们将其用于从用户和博客帖子到网站上的每个图像的所有内容 .
shopwiki正在将它用于一些事情,包括实时分析和缓存层 . 他们每秒对一个相当大的数据库进行超过1000次写入 .
如果你去mongodb Production Deployments page,你会看到一些人在 生产环境 中使用mongo .
如果您对 生产环境 部署的规模或范围有任何疑问,请在我们的用户列表中发布,我们非常乐意为您提供帮助 .
我们使用CouchDB存储移动入站和出站邮件,并通过我编写的一些自定义视图报告此流量 . 前端是用Python编写的 . 我们没有任何真正的技术问题,并且自12月底以来一直在运行 . 我遇到的唯一障碍是最初考虑MapReduce,但是一旦我学会了如何做到这一点,其他一切都很顺利 .
我在 生产环境 中使用CouchDB . 目前,它存储了原始数据库模式中不存在的所有“可选”字段 . 现在我正考虑将所有数据移到CouchDB .
我承认,这是一个非常冒险的步骤 . 首先,因为它还不是v1.0 . 其次,因为它是驱动器空间的饥饿 . 根据我的计算,CouchDB文件(带索引)比具有相同行的MySQL数据库大约30倍 . 但我很确定它会很好 .
MongoDB在向企业发放许可方面存在一些问题,我不确定细节,但我们的法律部门没有特别说明我们不允许在任何产品中使用MongoDB .
我们正在运行CouchDB作为我们商店的MySQL替代品(70.0000件商品/商店,所有商品共400万个属性,商品之间的交叉连接) .
我们的目标是:
从master-db轻松复制到具有不同文档的多个客户端 .
快速预先计算的数据,例如“我对此属性和过滤器有多少部分,适合这些条件”
事实:
我们的商店现在运行速度比使用MySQL快得多(而mysql数据库需要额外的1-3天预计算(因此每月更新两次),使数据准备好进行产品计数和过滤,CouchDB需要5个小时,所以我们可以每晚更新产品数据)
设置(过滤)数据分发和备份到商店节点是快速而简单的
但是也:
了解map / reduce以及没有连接的限制是非常困难的
对没有外部程序的"delete where"或"update where"等数据无操作
除非出现问题,否则复制效果很好;然后很难找出原因是什么(适合初学者)
如果你不是一个Linux极客,没有二进制文件的CouchDB的安装(是的,有一些在野外,但不适用于每个操作系统/版本)可能很难 . 但是CouchDB社区很有帮助(#couchdb),幸运的是有些公司(cloudant,iriscouch)提供从免费到大型企业的服务 .
CouchDB正在向前发展,因此有很多变化(改进)可能会改变你的工作方式 . 但基本的东西保持稳定 .
因此:MySQL作为数据创建和维护的数据库是可靠的,易于理解和处理 . 我想我们不会改变这一点 . 但我也不想错过CouchDB视图的强大功能和复制设置的简易性 .
由于配置错误和忘记了logrotates(视图构建需要太长时间或挂起,复制停止), 生产环境 沙发有时会在数月的工作后引起麻烦,但从不丢失数据,并且总是可以轻松重置 .
我们目前正在使用mongodb作为我们通过LAN协作的文件存储服务 . 此外,像trello这样的项目正在使用mongodb作为其后端数据存储区 . 我之前使用过couchdb,但没有使用过 生产环境 能力 .
CouchDB 0.11(3月底发布)是一个1.0的功能冻结版本 . 这意味着我们将保持与1.0的当前API的兼容性,所以现在是时候再看看CouchDB,如果你还没有 .
CouchDB 0.11 source code release is available here.有binary installers and other goodies linked here.
我已经在 生产环境 中使用CouchDB将近2年了 . 由于项目直接启动CouchDB实施,因此没有迁移工作 . 它用作存储从开始到包装的单个电子产品的数据的数据库 .
由于我们销售的传感器具有高精度的要求,我们在不同阶段进行了大量测试,所有这些都将存储在CouchDB上的一个文档中 .
我从我的经验中学到了一些学习曲线,即充分利用视图(或者也称为永久视图) . 视图应该是经常调用的数据库的一小部分的“小过滤器” .
我的CouchDB数据库并不像其他巨大的公司那样疯狂 . 但到目前为止,我仍然做得很好 . 目前我有400MB的24000个文件 .
我喜欢CouchDB的功能是“复制”,“存储文档的修订版” .
我在MongoDB上阅读了很多很好的评论,如果有机会,我会想尝试一下 .
我对MongoDB一无所知,但是从CouchDB FAQ:
CouchDB是否可以投入 生产环境 ?是的,请参阅InTheWild获取使用CouchDB的部分项目列表 . 另一个很好的概述是CouchDB案例研究
还有一些链接:
Re: Current CouchDB state?
SimpleDB, CouchDB and Other "NEW" Data Stores - Feedback
这个问题已经接受了答案,但现在又有一天,它的许多重要特征都在趋势中 . 这是 Couchbase ;在移动平台上运行 CouchbaseLite ,在服务器端运行 Couchbase Server .
Couchbase
CouchbaseLite
Couchbase Server
Here is some of main features of Couchbase Lite.
Couchbase Lite是一个轻量级,面向文档(NoSQL),可同步的数据库引擎,适合嵌入到移动应用程序中 .
Lightweight means:
嵌入式 - 数据库引擎是链接到应用程序的库,而不是单独的服务器进程 . 小代码大小 - 对于移动应用程序很重要,通常通过单元网络下载 . 快速启动时间非常重要,因为移动设备的CPU速度相对较慢 . 内存使用率低 - 典型的移动数据集相对较小,但某些文档可能具有大型多媒体附件 . 良好的性能 - 确切的数字取决于您的数据和应用程序,当然 .
Document-oriented means:
以灵活的JSON格式存储记录,而不是需要预定义的模式或规范化 . 文档可以具有任意大小的二进制附件,例如多媒体内容 . 应用程序数据格式可以随着时间的推移而发展,而无需显式迁移 . MapReduce索引提供快速查找,无需使用特殊查询语言 .
Syncable means:
任何两个数据库副本都可以通过高效,可靠,经过验证的复制算法实现同步 . 同步可以是按需或连续的(延迟几秒) . 设备可以与远程服务器上的大型数据库的子集同步 . 同步引擎支持间歇性和不可靠的网络连接 . 通过app逻辑完全控制合并,可以检测和解决冲突 . 修订树允许复杂的复制拓扑,包括服务器到服务器(用于多个数据中心)和点对点,无数据丢失或错误冲突 . Couchbase Lite为无缝iOS(Objective-C)和Android(Java)开发提供本机API . 此外,它还包括用于PhoneGap的Couchbase Lite插件,它使您能够使用熟悉的Web应用程序编程技术和PhoneGap移动开发框架构建您开发的iOS和Android应用程序 .
您可以在Couchbase Lite上浏览更多信息
和Couchbase Server
这将是下一件大事 .
我们正在使用mongodb进行 生产环境
www.beachfront.io - 每秒接近5k写入请求www.beachfrontbuilder.com - 每秒500次读/写请求,维护10m用户数据和olap .
面对数据归档所面临的唯一挑战,我们通过实现自定义组件来克服这些挑战 .
SourceForge使用MongoDB . 见this presentation或read here .
我们目前正在 生产环境 中使用MongoDB作为缓存层以及用于产品导入和操作产品数据的存储引擎 . 我们是一家电子商务公司,管理着超过200万种产品(1亿个属性),跨越10个分销商而没有MongoDB,这项任务几乎是不可能完成的 .
以下是使用mongoDB生成部署站点的列表
The New Yorks Times :在照片提交的表单构建应用程序中使用它 . Mongo缺乏模式使 生产环境 者能够定义自定义表单字段的任意组合 .
SourceForge :用于所有项目的SourceForge首页,项目页面和下载页面上的后端存储 .
Bit.ly
Etsy
IGN :为IGN的实时流量分析和RESTful内容API提供支持 .
Justin.tv :权力Justin.tv 's internal analytics tools for virality, user retention, and general usage stats that out-of-the-box solutions can'吨提供 .
Posterous
Intuit
Foursquare :ShardedMongo数据库用于foursquare上的大多数数据 .
Business Insider :从2008年初开始使用它 . 所有网站的数据,包括帖子,评论,甚至图像,都存储在MongoDB上 .
Github :用于内部报告应用程序 .
Examiner :将他们的站点从Cold Fusion和SQL Server迁移到Drupal 7和MongoDB .
Grooveshark :目前使用Mongo每天管理超过一百万个唯一身份用户会话 .
Buzzfeed
Discus
Evite :用于分析和快速报告 .
Squarespace
Shutterfly :用于Shutterfly中的各种持久性数据存储要求 . MongoDB帮助Shutterfly构建无与伦比的服务,使客户与生活中最重要的人之间 Build 更深入,更私密的关系 .
Topsy
Sharethis
Mongohq :为MongoDB提供托管平台,并使用MongoDB作为其服务的后端 . 我们的托管中心页面提供了有关MongoHQ和其他MongoDB托管选项的更多信息 .
和更多...
摘自:http://lineofthought.com/tools/mongodb
您也可以在那里查看其他数据库或工具 .
我们在 生产环境 中使用couchdb,并且在项目进入Apache保护伞之前 .
我们使用它来存储我们可能使用dbms的所有内容,以及各种非结构化数据 . 就个人而言,我真的很喜欢你可以把各种数据扔进去,并根据情况使用视图来剔除你不需要的东西 .
最困难的部分是远离dbms思维模式 . 当存储格式发生变化时,我们编写了自己的迁移工具,以确保安全,因此这不是一个真正的问题 .
我们还没有在任何巨大的负载下进行设置 . 我认为事情会很好用,因为我们有两个从一个主服务器复制的从属类型服务器可以获得所有的写入 . 我必须这样做才能使复制正常工作,但这就是我们在开始时设置它并且卡住的方式 .
我们在移动后端服务中使用MongoDB,即Netmera.我们正在使用它来存储所有用户和内容数据 .
BBC和meebo.com在 生产环境 中使用CouchDB,我的一个客户也是如此 . 这是一个使用Couch的其他人的列表:CouchDB in the wild
主要的挑战是知道如何组织文档并停止考虑关系数据 .
Adobe正在使用 MongoDB 将其即将发布的Adobe Experience Manager(以前称为Day CQ)作为核心数据库引擎 .
我工作的机构的几个客户正在大型客户的项目中使用 CouchDB .
在我看来,两者都是伟大而可行的数据库 . :)
说到 生产环境 ,无缝故障转移/恢复都需要保姆1- Couchbase,没有无缝的故障转移/恢复,需要手动干预 .如果多个节点丢失,重新 balancer 需要花费太多时间,风险太大 .
2- Mongo与分片,从丢失配置服务器恢复数据,并不是一件容易的事
19 回答
我是10gen(MongoDB的开发人员)的首席技术官,所以我有点偏颇,但我也管理了一些在 生产环境 中使用MongoDB的网站 .
businessinsider一直在使用mongo 生产环境 一年多了 . 他们将其用于从用户和博客帖子到网站上的每个图像的所有内容 .
shopwiki正在将它用于一些事情,包括实时分析和缓存层 . 他们每秒对一个相当大的数据库进行超过1000次写入 .
如果你去mongodb Production Deployments page,你会看到一些人在 生产环境 中使用mongo .
如果您对 生产环境 部署的规模或范围有任何疑问,请在我们的用户列表中发布,我们非常乐意为您提供帮助 .
我们使用CouchDB存储移动入站和出站邮件,并通过我编写的一些自定义视图报告此流量 . 前端是用Python编写的 . 我们没有任何真正的技术问题,并且自12月底以来一直在运行 . 我遇到的唯一障碍是最初考虑MapReduce,但是一旦我学会了如何做到这一点,其他一切都很顺利 .
我在 生产环境 中使用CouchDB . 目前,它存储了原始数据库模式中不存在的所有“可选”字段 . 现在我正考虑将所有数据移到CouchDB .
我承认,这是一个非常冒险的步骤 . 首先,因为它还不是v1.0 . 其次,因为它是驱动器空间的饥饿 . 根据我的计算,CouchDB文件(带索引)比具有相同行的MySQL数据库大约30倍 . 但我很确定它会很好 .
MongoDB在向企业发放许可方面存在一些问题,我不确定细节,但我们的法律部门没有特别说明我们不允许在任何产品中使用MongoDB .
我们正在运行CouchDB作为我们商店的MySQL替代品(70.0000件商品/商店,所有商品共400万个属性,商品之间的交叉连接) .
我们的目标是:
从master-db轻松复制到具有不同文档的多个客户端 .
快速预先计算的数据,例如“我对此属性和过滤器有多少部分,适合这些条件”
事实:
我们的商店现在运行速度比使用MySQL快得多(而mysql数据库需要额外的1-3天预计算(因此每月更新两次),使数据准备好进行产品计数和过滤,CouchDB需要5个小时,所以我们可以每晚更新产品数据)
设置(过滤)数据分发和备份到商店节点是快速而简单的
但是也:
了解map / reduce以及没有连接的限制是非常困难的
对没有外部程序的"delete where"或"update where"等数据无操作
除非出现问题,否则复制效果很好;然后很难找出原因是什么(适合初学者)
如果你不是一个Linux极客,没有二进制文件的CouchDB的安装(是的,有一些在野外,但不适用于每个操作系统/版本)可能很难 . 但是CouchDB社区很有帮助(#couchdb),幸运的是有些公司(cloudant,iriscouch)提供从免费到大型企业的服务 .
CouchDB正在向前发展,因此有很多变化(改进)可能会改变你的工作方式 . 但基本的东西保持稳定 .
因此:MySQL作为数据创建和维护的数据库是可靠的,易于理解和处理 . 我想我们不会改变这一点 . 但我也不想错过CouchDB视图的强大功能和复制设置的简易性 .
由于配置错误和忘记了logrotates(视图构建需要太长时间或挂起,复制停止), 生产环境 沙发有时会在数月的工作后引起麻烦,但从不丢失数据,并且总是可以轻松重置 .
我们目前正在使用mongodb作为我们通过LAN协作的文件存储服务 . 此外,像trello这样的项目正在使用mongodb作为其后端数据存储区 . 我之前使用过couchdb,但没有使用过 生产环境 能力 .
CouchDB 0.11(3月底发布)是一个1.0的功能冻结版本 . 这意味着我们将保持与1.0的当前API的兼容性,所以现在是时候再看看CouchDB,如果你还没有 .
CouchDB 0.11 source code release is available here.有binary installers and other goodies linked here.
我已经在 生产环境 中使用CouchDB将近2年了 . 由于项目直接启动CouchDB实施,因此没有迁移工作 . 它用作存储从开始到包装的单个电子产品的数据的数据库 .
由于我们销售的传感器具有高精度的要求,我们在不同阶段进行了大量测试,所有这些都将存储在CouchDB上的一个文档中 .
我从我的经验中学到了一些学习曲线,即充分利用视图(或者也称为永久视图) . 视图应该是经常调用的数据库的一小部分的“小过滤器” .
我的CouchDB数据库并不像其他巨大的公司那样疯狂 . 但到目前为止,我仍然做得很好 . 目前我有400MB的24000个文件 .
我喜欢CouchDB的功能是“复制”,“存储文档的修订版” .
我在MongoDB上阅读了很多很好的评论,如果有机会,我会想尝试一下 .
我对MongoDB一无所知,但是从CouchDB FAQ:
还有一些链接:
Re: Current CouchDB state?
SimpleDB, CouchDB and Other "NEW" Data Stores - Feedback
这个问题已经接受了答案,但现在又有一天,它的许多重要特征都在趋势中 . 这是
Couchbase
;在移动平台上运行CouchbaseLite
,在服务器端运行Couchbase Server
.Here is some of main features of Couchbase Lite.
Couchbase Lite是一个轻量级,面向文档(NoSQL),可同步的数据库引擎,适合嵌入到移动应用程序中 .
Lightweight means:
嵌入式 - 数据库引擎是链接到应用程序的库,而不是单独的服务器进程 . 小代码大小 - 对于移动应用程序很重要,通常通过单元网络下载 . 快速启动时间非常重要,因为移动设备的CPU速度相对较慢 . 内存使用率低 - 典型的移动数据集相对较小,但某些文档可能具有大型多媒体附件 . 良好的性能 - 确切的数字取决于您的数据和应用程序,当然 .
Document-oriented means:
以灵活的JSON格式存储记录,而不是需要预定义的模式或规范化 . 文档可以具有任意大小的二进制附件,例如多媒体内容 . 应用程序数据格式可以随着时间的推移而发展,而无需显式迁移 . MapReduce索引提供快速查找,无需使用特殊查询语言 .
Syncable means:
任何两个数据库副本都可以通过高效,可靠,经过验证的复制算法实现同步 . 同步可以是按需或连续的(延迟几秒) . 设备可以与远程服务器上的大型数据库的子集同步 . 同步引擎支持间歇性和不可靠的网络连接 . 通过app逻辑完全控制合并,可以检测和解决冲突 . 修订树允许复杂的复制拓扑,包括服务器到服务器(用于多个数据中心)和点对点,无数据丢失或错误冲突 . Couchbase Lite为无缝iOS(Objective-C)和Android(Java)开发提供本机API . 此外,它还包括用于PhoneGap的Couchbase Lite插件,它使您能够使用熟悉的Web应用程序编程技术和PhoneGap移动开发框架构建您开发的iOS和Android应用程序 .
您可以在Couchbase Lite上浏览更多信息
和Couchbase Server
这将是下一件大事 .
我们正在使用mongodb进行 生产环境
www.beachfront.io - 每秒接近5k写入请求www.beachfrontbuilder.com - 每秒500次读/写请求,维护10m用户数据和olap .
面对数据归档所面临的唯一挑战,我们通过实现自定义组件来克服这些挑战 .
SourceForge使用MongoDB . 见this presentation或read here .
我们目前正在 生产环境 中使用MongoDB作为缓存层以及用于产品导入和操作产品数据的存储引擎 . 我们是一家电子商务公司,管理着超过200万种产品(1亿个属性),跨越10个分销商而没有MongoDB,这项任务几乎是不可能完成的 .
以下是使用mongoDB生成部署站点的列表
The New Yorks Times :在照片提交的表单构建应用程序中使用它 . Mongo缺乏模式使 生产环境 者能够定义自定义表单字段的任意组合 .
SourceForge :用于所有项目的SourceForge首页,项目页面和下载页面上的后端存储 .
Bit.ly
Etsy
IGN :为IGN的实时流量分析和RESTful内容API提供支持 .
Justin.tv :权力Justin.tv 's internal analytics tools for virality, user retention, and general usage stats that out-of-the-box solutions can'吨提供 .
Posterous
Intuit
Foursquare :ShardedMongo数据库用于foursquare上的大多数数据 .
Business Insider :从2008年初开始使用它 . 所有网站的数据,包括帖子,评论,甚至图像,都存储在MongoDB上 .
Github :用于内部报告应用程序 .
Examiner :将他们的站点从Cold Fusion和SQL Server迁移到Drupal 7和MongoDB .
Grooveshark :目前使用Mongo每天管理超过一百万个唯一身份用户会话 .
Buzzfeed
Discus
Evite :用于分析和快速报告 .
Squarespace
Shutterfly :用于Shutterfly中的各种持久性数据存储要求 . MongoDB帮助Shutterfly构建无与伦比的服务,使客户与生活中最重要的人之间 Build 更深入,更私密的关系 .
Topsy
Sharethis
Mongohq :为MongoDB提供托管平台,并使用MongoDB作为其服务的后端 . 我们的托管中心页面提供了有关MongoHQ和其他MongoDB托管选项的更多信息 .
和更多...
摘自:http://lineofthought.com/tools/mongodb
您也可以在那里查看其他数据库或工具 .
我们在 生产环境 中使用couchdb,并且在项目进入Apache保护伞之前 .
我们使用它来存储我们可能使用dbms的所有内容,以及各种非结构化数据 . 就个人而言,我真的很喜欢你可以把各种数据扔进去,并根据情况使用视图来剔除你不需要的东西 .
最困难的部分是远离dbms思维模式 . 当存储格式发生变化时,我们编写了自己的迁移工具,以确保安全,因此这不是一个真正的问题 .
我们还没有在任何巨大的负载下进行设置 . 我认为事情会很好用,因为我们有两个从一个主服务器复制的从属类型服务器可以获得所有的写入 . 我必须这样做才能使复制正常工作,但这就是我们在开始时设置它并且卡住的方式 .
我们在移动后端服务中使用MongoDB,即Netmera.我们正在使用它来存储所有用户和内容数据 .
BBC和meebo.com在 生产环境 中使用CouchDB,我的一个客户也是如此 . 这是一个使用Couch的其他人的列表:CouchDB in the wild
主要的挑战是知道如何组织文档并停止考虑关系数据 .
Adobe正在使用 MongoDB 将其即将发布的Adobe Experience Manager(以前称为Day CQ)作为核心数据库引擎 .
我工作的机构的几个客户正在大型客户的项目中使用 CouchDB .
在我看来,两者都是伟大而可行的数据库 . :)
说到 生产环境 ,无缝故障转移/恢复都需要保姆
1- Couchbase,没有无缝的故障转移/恢复,需要手动干预 .
如果多个节点丢失,重新 balancer 需要花费太多时间,风险太大 .
2- Mongo与分片,从丢失配置服务器恢复数据,并不是一件容易的事