校园兼职网站建设,网页设计学校,永久免费的cad软件,百度搜索排名查询CouchDB与Couchbase#xff1a;区别何在#xff0c;Membase又将如何#xff1f; 2012-05-23 02:05 682人阅读 评论(1) 收藏 举报 本文来源于我在InfoQ中文站翻译的文章#xff0c;原文地址是#xff1a;http://www.infoq.com/cn/news/2012/05/couchdb-vs-couchbase-memba… 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这两个产品之间的差别与融合。 InfoQMembase是个非常强劲的品牌你们为何会将产品名变更为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并开始使用。 InfoQMembase看起来是个很不错的解决方案当然了它也拥有一些大名鼎鼎的客户与使用案例如Zynga等。通过将Membase客户所希望的CouchDB作为持久/查询层你们能得到什么呢 通常Couchbase用作交互式软件系统的记录系统——取代了之前由MySQL或Oracle等关系数据库技术所扮演的角色。Membase所支持的键——值操作当然可以构建可用的系统但简单的键——值存储对于一些相当简单的问题却是无能为力的比如“哪些用户的农场中有绵羊”为了基于纯粹的键——值存储来回答这个问题应用必须得读取整个数据库一个键一个键地读然后“查看”键——值对的值部分以确定里面是否有绵羊。通过嵌入CouchDB数据库现在可以在应用中完成这个任务无需扫描整个数据库因为CouchDB可以维护能够加速这种查询的索引。 InfoQ在NoSQL、分布式数据领域中谁是你最大的竞争对手 MongoDB。 InfoQCouchBase与MongoDB都是面向文档的且取得了相当大的成功。相比于CassandraBigTable/Dynamo hybrid之类的面向列的数据库来说面向文档的数据库有哪些优势呢 对于面向文档的数据库来说应用可以在无需考虑结构的情况下插入记录即“文档”只要他们遵循某些标准的格式化规则如XML、JSON即可。接下来无论是否定义了某些列你都可以执行查询但面向列的数据库则要求维护一个列簇、或是父列、或是其他类型的结构。面向文档的模型为事务性的数据管理提供了一个更加灵活、通用性的方式同时又不会限制执行的查询种类。 InfoQCouchdb/Couchbase比较的文章中提到了couchbase向CouchDB增加了自动分片的功能。除了核心CouchDB所提供的功能外Couchbase是否增加了对复制、高可用性之类的支持呢 Couchbase Server实际上提供了两种“复制”技术对于内部数据中心部署集群来说它使用了Membase风格的复制在网络分区的情况下提供了快速的一致性因为它提供了最自然的部署模型从统计学上来说网络分区中出现脑裂split-brain的可能性要比数据中心出现碰撞的可能性低。对于交互数据中心部署集群从地理位置来说是分布式的来说网络分区中出现脑裂的可能性是相当高的因为应用服务器与数据库服务器位于相对脆弱的WAN连接的两端。在跨数据中心的部署中使用了CouchDB风格的复制因为它支持碰撞检测和决议而在这种场景中此情况是很可能会出现的。 InfoQCouchbase使用Membase替换掉了Memcached因此使用Memcached的应用可以很轻松地使用Couchbase但不带自动分片功能的客户端驱动该如何使用Couchbase的自动分片特性呢 Couchbase Server中内建一个代理层叫做moxi或是将该代理层部署到应用服务器上它会填平“现有”memcached客户端所用的一致性哈希算法与Couchbase Server所用的两级间接通过哈希找到虚拟服务器然后将虚拟服务器映射为真实服务器之间的沟壑。 InfoQCouchbase是如何解决应用需要可靠的持久化这一问题的有日志选项么是否有数据需要复制到多个结点的选项你们是如何平衡写速度与可靠的持久化的你们是否至少需要两台服务器来保证持久性呢 你可以配置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