我对CouchDB 0.10进行了一系列有点残酷的测试,并且它处理得很好(例如服务器的netstack陷入困境,但最好的是我可以告诉CouchDB仍在运行).不幸的是,如果我不能说服客户和雇主允许我使用它,这一切都不重要*.
我听到的常见恐惧.
"这只是版本.10,甚至不是产品发布!"
"但[MySQL | PostGres | Oracle]适用于[对象元数据存储|文字"文档"存储|等]!"
"与XYZ相比,这看起来过于复杂(基于地图缩减的查询,REST api,JSON等)."
"这到底是怎么回事?"
*通常我的规则是告诉客户我将解决问题,但不详细说明.不幸的是,有些客户认为自己是后座建筑师/工程师,或者理所当然地希望得到通知.
**先发制人地认为这与编程有关,因为如果管理层不能/不会看到跨越已知的风险的好处,那么工具有多好并不重要.
几年前,我遇到同样的问题,试图说服客户使用python + postgreSQL而不是asp,php或其他任何东西.
除了解释技术优势之外,对我有用的是添加一些成功案例.
在CouchDB案例中,您可以引用:
BBC:英国广播公司的二郎
Meebo http://code.google.com/p/couchdb-lounge/
Ubuntu:Ubuntu One
Mozilla的
在这个演示文稿中,有一张幻灯片引用了其他公司.
我最喜欢的CouchDB背后KISS原理的一个例子是"所有代码路径都经过测试",CouchDB大约是15k行代码,而ActiveRecord,Rails的ORM大约是25k LoC(我上次检查过)只是为了制作RDBMS与OO语言的对话.虽然这显然是比较苹果和平房,但它应该表明CouchDB本身相对简单并且具有可管理的代码大小.(这一切都很重要,因为每行代码的错误数量是不变的)
CouchDB的另一个好处是它是一个Apache项目.它确保了一个稳定的社区(不一定是软件:)和长寿,在将资金投入到将要使用多年的项目之前,这一点很重要.
@renier是什么让你觉得MongoDB经过了更好的测试?此外,Erlang在单个核心上非常棒,并且在2个,4个或更多时不会跛脚.这并不是说你在使用单个cpu时只能获得它的好处.Erlang的设计原则使软件能够全天候运行,直到操作人员忘记如何对应用程序进行故障诊断,因为它永远不会中断(有一项英国电信研究支持这一点,它还提到了着名的9-nine可用性).