性能测试:SequoiaDB vs. MongoDB vs. Cassandra vs. HBase

【编者按】在《先锋》系列的 事务、高性能,王涛谈打造超越MongoDB的NoSQL一文中,我们与王涛浅谈了高性能,拥有事务的SequoiaDB打造经验。应读者需求,从数据上解读各个NoSQL的优势,我们同时邀请了国内外相关专家对MongoDB、SequoiaDB、Cassandra、HBase四个NoSQL进行基准测试,并公布测试用例、相关数据及测试规则。本次我们将给大家放出国内专家的测评,仅供参考。PS:为了方便传阅,特别为大家准备了PDF版本,点击下载 。

下为测试资料

在本篇测试报告中,我们使用Yahoo!发布的标准YCSB测试规则,对MongoDB、SequoiaDB、Cassandra、HBase进行对比,并尝试给出每种不同产品所适用的应用场景。在测试配置中,我们尽可能对全部产品做到高可用配置,而在一致性级别上则使用最终一致性。

在测试中我们会对两种类型的NoSQL数据库做横向对比,包括Document-Oriented文档类数据库、以及Big-Table宽表类数据库。由于每种类型的数据库具有很多自己独特的特性,我们不能将每种特性一一表现在该测评结果中。本测试主要针对数据库在不同任务类型下的性能指标进行,且仅依赖YCSB所提供的标准测试流程。

本测试将详细列出测试的物理环境以及配置信息,以便于读者能够使用自己的环境独立验证结果。

测试概要

1. 测试产品

本测试主要对比两种类型的NoSQL数据库,包括四款不同的产品:

MongoDB(文档类,V2.6.1) SequoiaDB(文档类,V1.8) HBase(宽表类,V0.94.6-CDH 4.5.0) Cassandra(宽表类,V1.1.12)

其中MongoDB作为当前市场占有率最高的数据库,可能是众多读者所关心的产品,提供丰富的数据库功能,号称是最接近关系型数据库的NoSQL产品;而SequoiaDB由前IBM DB2团队的研发人员创建,据称在性能和功能上能够与MongoDB做正面抗衡,同样提供很多MongoDB所提供的功能(例如分片、多索引等特性)。

HBase则是Hadoop框架的一员,也已经被广大企业和互联网用户所接受,我们使用的版本0.94.6是跟随CDH 4.5.0安装包的版本;而Cassandra则是与HBase类似的产品,由Facebook研发并进行开源,同样拥有广大的用户市场。

我们的测试使用由Yahoo!研究院发布的Yahoo Cloud Serving Benchmark (YCSB)基准测试,并将接口对各自产品的最新版进行了修改和适配。我们在正文后的附录中也提供了SequoiaDB的YCSB测试接口。

需要重新强调的是,每种不同的产品都有各自的应用场景。YCSB测试尽管是Yahoo!研究院提供的测试框架,但是在很多场景下并不能完全发挥出每个产品各自的特点。在本测试中,我们尝试使用YCSB框架给出最为客观的评估结果。如果对于该测试结果或配置存在疑问,我们欢迎广大读者根据自身需要重新调整,并将结果开放以供参考。

2. 测试场景

YCSB测试框架提供了丰富的场景配置机制,允许用户根据需要选择需要导入的数据量和增删改查之间相应的比例。在本测试中,我们导入一亿条数据,并对如下场景进行对比。

场景编号 场景分类 描述 1 单条记录导入 单条记录导入 2 批量记录导入 批量记录导入 3 单纯查询 100%查询 4 查询导入平衡 50%导入,50%查询 5 更新为主 95%更新,5%查询 6 查询为主 95%查询,5%更新 7 查询最新 95%查询,5%导入

对于数据导入的场景,我们对单条记录插入和批量插入两个场景进行了区分。对于一些数据库来说,默认配置会在客户端将一批记录打包并统一发送给服务器,对于这类产品,尽管其接口为单条记录操作,我们依然将其归类为批量记录导入模式。

写入和查询的数据模拟典型日志记录的长度,具有以下特性:

