在过去的几年里,我对CouchDB项目感兴趣,并且看到它现在是一个Apache Incubator项目.在此之前,CouchDB网站充满了不用于生产代码类型的免责声明,所以我做的只不过是关注它.如果您一直在使用CouchDB进行实时项目或技术试用,我有兴趣了解您的经验.
经过18个月的原型测试,等待CouchDb准备就绪,我们于2008年12月将内部应用程序移至CouchDB.到目前为止,我对此举感到非常满意.它为我们摆脱了很多文件系统对象(PDF和JPEG,现在存储为CouchDB中的附件).这使我们能够摆脱NFS并更容易地集群/复制我们的前端Web服务器.
CouchDB为您做好准备的程度在很大程度上取决于您组织的文化.我们有一个内部开发团队,负责维护几个内部的Erlang应用程序.由于CouchDB是用Erlang编写的,而且代码库质量相当不错,我们有信心在需要时我们可以修复CouchDB中的show stopper问题 - 或者至少让我们的数据退出.我们还聘请了一名CouchDB核心团队担任顾问 - 以防万一.
但CouchDB肯定还不是1.0.Web工作进程中始终存在崩溃(如果您滥用它们).复制中断对我们而言,我们不会收到有关它的错误消息.文档仍然非常缺乏.我仍然相信它不会以合理的速度吃掉我们的数据和发展.
为了让您了解我们的应用程序:目前我们最大的数据库是大约512000条记录,占用7.5 GB的磁盘空间.
我使用CouchDB为Facebook应用程序提供支持(每月活跃用户超过35k).有一段时间它是使用MySQL但是在将整个项目从Perl移植到Erlang之后,我决定寻找黄金并将所有数据迁移到CouchDB中并使用它.
CouchDB是一个很好的数据存储.我认为它有望成为基于网络的服务的主要参与者.
我知道其中一个人(Jan)刚刚工作过(比如6个月),从那以后一直在玩它.我发现CouchDB周围的社区都非常了解和帮助,因此每当我遇到问题时,它至少在几分钟或几小时内得到解决.
我们刚刚开始了另一周的项目,这基本上要求我们以非关系方式存储数据,并且由于CouchDB的面向文档的存储,我们选择它作为要使用的技术之一.所以这实际上是我第一次在生产中运行它,但我仍然对此非常有信心.:)
这里只是一个更新(2009-10-25):
我们的第一个CouchDB安装是20 GB,它拥有4000万条记录.它自2009年1月开始投入生产,并且非常棒.Read(GET
)速度非常出色,我们将它用作复杂数据的存储,然后它就是拉.
我们的第二个couchdb分期付款有两个数据库,一个是160,000,000多个文档(210 GB),每天增加150,000到300,000个文档.另一种是只有 3500万的文件(7 GB).此设置具有更多的读取和写入,初始测试表现非常好.
在160,000,000文档数据库上构建视图大约花了一周时间,但从那时起我们升级到更大的Amazon EC2实例,我们也准备更新到CouchDB 0.10.x
(来自0.9.1
),因为此版本在视图构建中包含了很多性能改进.
我在几个场景中使用couchdb,作为http://devk.it(正在开发中)的文档存储,并且在更大规模上作为分布式电子邮件传递系统的模板存储.
CouchDB对它的功能非常灵活,但我无法让它以与我预期的一样高的并发级别运行.另请注意,由于mochiweb中硬编码的最大输入缓冲区大小,最大文档大小相当于1MB.但是,您可以更改头文件并重新编译以绕过此限制.
我正在使用CouchDB在我的博客上存储(并提供)文章评级.这并不是非常繁忙的交通,但到目前为止它一直坚如磐石.
还计划在某个时候添加评论,我很可能也会存储在CouchDB中.
我发现很容易上手,在OSX上你可以下载CouchDBX来快速入门.我使用带有RestClient的Sinatra后端通过直接的HTTP动词等与"沙发"进行交互.
非常有趣.