AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

  • 2012-05-22
  • 本文字数:2923 字

    阅读完需:约 10 分钟

去年二月, 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?

2012-05-22 12:5326617
用户头像

发布了 88 篇内容, 共 266.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

华为云CodeArts Artifact,5大特性守护制品质量与安全

华为云开发者联盟

云计算 开发 华为云 企业号 2 月 PK 榜 华为云开发者联盟

多模并起,万向融合 | 2023年2月《中国数据库行业分析报告》精彩抢先看

墨天轮

数据库 HTAP MatrixDB 多模数据库 超融合数据库

C++中const和constexpr关键字解析:常量、函数和指针

小万哥

程序员 后端 开发 C/C++ const

平时报表很复杂吗?瓴羊Quick BI智能报表轻松解决!

夏日星河

ZBC通证月内已翻倍,Nautilus Chain 上线前夕的“开门红”

股市老人

在流媒体时代,如何看待音乐版权?

曲多多(嗨翻屋)版权音乐

知识产权 音乐 版权

在字节跳动,造赛博古籍

字节跳动技术范儿

后端 nlp 搜索 OCR 多模态

揭穿数据分析的六大谎言

葡萄城技术团队

TiDB x Aliyun 免费试用,竟还有这般福利?

TiDB 社区干货传送门

社区活动 版本测评 6.x 实践

NFTScan 与 KNN3 在 NFT 数据层面达成合作伙伴关系

NFT Research

NFT web3

数据库审计有什么用?过等保三级需要吗?

行云管家

数据库 等保 等级保护 数据库审计

云小课|MRS基础原理之Hue组件介绍

华为云开发者联盟

大数据 华为云 企业号 2 月 PK 榜 华为云开发者联盟

ChatGPT对于普通人有什么机会和影响?

引迈信息

人工智能 AI AIGC ChatGPT

云数据库 TiDB 初使用

TiDB 社区干货传送门

版本测评 安装 & 部署 性能测评 扩/缩容 6.x 实践

不要 ChatGPT,我们要你!2023 涛思招聘季重磅来袭~

TDengine

数据库 tdengine 时序数据库

这周末,StarRocks 邀请开发者们一起来上海 GAIDC 开源集市,各种任务等你来挑战!

StarRocks

数据库

深入浅出玩转监控宝|网站监控之创建网站监控任务

云智慧AIOps社区

监控宝 监控工具 监控指标 #监控 网站监控

瓴羊Quick BI率先提供移动端自助分析整体解决方案,成为行业的领导者!

流量猫猫头

父母、离别

毛广斌

生活

中冶赛迪:基于鲲鹏DevKit开发智慧城市基础设施管理平台,性能提升47%

极客天地

Wallys/QSDK IPQ6010/wifi mesh function supports qcn9074/qcn6024 M.2 E Key Interface

Cindy-wallys

IPQ6010 ipq6018 IPQ6000

LeetCode题解:2357. 使数组中所有元素都等于零,排序,详细注释

Lee Chen

JavaScript 算法 LeetCode

行云管家属于高新企业吗?安全吗?

行云管家

云计算 网络安全 高新企业 云管理 高新技术

LeetCode题解:2357. 使数组中所有元素都等于零,哈希表,详细注释

Lee Chen

JavaScript 算法 LeetCode 哈希表

电商难做?低代码开发平台为企业转型升级保驾护航

加入高科技仿生人

低代码 电商 数据管理 b2b

ChatGPT模拟MySQL数据库 | 社区征文

NineData

MySQL 数据库 编程 技术栈 ChatGPT

Fine BI、Smart BI怎么办,瓴羊Quick BI已经可以提供移动端自助分析整体解决方案!

对不起该用户已成仙‖

ZBC通证月内已翻倍,Nautilus Chain 上线前夕的“开门红”

鳄鱼视界

DevEco Studio端云协同开发之云函数

白晓明

HarmonyOS 端云协同 云函数

阿里张勇:全力投入生成式AI大模型建设,为行业发展提供好算力支撑

阿里技术

人工智能 云计算

CouchDB与Couchbase:区别何在,Membase又将如何?_DevOps & 平台工程_Rick Hightower_InfoQ精选文章