特性 描述 字段数 10字段 字段名长度 6字节 记录总大小 100Bytes 全部字段类型 字符串 主键长度 23字节 总记录数 1亿条 总裸数据量 大约100GB 数据副本份数 3

其中,SequoiaDB与MongoDB的分片均配置为一主两从;HBase所在的HDFS设置复制份数为3;Cassandra建表时使用参数replication_factor=2。

一致性级别上,我们使用最弱的最终一致性,读写的write concern均设置为1。

3. 测试环境

本测试中,测试环境总共包含4台Dell R520物理机作为数据存储。生成数据的YCSB程序与数据库运行在同一物理环境。

注:如使用独立服务器进行YCSB的数据生成,会导致千兆网瓶颈。

整个集群的拓扑结构如图1所示:

图1:测试集群拓扑

服务器环境。本测试数据库服务器使用4台Dell R520物理机环境,每台物理机配置如下:

类型 参数 CPU Intel(R) Xeon® CPU E5-2420 1.9GHZ (6 core) 内存 DDR3 48GB 磁盘 6块内置SATA硬盘,2TB/块 网络 千兆以太网 操作系统 Red Hat Enterprise Linux Server release 6.4

kernel-release:2.6.32-358.e16.x86_64 JDK Oracle JDK 1.6

4. 测试方法

本测试使用YCSB标准,基于四台物理机执行。对于每种不同产品的测试流程如下:

安装软件 基于四节点部署集群,配置时尽可能基于以下准则:
高可用配置 最终一致性 功能与单节点环境保持一致 充分利用硬件资源
在四台物理机中部署YCSB集群,向本地集群写入读取数据 进行数据操作时通过YCSB产生记录的统计数量 根据结果生成Excel文件 针对其他场景重复以上步骤

并发性方面则基于以下规则:

单条记录插入每服务器24条线程 批量记录插入每服务器8条线程 其他所有操作每服务器36条线程

免费订阅“CSDN云计算(左)和CSDN大数据(右)”微信公众号,实时掌握第一手云中消息,了解最新的大数据进展!

CSDN发布虚拟化、Docker、OpenStack、CloudStack、数据中心等相关云计算资讯,     分享Hadoop、Spark、NoSQL/NewSQL、HBase、Impala、内存计算、流计算、机器学习和智能算法等相关大数据观点,提供云计算和大数据技术、平台、实践和产业信息等服务。

时间: 2024-10-31 02:32:38

性能测试:SequoiaDB vs. MongoDB vs. Cassandra vs. HBase的相关文章

时间序列数据处理的角逐:MongoDB vs. Cassandra

http://www.aliyun.com/zixun/aggregation/13461.html">MongoDB与Cassandra是两个最具人气的NoSQL数据库,MongoDB更是NoSQL领域当之无愧的人气王,而Cassandra则常年霸占着列存储领域的首席,相比之下备受关注的HBase却因众多原因一直屈居次席.近日MyDrive Soulutions运营和架构总监分享了这两个人气NoSQL数据库在其公司的实践,并给出了相关对比,以下为译文:                  

Cassandra与HBase的大数据对决 谁是胜者?

在大数据这一全新的领域里,Bigtable数据库技术非常值得我们关注,因为这一技术是由谷歌的工程发明的,而谷歌是一家公认的非常擅长管理海量数据的公司.如果你对此非常了解,那么你一家知道也熟悉Cassandra和HBase这两个Apache数据库项目. 谷歌在2006年的一份研究报告中首次对Bigtable进行了阐述.有意思的是,这份报告当时并没有将Bigtable作为数据库技术,而是将其作为一种"稀疏的分布式多维度"映射技术以存储拍字节级数据,并在商用硬件上运行它们.行先是以一种非常独

SequoiaDB 关于 MongoDB 安全事件的一些思考

