CouchDB与Couchbase:区别何在,Membase又将如何?

2012-05-23 02:05 682人阅读 评论(1) 收藏 举报
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2012/05/couchdb-vs-couchbase-membase

去年二月,CouchOne与Membase合并了,合并之后的公司叫做Couchbase。Membase公司有一个名为Membase的产品,它是个键/值、持久化、可伸缩的解决方案,使用了memcached wire协议。CouchOne支持CouchDB。CouchDB是个文档数据库,提供了端到端的复制方法,这对于移动与分布在不同位置的数据中心来说是很有用的。Couchbase基于Membase与CouchDB开发了一款新产品,新产品的名字叫做Couchbase。

近日,Couchbase发表了一篇文章,比较了Couchbase与CouchDB,指出了这两者之间的差别与相似点。这篇文章重点回答了这样一个问题:“CouchDB与Couchbase有哪些差别”?

实际情况是Couchbase与CouchDB是紧密相关的。Couchbase产品包含了CouchDB的一个副本。Couchbase产品向CouchDB添加了缓存、集群等功能。InfoQ有幸采访到了Couchbase创始人之一的James Phillips以详细了解Membase与CouchDB这两个产品之间的差别与融合。

InfoQ:Membase是个非常强劲的品牌,你们为何会将产品名变更为Couchbase呢?

去年初,Membase公司与CouchOne公司合并了。合并之后的公司名取自每个公司名的一部分,即Couchbase。从根本上来说,名字的变化更好地反映了我们所提供的技术——Couchbase是个面向文档的数据库(其所用的技术来自于Apache CouchDB项目),能够实现水平伸缩,并且对于数据的读写来说都能提供低延迟的访问(这要归功于Membase技术)。

InfoQ:在选择CouchDB作为持久化与查询引擎前,Membase使用的是什么?

SQLite是Membase使用的嵌入式存储引擎,在Couchbase Server中已经被Apache CouchDB技术替代了。

InfoQ:对于Membase的使用来说,memcached wire协议的重要性如何?

对于Membase和现在的Couchbase Server(支持同样的wire协议)使用来说,Memcached兼容性是非常重要的。每种语言与应用开发框架都原生支持memcached,大多数开发者都曾使用过memcached,因此很容易就可以上手Membase并开始使用。

InfoQ:Membase看起来是个很不错的解决方案,当然了,它也拥有一些大名鼎鼎的客户与使用案例,如Zynga等。通过将Membase客户所希望的CouchDB作为持久/查询层,你们能得到什么呢?

通常,Couchbase用作交互式软件系统的记录系统——取代了之前由MySQL或Oracle等关系数据库技术所扮演的角色。Membase所支持的键——值操作当然可以构建可用的系统,但简单的键——值存储对于一些相当简单的问题却是无能为力的,比如“哪些用户的农场中有绵羊”?为了基于纯粹的键——值存储来回答这个问题,应用必须得读取整个数据库,一个键一个键地读,然后“查看”键——值对的值部分以确定里面是否有绵羊。通过嵌入CouchDB,数据库现在可以在应用中完成这个任务,无需扫描整个数据库(因为CouchDB可以维护能够加速这种查询的索引)。

InfoQ:在NoSQL、分布式数据领域中谁是你最大的竞争对手?

MongoDB。

InfoQ:CouchBase与MongoDB都是面向文档的且取得了相当大的成功。相比于Cassandra(BigTable/Dynamo hybrid)之类的面向列的数据库来说,面向文档的数据库有哪些优势呢?

对于面向文档的数据库来说,应用可以在无需考虑结构的情况下插入记录(即“文档”),只要他们遵循某些标准的格式化规则(如XML、JSON)即可。接下来,无论是否定义了某些列,你都可以执行查询,但面向列的数据库则要求维护一个列簇、或是父列、或是其他类型的结构。面向文档的模型为事务性的数据管理提供了一个更加灵活、通用性的方式,同时又不会限制执行的查询种类。

InfoQ:Couchdb/Couchbase比较的文章中提到了couchbase向CouchDB增加了自动分片的功能。除了核心CouchDB所提供的功能外,Couchbase是否增加了对复制、高可用性之类的支持呢?

