技术开发 频道

2012年Couchbase整装待发 新版亮点

  【IT168 专稿】NoSQL数据库Couchbase在2012年预计将会发生一些大事件。该公司计划发布一个新的数据库,作为Apache CouchDB的升级产品。

  Couchbase成立于2011年2月CouchOne和Membase合并之时。在过去的一年里,该公司迅猛发展,并超过CouchDB。“从产品的角度来看,我们最近正在准备将CouchDB与Couchbase进行整合,”Couchbase CEO Bob Wiederhold介绍道。

2012年Couchbase整装待发 新版亮点

  Couchbase Server产品以前被称为Membase Server。公司近期决定不再支持名为“Couchbase Single Server”的产品,该产品是Apache CouchDB的一个分支软件包。“我们提供Couchbase Single Server本意只是是想帮助人们找到打包数据的地方,” Wiederhold表示: “在2011年的2月份我们推出了这一产品,但事实并非如此, Couchbase Single Server似乎让人们感到更加困扰。”Wiederhold指出Couchbase Single Server不同于Couchbase Server,它并没有解决产品之间的兼容性问题。这也是Couchbase Single Server产品自2012年1月23日起不再提供的原因。所有该产品的代码和软件包将捐赠给Apache CouchDB项目。

  更复杂的问题是,CouchDB仍然是Couchbase Server的一个关键组件,Couchbase的另外一个关键组件是开源的memcached缓存技术。Wiederhold 表示:“我们与memcached社区建立了很好的联系,我们也想继续与Apache CouchDB的合作。”

  Couchbase 2.0即将发布

  Couchbase的下一代产品目前处在开发者预览阶段,新版本Couchbase 2.0或将于几个月内发布。

  “Couchbase 2.0是真正的Membase Server 1.7的扩展,” Couchbase 的联合创建人及高级副总裁James Phillips表示,“这是我们已经完成的一个功能版。”Philips指出该计划是要发布一款无预定义结构的、实时动态的数据库,能够更快的索引和查询数据。“我们相信这个版本将会扩大应用数量的使用人群。” Philips信心满满的表示。

  Couchbase Server本身就是一个非常积极的开源项目,根据Phillips的介绍,将会有一个免费的社区版本发布,它代表着开源项目的领先水平。另外会有一个企业版发布,它基于Couchbase Server项目,并且加入了一些支持工具。企业版同样经过优化,以确保Couchbase成为一款可持续提供支持的产品。

  “这一产品并没有定制功能,” Wiederhold强调,“我们也没有提供定制功能的计划。”

  Couchbase2.0重大更新

  早在Couchbase2.0的preview版本开始测试时,官方即公布了如下两个重大更新:

  1.对数据进行了压缩存储

  数据包括索引和文档数据,你可以选择使用Google’s Snappy或者zlib deflate压缩。数据在存在到文件之前会进行相应的压缩,这样大大减少了I/O量。

  2.异步IO操作

  2.0版本中,CouchDB的写文件操作会直接返回,然后当数据真的写到文件中后,调用方会可以得到一个通知,这样做的好处是,在本来会block住等待I/O返回的时间里,程序可以做一些CPU密集型的操作。这种异步机制也大大减小了I/O对整体性能的影响。

  CouchBase——CouchDB与Membase的结合

  Couchbase是由CouchOne(创办人包括CouchDB的设计者)和Membase(由memcached的主要开发人员建立)两家公司在2011年初合并而来。CouchDB是面向文档的NoSQL数据库的优秀代表,对移动设备有着良好的支持。Memcached则是一款完善的分布式存取系统。两家公司的合并可谓优势互补,极可能产生1+1>2的效果,焕发出更强的活力。

  Couchbase提供了构建网络和移动应用程序的数据库解决方案。该公司推出了他们合并后的首个集成产品Couchbase Server 2.0,它继承了CouchOne和Membase两家之长,是一个分布式面向文档的数据库管理系统。

  Couchbase已经完成了一笔1400万美元的C轮融资,在此轮融资后公司总资本升至3000万美元。Couchbase表示,他们将利用这笔新的资金来加速NoSQL数据库技术的普及,并努力拓展公司在企业市场和国际市场的份额。

  CouchDB——面向文档的NoSQL数据库

  CouchDB是用Erlang开发的面向文档的数据库系统,是Apache基金会的优异开源项目。其数据存储方式有点类似lucene的index文件格式,它提供以JSON作为数据格式的REST接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。CouchDB最大的意义在于它是一个面向web应用的新一代存储系统,事实上,CouchDB的口号就是:下一代的Web应用存储系统。

  与现在流行的关系数据库服务器不同,CouchDB是围绕一系列语义上自包含的文档而组织的。CouchDB中的文档是没有模式的(schema free),也就是说并不要求文档具有某种特定的结构。CouchDB的这种特性使得相对于传统的关系数据库而言,有自己的适用范围。一般来说,围绕文档来构建的应用都比较适合使用CouchDB作为其后台存储。CouchDB强调其中所存储的文档,在语义上是自包含的。这种面向文档的设计思路,更贴近很多应用的问题域的真实情况。对于这类应用,使用CouchDB的文档来进行建模,会更加自然和简单。与此同时,CouchDB也提供基于MapReduce编程模型的视图来对文档进行查询,可以提供类似于关系数据库中SQL语句的能力。CouchDB对于很多应用来说,提供了关系数据库之外的更好的选择。

  CouchDB具有以下特点:

  一、CouchDB是分布式的数据库,它可以把存储系统分布到n台物理的节点上面,并且很好的协调和同步节点之间的数据读写一致性。这当然也得以于Erlang非常好的并发特性才能做到。对于基于web的大规模应用文档应用,然的分布式可以让它不必像传统的关系数据库那样分库拆表,在应用代码层进行大量的改动。

  二、CouchDB是面向文档的数据库,存储半结构化的数据,比较类似lucene的index结构,特别适合存储文档,因此很适合CMS,电话本,地址本等应用,在这些应用场合,文档数据库要比关系数据库更加方便,性能更好。

  三、CouchDB支持REST API,可以让用户使用JavaScript来操作CouchDB数据库,也可以用JavaScript编写查询语句,我们可以想像一下,用AJAX技术结合CouchDB开发出来的CMS系统会是多么的简单和方便

  其实CouchDB只是Erlang应用的冰山一角,在最近几年,基于Erlang的应用也得到的蓬勃的发展,特别是在基于web的大规模,分布式应用领域,几乎都是Erlang的优势项目。

0