刚刚过去的这个周末,各位大数据和数据库从业者想必是被MongoDB的"安全事件"给刷屏了,MongoDB作为当前NoSQL在全球的领军人物,遭到这么大规模的黑客攻击,这也再次让我们对于新一代的开源数据库的数据安全问题带来了思考.而 SequoiaDB 巨杉数据库作为国内领先的新一代分布式数据库厂商,我们也来说说我们对这个事件的看法. 事件回顾 此前,众多无需身份验证的开放式 MongoDB 数据库实例正在遭受多个黑客组织的攻击,被攻破的数据库内容会被加密,受害者必须支付赎金才能找回自己

Cassandra和HBase主要设计思路对比

Cassandra HBase 一致性 Quorum NRW策略 通过Gossip协议同步Merkle Tree,维护集群节点间的数据一致性 单节点,无复制,强一致性 可用性 1,基于Consistent Hash相邻节点复制数据,数据存在于多个节点,无单点故障. 2,某节点宕机,hash到该节点的新数据自动路由到下一节点做 hinted handoff,源节点恢复后,推送回源节点. 3,通过Gossip协议维护集群所有节点的健康状态,并发送同步请求,维护数据一致性. 4,SSTable,纯文件

HBase,轻松应对大数据时代的储存

本文PPT来自阿里中间件高级专家沈春辉于10月16日在2016年杭州云栖大会上发表的<大数据时代的储存--HBase的实践与探索>. 我们现在都过着一个数据驱动的生活,不管是安全风控.生意参谋.还是借贷保险.或是出行决策,背后都少不了大数据的支撑.大数据场景本身固有的数据基础量大.增长快.时效性短.易发散和易产生脏数据等问题,导致人们投入了大量的精力来开发处理解决这些问题的数据库系统,比如Teradata.MongoDB.Cassandra.HBase.PostgreSQl等. 在这些系统就有

排名前十的SQL和NoSQL数据库

本排名根据DB Engines的排行榜得来,该排行榜从人气上分析了市场上200个不同的数据库,这里一览Top 10. 无可争议的Top 3 Oracle.MySQL及Microsoft SQL Server一直以绝对的优势霸占着排行榜的前三名,以独特的优势瓜分了市场上最多的用户. 1.  Oracle 11g 首次发行:1980年 许可机制:Proprietary 是否SQL:是 Oracle是重要商业项目的首选,同时也是市场上最古老的主流数据库产品 Oracle有4个不同的版本可用:Enter

NoSQL产品测评:Cassandra、MongoDB、Couchbase和Aerospike

近日Thumbtack发布了两篇论文,分别为 超高性能NoSQL基准和 NoSQL故障转移特征:前者是分析持久性和性能的权衡,后者则是关于Aerospike.Cassandra.Couchbase和MongoDB几个NoSQL的故障转移特征.两个基准都尝试测试"有高吞吐量.低延时需求的面向用户应用程序,这些应用程序的数据都可以使用键值形式进行存储". Thumback使用的是YCSB(Yahoo! Cloud Serving Benchmark)的升级版,新的YCSB改变记录在第一篇论

《全栈性能测试修炼宝典 JMeter实战》—第1章 1.6节性能测试技能树

1.6 性能测试技能树 下面细化一下性能测试所要掌握的知识,如图1-1所示. 1.6.1 测试工具 通过测试工具能提高测试软件开发速度,腾出时间专注于问题分析.主流工具有LoadRunner与JMeter,当然了,工具也不能解决所有问题,有时候还是需要自己编写程序来实现测试脚本.很多初学者认为这2个工具只能用来做性能测试,其实能做性能测试的工具也可以做功能自动化回归.API和UI测试等都可以实现.不是非得Selinum.WebDriver等才能做自动化测试. 常见难点 (1)用户和业务模型分析搭

《MongoDB管理与开发精要》——1.1节NoSQL简介

第一部分 基 础 篇 第1章 认识MongoDB 第2章 快速入门 第1章 认识MongoDB MongoDB是一个高性能.开源.无模式的文档型数据库,使用C++开发,是当前NoSQL数据库产品中最热门的一种.在许多场景下,它可以替代传统的关系型数据库或键-值存储方式,官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息.有一定NoSQL基础概念的读者可以跳过本章,直接开始后面内容的学习.没有接触过NoSQL的读者可以详细阅读本章,以便消化.吸收最基本的概