Couchbase Server实际上提供了两种“复制”技术:对于内部数据中心部署(集群)来说,它使用了Membase风格的复制(在网络分区的情况下提供了快速的一致性),因为它提供了最自然的部署模型,从统计学上来说,网络分区中出现脑裂(split-brain)的可能性要比数据中心出现碰撞的可能性低。对于交互数据中心部署(集群从地理位置来说是分布式的)来说,网络分区中出现脑裂的可能性是相当高的,因为应用服务器与数据库服务器位于相对脆弱的WAN连接的两端。在跨数据中心的部署中使用了CouchDB风格的复制,因为它支持碰撞检测和决议,而在这种场景中此情况是很可能会出现的。

InfoQ:Couchbase使用Membase替换掉了Memcached,因此使用Memcached的应用可以很轻松地使用Couchbase,但不带自动分片功能的客户端驱动该如何使用Couchbase的自动分片特性呢?

Couchbase Server中内建一个代理层(叫做moxi),或是将该代理层部署到应用服务器上,它会填平“现有”memcached客户端所用的一致性哈希算法与Couchbase Server所用的两级间接(通过哈希找到虚拟服务器,然后将虚拟服务器映射为真实服务器)之间的沟壑。

InfoQ:Couchbase是如何解决应用需要可靠的持久化这一问题的?有日志选项么?是否有数据需要复制到多个结点的选项?你们是如何平衡写速度与可靠的持久化的?你们是否至少需要两台服务器来保证持久性呢?

你可以配置Couchbase(基于每个操作),使之立刻(异步写)、完成了数据的复制或是数据写到了持久化媒体后才对写操作进行响应。用户可以权衡他们自己的持久化与性能问题。

关于Membase、Couchbase与Northscale的背景信息

Membase产品于2010年10月发布,是由Zynga、NorthScale与NHN联合开发的。NorthScale后来变成了Membase Inc,接下来在去年与CouchOne Inc合并后又变成了Couchbase Inc。Membase被Zynga用来开发其流行的社交游戏,如Farmville、Mafia Wars与Cafe World。Membase针对Web应用数据的存储(如Farmville的数据)进行了优化。这些在线社交游戏存储了大量的数据。根据ReadWrite Cloud的Audrey Watters所述,“数据量令人难以置信。这是一种新的数据类型,需要开发一种新的数据库管理系统(Membase)”。Zynga已经在使用Memcached,因此向Membase的转换是个自然而然的过程。InfoQ曾采访过来自Couchbase的工程师Dustin Sallings,他介绍了为支持Membase之类的产品对Memcached wire协议所做的改变。

在InfoQ此前发布的一篇新闻中,CouchDB的创建者及Couchbase的联合创始人Damien Katz表示他将专注于Couchbase,因为这是一个很好的机会,可以重新实现CouchDB,抛弃无法满足需求的、强化可用的功能,并将Membase的可伸缩性、速度、集群与缓存特性添加到合并后的Couchbase产品中。Damien对根据意见来决定的Apache项目的速度与进展表示遗憾,人们对于成功的商业产品需求的增长速度是飞快的。他对于合并之后的产品的职责是创造出一款能够充分发挥两者优势的产品。在随后的一篇博文中,Damien说Membase产品的速度很快且具有可伸缩性,但却没有报表与跨数据中心的复制功能。CouchDB产品具有更多的特性,如高级的复制与报表功能,但速度上却不尽如人意,也无法应付高负载。这两个产品的融合是成功的,Couchbase终将破茧而出。

查看英文原文:CouchDB versus Couchbase: What are the differences, and what happened to Membase?

转载于:https://www.cnblogs.com/xiayong123/archive/2012/10/17/3717042.html

