任何人使用CouchDB?
在过去的几年里,我一直关注着CouchDB项目,并且看到它现在是一个Apache孵化器项目。 在此之前,CouchDB网站充满了不用于生产代码types免责声明,所以我没有更多的关注它。 如果您已经将CouchDB用于实时项目或技术飞行员,那么我有兴趣了解您的经历。
在18个月的原型,testing和等待CouchDb做好准备之后,我们于2008年12月将一个内部应用程序移交给了CouchDB。到目前为止,我对此感到非常高兴。 它为我们摆脱了许多文件系统对象(PDF和JPEG,现在作为附件存储在CouchDB中)。 这使我们摆脱了NFS,更容易集群/复制我们的前端Web服务器。
CouchDB为您准备的程度取决于您的组织文化。 我们有一个内部开发团队维护几个内部的Erlang应用程序。 由于CouchDB是用Erlang编写的,代码库的质量相当不错,所以我们相信,如果需要,我们可以在CouchDB中修复show stop问题 – 或者至less让我们的数据恢复。 为了以防万一,我们还聘请了一名CouchDB核心团队担任顾问。
但是CouchDB当然不是1.0。 Web工作进程中一直存在崩溃(如果您滥用)。 复制突破了我们,我们没有得到关于它的错误消息。 文档还是非常缺乏。 不过,我相信,它不会吃掉我们的数据,并以合理的速度向前发展。
给你一个关于我们的应用程序的想法:目前我们最大的数据库是大约512000个logging7.5GB的磁盘空间。
我使用CouchDB为Facebook应用程序(每月活跃用户数超过3.5万)提供支持。 有一段时间它使用的是MySQL,但是将整个项目从Perl移植到Erlang之后,我决定将所有数据迁移到CouchDB中,然后使用它。
CouchDB一直是一个伟大的数据存储工作。 我认为它正在成为networking服务的主要参与者。
我刚刚认识了其中一个人(Jan),前一段时间(6个月)就开始工作了,从那以后一直在玩。 我发现CouchDB的社区是非常有知识和有用的,所以每当我遇到问题,至less在几分钟或几小时内就解决了。
我们在第二周就开始了一个项目,基本上要求我们以非关系的方式存储数据,而且由于CouchDB面向文档的存储,我们select了它作为使用的技术之一。 所以这实际上是我第一次在生产中运行它,但我仍然对此非常有信心。 🙂
只是在这里更新(2009-10-25):
我们的第一个CouchDB安装是20 GB,它拥有4000万条logging。 自2009年1月份开始投入生产,效果很好。 读取( GET
)速度非常出色,我们将其用作复杂数据的存储,然后只是拉取。
我们的第二个couchdb安装包含两个数据库,一个是1.6亿个文档(210 GB),每天增长15万到30万个文档。 另一个只有 3500万文件(7 GB)。 这个设置有更多的读写,并且初始testingperformance非常好。
在1.6亿文档数据库上查看大楼大概需要一周的时间,但是从那时起,我们升级到了一个更大的Amazon EC2实例,我们也准备升级到CouchDB 0.10.x
(从0.9.1
),因为这个版本包含了很多的性能视图build设的改进。
我在几个场景中使用了couchdb,作为http://devk.it (正在开发中)的文档存储,以及作为分布式电子邮件传送系统的模板存储的更大规模。
CouchDB对于它所做的事情非常敏感,但是我无法让它在我所期望的最高并发级别上运行。 另请注意,由于mochiweb中最大input缓冲区大小的硬编码,最大文档大小相当于1MB。 你可以改变一个头文件并重新编译来绕过这个限制。
我正在使用CouchDB在我的博客上存储(并提供)文章评分。 这不是交通繁忙,但迄今为止坚如磐石。
同时也计划添加评论,我很可能也将存储在CouchDB中。
我发现很容易入门,在OSX上,你可以下载CouchDBX来快速入门。 我使用一个带RestClient的Sinatra后端通过直接的HTTP动词等与“沙发”进行交互。
非常有趣。
目前我正在与CouchDB合作撰写计算机科学论文。 我正在写我的博客http://metalelf0dev.blogspot.com关于我的进展和意见。; 我认为这个项目做得很好,但是现有的文档没有按照应该组织。 关于被褥web界面的快速教程可能是真正有用的初学者恕我直言:)
我在生产中使用了两次couchdb。 首先是wiki喜欢的项目,我认为couchdb是完美的候选人。 保存所有文档的版本帮助很大。 第二个项目是查询加载和想法是先倾倒社交数据,然后用各种filter查询。 它看起来像标准的CouchDB查询function看起来有点纯粹为我们的需要。 但是我们像Lucene一样在全文索引器中添加Lucene,然后在Lucene部分做很多查询。 而且这个解决scheme看起来不错。