基准测试:Apache Ignite仍然领先于Hazelcast

当在谷歌中搜索Apache Ignite时,发生了一个奇怪的事:Hazelcast的广告跑到了列表的顶部,建议说Hazelcast比Ignite快50%:

要注意的第一个疑点是当你点击链接时,显示的是Hazelcast与一年前发布的Ignite的1.5版本的比较!另外,一段时间内吹嘘自己也是可以的,但是可笑的是这持续了一年而不在页面中更新基准测试结果。 那好,这可能是Hazelcast营销团队的疏忽,既然这样了,那么就有必要帮助他们展示一下Ignite和Hazelcast最新版本的当前状态。

常规测试

对像Apache Ignite或者Hazelcast这样的分布式平台进行测试的最简单方式是,启动一个拥有若干节点的集群然后运行一个客户端进程产生负载再收集测试结果。作为基准,在AWS上准备了一个拥有四台机器/数据节点的集群,然后负载来自一个单一客户端机器(或者说应用)。Yardstick作为测试框架,所有的参数和操作方法如下所示:

根据给定的配置,按照在Amazon上运行Yardstick的说明,可以再现如下数据:

非常明显,在大多数的基本操作中Ignite 1.9.0版本都显著优于Hazelcast 3.8.1版本,部分场景中甚至领先160%。 同时,也可以发现在部分原子操作中,Hazelcast领先Ignite大约4%,老实说,知道Ignite还有性能改进空间非常好,Hazelcast没有让Ignite的性能工程师轻松起来。 然而,发现性能缺陷之后,决定在一个更高的负载下执行同样的测试集,这样会更接近生产场景-负载由8台客户端机器产生(或者说应用)而不是一台客户机,结果令人振奋!下一章中会看到。

高压测试

上面的Yardstick配置只修改了如下的部分:

在客户机数量从1个增加到8个之后,再现了如下的结果:

这是从一台客户机上获取的数据,要想获得一秒内的操作总数,只需要累加即可。从目前这个结果来看,在高负载下,在任何场景的每项测试中Ignite都领先于Hazelcast。 比如,Ignite的ANSI-99 SQL引擎领先Hazelcast的基于谓词的查询引擎200%,而在只有一个客户端的场景中,这个差距只有80%。 甚至,Ignite在先前的atomic-put-get-bs-6场景原子测试中,由落后Hazelcast4%到领先Hazelcast42%。

结论

在产品化时可能总是要决定使用哪个产品,但是一个黄金法则是不要盲目相信厂商提供的官方数据。掌握所有的信息后了解一个产品,然后在自己的场景中进行测试,只有这样,才能知道哪个产品更适合自己。


本文作者:李玉珏

来源:51CTO

My first acquaintance with High load systems was at the beginning of 2007, and I started working on a real-world project since 2009. From that moment, I spent most of my office time with Cassandra, Hadoop, and numerous CEP tools. Our first Hadoop project (the year 2011-2012) with a cluster of 54 nodes often disappointed me with its long startup time. I have never been satisfied with the performance of our applications and was always looking for something new to boost the performance of our information systems. During this time, I have tried HazelCast, Ehcache, Oracle Coherence as in-memory caches to gain the performance of the applications. I was usually disappointed from the complexity of using these libraries or from their functional limitations. When I first encountered Apache Ignite, I was amazed! It was the platform that I’d been waiting on for a long time: a simple spring based framework with a lot of awesome features such as DataBase caching, Big data acceleration, Streaming and compute/service grids. In 2015, I had participated in Russian HighLoad++ conference1 with my presentation and started blogging in Dzone/JavaCodeGeeks and in my personal blog2 about developing High-load systems. They became popular shortly, and I received a lot of feedback from the readers. Through them, I clarified the idea behind the book. The goal of the book was to provide a guide for those who really need to implement an in-memory platform in their projects. At the same time, the idea behind the book is not writing a manual. Although the Apache Ignite platform is very big and growing day by day, we concentrate only on the features of the platform (from our point of view) that can really help to improve the performance of the applications. We hope that High-performance in-memory computing with Apache Ignite will be the go-to guide for architects and developers: both new and at an intermediate level, to get up and to develop with as little friction as possible.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值