Damien Katz 弃 Apache CouchDB,继以 Couchbase Server

  • Abel Avram
  • 郭晓刚

2012 年 1 月 18 日

话题:DevOps大数据架构AI

Damien Katz 因为遗弃 Apache CouchDB,转为投入 Couchbase Server,并且将大部分代码从 Erlang 移植到 C/C++ 的事情引起了一些争议,InfoQ 对他进行了采访。另外我们对社区的反应做了一点汇总。

CouchDB的创造者 Damien Katz 在博客上发表了关于 CouchDB 重大变化的声明和他对于今后参与此项目的定位。Katz 希望将他的后续贡献投入到 Couchbase Server,这是一个将 CouchDB 与MembaseMemcached相结合的产品,只是该产品“绝对与 Apache 无关”。他做出这样的决定,是因为认为“已经到达了一个转折点,原来那种事事求得共识的方式已经成了限制项目竞争力的障碍”。他还说,如果能够重来的话,他会推翻很多原来的做法。其中一个重要变化是把很大部分的 Erlang 代码移植成 C/C++。

为了澄清这些说法,我们找到了 Katz。

InfoQ:从你的声明来看,似乎认为 Apache 的运作流程太迟钝,不利于产品的竞争力。Apache 的主要问题在哪里?

DK:我们要快速响应客户和用户的需求,事实证明在 Apache 项目流程之下,常常很难做到,而且十分折腾。保持两边的代码同步极其痛苦。

InfoQ:如果 CouchDB 可以重来,你会改变哪些事情?

DK:我会改变很多小的设计决策,大方面的设计还是不会动的。按照我现在积累的经验,我不会选择 Erlang。不过现在的经验也是在 Erlang 的帮助下,经过学习和证明才积累起来的,所以也不能把选择 Erlang 说成是一个错误。要是现在重新来过,我就有经验了。

InfoQ:经过 CouchDB 这样的大型产品的实际测试,你认为 Erlang 当前存在什么问题?它的局限在哪里?

DK: Erlang 是很好的语言。非常可靠,非常容易建造出可靠、健壮的系统。但是它的生态圈太小,与其他流行的语言相比,围绕工具、性能方面的投入显得不足。我倒是希望 Erlang 能成为主流。 Erlang 一点都不比 Java 差,但它的怪异语法令人敬而远之,不但阻碍了流行,也进一步阻碍了商业上的投入。我现在还是热爱 Erlang 的,很多关键的组件还会用 Erlang 来写,只不过在性能要求特别突出的部分会用得越来越少。

老资格的 CouchDB 用户 Till Klampaeckel责备了 Katz 的告别方式

关键不是 Damien 离开这件事,而是他的离开方式

功成身退是常有的事情,谁也不会去指责。我自己也常常这样做,写好代码,公开出去,放下包袱继续前进。

如果代码还行,会有别的人接着做下去;如果不行,就让它放在 Github 上面发霉。在这点上 CouchDB 和别的项目没什么两样。可是为什么一个人自己不想继续投入了,就要跑出来宣布项目死亡呢?

Klampaeckel 还说出“CouchDB 的未来——不是 Damien Katz”这样的重话。

Katz 就整个事件在Twitter 上面发了一点感想:“我今天才知道,如果你建立了一个开源项目,就非得一辈子绑在上面。你一家温饱可以从天上掉下来。” 针对很多反感 其立场的用户和贡献者的的言论(详细请看在Katz 的帖子后面的留言),他回应说:“我要说清楚,如果你喜欢 Apache CouchDB,完全没必要离开。只是说我正在做的一些东西,我认为你会更喜欢。万一我错了,大家总归还有 Apache CouchDB。”

开发 Couchbase 的公司在 12 月份做了一次产品线重整,终止了 Couchbase Single Server 产品,Couchbase Mobile 也不再作为独立产品存在,而是改名为 Mobile SyncPoint 集成到 Couchbase Server,以避免营销上的混淆。该公司将停止提供实为 CouchDB 二进制发行包的 Single Server,把精力集中到与 CouchDB 分道扬镳的 Couchbase Server 产品。公司 CEO Bob Wiederhold 如是说:

虽然 Couchbase Server 2.0 将继续包含来自 CouchDB 项目的大量技术,但它将不再对 CouchDB 向上兼容,今后也不应该将它看作是 CouchDB 的一个版本。

Mobile SyncPoint 将成为客户端或服务端应用向 Couchbase Server 同步数据的一个框架。公司 VP 及联合创始人 James Phillips 提到他们保持协议与 CouchDB 一致的决心:

我们的目标是保持在线复制协议与 Apache CouchDB 项目 100% 兼容。我们 * 不 * 打算让移动产品跟 Couchbase Server 2.0 产品紧密耦合。我们承诺你可以用我们的 iOS Mobile 组件与标准的 Apache CouchDB 服务器通信。

Matt Ingenthron 说他们会把被终止的 Single Server 发布版贡献给 Apache CouchDB,至于是否接受、如何集成都取决于 Apache CouchDB 项目成员。他对这次调整定位的看法是:”这是一个艰难的决定;我们作为一家公司,用在产品上的精力不可以分散。”

与 Apache CouchDB 分手的决定,看起来一方面与产品的发展方向有关,另一方面受到经济问题的影响。Damien Katz 和他的团队投入了巨大的精力在结合 CouchDB 和 Membase 上面,其中一些人还在为 Apache CouchDB 作贡献,而大部分人员都参与了另一个单独的Couchbase 项目,该项目同样是 Apache 许可协议下的开源项目。

查看英文原文:Damien Katz Abandons Apache CouchDB, Continues with Couchbase Server

DevOps大数据架构AI