CouchDB与Couchbase:区别何在,Membase又将如何?相关推荐

  1. CouchDB与CouchBase的比较

    <CouchDB与CouchBase的比较> 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 一.概述 Apache CouchDB和Cou ...

  2. 均匀白噪声的定义及特点_白噪声粉红噪声的区别何在?

    白噪声粉红噪声的区别何在? 2015/6/19 11:11:39      来源:艾维音响网 [提要]所谓白噪音是指一段声音中的频率分量的功率在整个可听范围(0-20KHZ)内都是均匀的.由于人耳对高 ...

  3. 什么是无线AP呢?它跟无线路由器的区别何在?在实际组网中无线AP的功能是什么?

    什么是无线AP呢?它跟无线路由器的区别何在?在实际组网中无线AP的功能是什么? 一. 概念认识 AP为Access Point简称,一般翻译为"无线访问节点",它主要是提供无线工作 ...

  4. couchdb 安装_如何在Ubuntu上安装CouchDB –分步指南

    couchdb 安装 In this tutorial, we'll go over how to install CouchDB on Ubuntu. CouchDB is a NoSQL data ...

  5. 嵌入式操作系统和普通操作系统的区别_嵌入式ARM和单片机的区别何在

    1.软件方面 这应该是最大的区别了.引入了操作系统.为什么引入操作系统?有什么好处嘛? 1)方便.主要体现在后期的开发,即在操作系统上直接开发应用程序.不像单片机一样一切都要重新写.前期的操作系统移植 ...

  6. 在美国公司架构中,LLC、LLP 和 Corporation 的区别何在?

    这个问题,首先需要弄清楚这样一个事实:LLC.LLP.Corporation分别属于三种不同类型的公司实体. 1,LLC (Limited Liability Company)是责任有限公司: 2,L ...

  7. html5页面和app的区别,H5页面与APP区别何在

    APP相信大家都非常熟悉,就是手机里经常安装的软件程序,它都需要经过下载安装的步骤才能打开产品进行操作.不过H5页面和APP却有比较大的区别,它不需要经过下载安装,直接能够在浏览器和微信等社交平台中打 ...

  8. Vue和layUI的区别何在?

    vue和layui的区别: 1.vue是一套用于构建用户界面的渐进式JavaScript框架,layui是一款采用自身模块规范编写的前端UI框架: 2.vue会负责数据和视图的绑定,数据和视图是关联的 ...

  9. PDA和PAD的区别何在?

    南京学思巧妙的运用工业PDA与自制软件相结合的使用方式进行钢板管理. 那么工业PDA和我们所使用的PAD有什么区别呢? PDA指的是掌上电脑,可以帮助我们完成在移动中工作,学习,娱乐等.其范围较大. ...

最新文章

  1. mysql执行出错:Table 'k_user' is read only
  2. opencv 通过网络连接工业相机_单目摄像机测距(python+opencv)
  3. 【活动推荐】北京泛娱乐行业技术沙龙——新技术助力内容产业破局之道
  4. mysql集群参数讲解_Mysql集群讲解(一)
  5. 大数据 -- Spark
  6. bind mysql django_Django+bind dlz DNS管理平台
  7. 这款手机开卖在即却预约不足千人 网友:原来它还没凉?
  8. visual studio编译linux,在 Visual Studio 中配置 Linux MSBuild C++ 项目
  9. ASoC Codec驱动代码框架图
  10. 计算机指纹驱动程序,解决方法:联想笔记本指纹识别驱动程序安装教程[详细]...
  11. Istio 中的智能 DNS 代理功能
  12. 计算机考研404是什么意思,研路分享:我的404分考研高分心得体会
  13. 测开 - 自动化测试selenium(WebDriver API) - 细节狂魔
  14. 一种基于机器学习的电影推荐系统设计
  15. 阿里云“网红“运维工程师白金:做一个平凡的圆梦人
  16. English Voice of Bye Bye Bye
  17. 一个曾经纯数学专业毕业的未来算法工程师内心独白
  18. No.053<软考>《(高项)备考大全》【冲刺7】《软考之 119个工具 (5)》
  19. The Sandbox 市场平台将上线 Isla Obscura 第五期 NFT 作品集
  20. mysql table crashed_快速解决MySQL:Table xxx is marked as crashed and should be repaired五个办法...

热门文章

  1. MySQL水平分区代理Spock Proxy(一)
  2. CentOS7查看开放端口命令
  3. linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置
  4. phpMyAdmin密码设置
  5. ScaleAnimation动画
  6. hive metastore mysql_Hive MetaStore的结构
  7. 特征图注意力_从数据结构到算法:图网络方法初探
  8. Linux中的 硬链接ln和软连接ln -s
  9. css摇曳的_HTML5+CSS3实现树被风吹动摇晃
  10. [译] Bounds Check Elimination 边界检查消除