写点什么

NoSQL 基准对比 Aerospike、Cassandra、Couchbase 和 MongoDB

  • 2013-04-23
  • 本文字数:1371 字

    阅读完需:约 4 分钟

为了查看 Aerospike、Cassandra、Couchbase 和 MongoDB 这些数据库在处理插入吞吐量、最大吞吐量时的表现以及故障恢复期间的延迟时间和行为,最近的一个基准集合对这些数据库做了比较。

Thumbtack Technology 发布了两个基准白皮书,其中包含了一些键—值存储的比较结果:超高性能 NoSQL__ 基准_:_ 分析持久性和性能权衡 (PDF) NoSQL__ 故障恢复 __ 特性_: Aerospike__、Cassandra、_Couchbase__ 和 __MongoDB _(PDF)__。_ 这两个基准都试图检测“直面客户的应用程序,它们需要非常高的吞吐量和低延迟时间,同时其信息又能够使用键 - 值模式表示”。

Thumbtack 使用了一个改善版本的 Yahoo! 云服务基准 (YCSB) ,该基准可以克服使用高容量多客户端时遇到的一些限制。YCSB 的变化已经写入了第一个白皮书并且提交回了社区。

测试的 NoSQL 数据库包括 Aerospike Cassandra Couchbase (1.8 和 2.0)和 MongoDB 。第一个是商业化产品,最后一个是文档数据存储而不是键 - 值存储,但是因为“在我们遇到的客户端中经常考虑将它用于相似类型的应用程序中”,所以我们将之包含了进来。所有的数据库都使用其提供商提供的建议做了优化。测试系统使用 SSD 存储,而没有使用旋转磁盘。白皮书中详细记录了测试所使用的方法论、客户端、工作量配置以及硬件配置等信息。

Thumbtack 承认它们和“Aerospike、Couchbase 以及 10gen 有商业和(或)战略合作关系”,同时使用的硬件也是从 Aerospike 租用的。

下面列出了一些测试的基准结果。

插入吞吐量

数据库通过 YCSB 的加载路由执行了大量插入,载入了初始的工作集合。Couchbase 在工作集合载入内存中时结果很好,但是在工作集合载入 SSD 时遇到了问题,Couchbase 1.8 没有完成操作,而对 Couchbase 2.0 而言则必须使用较小的集合和异步模式。图中蓝色圆柱表示的就是 Couchbase,Aerospike 处在第二位。

1:插入吞吐量

注意:对 Couchbase 2.0 而言,SSD 吞吐量使用的样本较小,同时是异步模式;而对 Couchbase 1.8 而言,即使减少数据集也不能加载。

最大吞吐量

该测试使用了一个“强持久性模型,在复制时使用了一个相对服务器的 RAM 而言非常大的数据集。该测试打算作为保证强持久性的事务型数据的使用典范”。

在这个图表中并没有 Couchbase,因为使用同步复制时它无法完成测试。

2:最大吞吐量——SSD支持的数据集

在使用异步复制时,内存中的结果如下:

3:最大吞吐量——内存数据集

延迟时间/吞吐量

基准还测量了在不同级别的传输下读取和更新的延迟时间。下面的图表包含了一个完整视图和每个对应的缩放视图。

4a——4d:延迟时间/吞吐量结果(平衡负载)

故障恢复

Thumbtack 还模拟了一个硬件错误,以便查看在一个节点无法工作时会发生什么:

注意:以上结果依赖于使用的驱动,像 Hector 这样较新的驱动能恢复到 100% 的吞吐量。同时假设监控脚本完美。

基准还测量了宕机时间,例如集群从发生错误开始到能够响应所需要的时间,所有数据库显示的值都合理:

6:宕机时间、异步复制和基于RAM的数据集

Thumbtack 基准还包含了很多其他不同情况下的不同结果,但是此处并没有包含这些内容。

另一个NoSQL 基准发布于2012 年10 月,其中对比了Cassandra、HBase、MongoDB 和Rick。这些测试中还包含了MySQL,作为针对SQL 技术的一个参考。

查看英文原文 NoSQL Benchmark Compares Aerospike, Cassandra, Couchbase and MongoDB

2013-04-23 03:1310207
用户头像

发布了 321 篇内容, 共 134.2 次阅读, 收获喜欢 19 次。

关注

评论

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

并不想吹牛皮,但!为了把Github博客粉丝转移到公众号,我干了!

小傅哥

Java 小傅哥 博客 微信公众号

一文了解对称加密与非对称加密

我是程序员小贱

安全

记一次腾讯云(西安)后台开发面试经历

z小赵

面试 分布式 高并发

MySQL 架构与历史

多选参数

MySQL 数据库 MySQL优化

Golang+Flutter实现聊天APP

Alber

IM Go 语言

架构师训练营 - 第十周作业

坂田吴奇隆

Github被攻击。我的GitPage博客也挂了,紧急修复之路,也教会你搭建 Jekyll 博客!

小傅哥

Java GitHub 小傅哥 博客

Dubbo2.7试用

心平气和

dubbo 灰度 hessian

区块链一新基建 新动能 新发展大会将在南昌举办

CECBC

新基建 区块链技术

LeetCode题解:88. 合并两个有序数组,双指针遍历+从前往后,JavaScript,详细注释

Lee Chen

大前端 LeetCode

【DevOps】我们忽视了Daily Build(每日构建)吗?

Man

DevOps jenkins 每日构建

手把手教你从零开始使用python编写大型冒险类游戏01之游戏介绍

Geek_8dbdc1

国内与国外区块链关键技术现状及差异

CECBC

区块链 应用技术

MySQL-技术专题-共享锁与排他锁

码界西柚

Go: Goroutine, 系统线程和CPU管理

陈思敏捷

mpg Go 语言

Git设置分支保护实现CodeReview卡点

陈磊@Criss

用故事去理解「文件 I/O」

小林coding

操作系统 异步 文件系统 同步 非阻塞网络I/O

Git命令可视化展示,代码管理再也不愁了,建议收藏!

诸葛小猿

git git merge git rebase git fetch git reset

MySQL-技术专题-InnoDB存储引擎

码界西柚

知道时间轮算法吗?在Netty和Kafka中如何应用的?为什么不用Timer、延时线程池?

yes

kafka Netty Timer ScheduledThreadPool 时间轮

鲲鹏一粤,智算万里

脑极体

如何隐藏你的数据库密码

Rayjun

安全 服务器

为什么修改hosts不立即生效?--浏览器DNS缓存机制分析

陈磊@Criss

契约测试:解决微服务测试的问题

陈磊@Criss

想要成功,你需要的是目标与动机,目标是你的助攻,动机是你的爱人。

叶小鍵

成功学 心理学 海蒂·格兰特·霍尔沃森

抽象类、接口、Trait

书旅

接口 面向对象 抽象 对象 Trait

Flexible Box Layout 原理剖析

coolion

CSS 大前端

Python中的单下划线和双下划线使用场景

wangkx

Python Python基础知识 Python基础

数据治理第一步,摆脱“手工作坊”

KAMI

大数据 数据治理 数据开发 数据平台

源码分析 | Mybatis接口没有实现类为什么可以执行增删改查

小傅哥

Java 源码分析 小傅哥 mybatis

架构师训练营 - 第 7 周命题作业

红了哟

NoSQL基准对比Aerospike、Cassandra、Couchbase和MongoDB_架构_Abel Avram_InfoQ精选文章