Couchbase发布Couchbase Server 2.0 GA

Couchbase Server 2.0的主要特性包括灵活的JSON数据模型,分布式的索引和查询,增量的map-reduce以及跨数据中心的复制。

在2011年7月发布开发者预览版之后,又经过了漫长的孵化,Couchbase发布了Couchbase Server 2.0的正式版本。它是一个NoSQL解决方案,结合了内存缓存的键-值存储功能和面向文档数据库的功能。

Couchbase Server(CS)使用了基于JSON的数据模型和可选的数据库模式,最终提供了一致性的视图,而这些视图是一些键-值表,用户能够通过它们迭代、选择或查询存储在文档内的信息。视图通过增量map-reduce操作生成,开发者能够通过它们为应用提供简单的实时分析。视图查询会被分配到集群中单独的节点上,来自每个节点的结果会在响应返回之前进行合并和校验。

Couchbase Server 2.0引入了跨数据中心复制(XDCR),允许数据库管理员在集群和数据桶(data bucket)之间复制数据。该功能提供了一种灾难恢复的途径,同时也对广泛分布的应用进行了局部改善。

CS在内存中执行数据改变,稍后会使用SQLite将所有文档提交到磁盘进行持久化。这里有一个改进,只追加持久化引擎(append-only persistence engine)会将所有的更新添加到文件末尾,从而避免数据损坏并加快写入速度。

Couchbase为Linux(Ubuntu、Red Hat)、Windows和Max OS X提供了32位和64位的社区版和企业版。社区版是免费的,面向狂热者,并不推荐在生产环境中使用,因为根据版本规范,“解决并验证QA循环是企业版发布流程的一部分,而社区版并没有经过迭代测试,因此它不会包含最新的EE特定的bug修复”。

Couchbase还为Java、.NET、PHP、Ruby、C和Python提供了SDK,同时还为Node.js和Go提供了实验性的客户端库。社区则为Clojure、Erlang、Node.js、Perl、Python和TCL开发创建了很多其他的客户端库。

Couchbase Server是由Apache CouchDB和Membase这两种技术合并而成。但是,虽然CS继承了CouchDB的大部分功能,该项目使用了一个不同的路径:在GitHub上创建了自己的开源项目。在一次InfoQ的采访中,Couchbase解释说:

在团队开始集成Apache CouchDB和Membase构建Couchbase时,他们最初以Membase作为基础技术。Apache CouchDB的部分代码被用于替换Membase存储后端,同时为Couchbase Server中的索引和查询提供基础。但是,为了满足分布式数据库情况下性能和资源利用的需要,大量内容被重写。例如,使用C语言优化并重新实现了整个文件存储路径,同时只保留了Couchbase前端所需要的功能。这样做的结果便是,虽然Couchbase深受Apache CouchDB技术的影响,但是它却独具特色。索引和查询方面的许多内容都与Apache CouchDB向上兼容,而文档获取和管理API则与Membase向上兼容。当然,Couchbase是100%开源的(Apache 2.0协议),因此任何想要使用它的人都可以自由地获取它的所有代码。

CS和CouchDB在文档相关的功能上的主要区别是:

Couchbase Server使用一个基于memcached API的文档操作API(上面提到的),因此它提供了一个不同的操作集(例如,原子递增和递减、没有公开文档修正等)。

索引语义发生了变化。与Apache CouchDB不同的是,Couchbase Server默认有一个最终的索引模型,当数据到达存储层时会在此进行异步地索引,在客户端则能够为每个操作选择不同的语义。

尽管我们有少数雇员对Apache CouchDB的态度很积极,但是它的创建者Damien Katz的焦点则是Couchbase,因此Couchbase很可能会与原始的项目越来越远。

查看英文原文:Couchbase Releases Couchbase Server 2.0 GA

感谢杨赛对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(Couchbase发布Couchbase Server 2.0 GA)