近日Thumbtack发布了两篇论文,分别为 超高性能NoSQL基准和 NoSQL故障转移特征;前者是分析持久性和性能的权衡,后者则是关于Aerospike、Cassandra、Couchbase和MongoDB几个NoSQL的故障转移特征。两个基准都尝试测试“有高吞吐量、低延时需求的面向用户应用程序,这些应用程序的数据都可以使用键值形式进行存储”。 Thumback使用的是YCSB(Yahoo! Cloud Serving Benchmark)的升级版,新的YCSB改变记录在第一篇论文的文档中。在着眼新的基准测试之前我们首先看一下原YCSB上的一件趣事: YCSB推出不久后(1年多以前),HyperDex使用这个基准对HyperDex、Redis和MongoDB几个高性能数据库进行测试,而得出的结果更是犀利无比 —— 吞吐量秒杀风头正劲的MongoDB与Cassandra,赶超Redis。 为此有“热心”的网友在Redis社区中发表了帖子 HyperDex vs.Redis,并得到了Redis之父Salvatore Sanfilippo大神“强有力”的回复:
而之后Salvatore Sanfilippo更是对YCSB基准做出了如下的评论:
言归正传,下面来着眼于改良后的基准测试。进行测试的NoSQL数据库包括:Aerospike、Cassandra、Couchbase(1.8和2.0)、MongoDB。第一个是收费产品,最后一个是文档存储而非键值存储,之所以包含MongoDB的原因是“从我们的经验上看,一般都会认为它适合此类应用程序”。所有数据库都使用提供商的建议进行优化,取代机械硬盘,测试系统使用SSD进行存储。论文中详细的陈述了使用的方法、客户端和负载配置、硬件配置等。 Thumbtack坦诚与Aerospike、Couchbase、10gen之间存在“战略/商业上的合作关系”,同时测试硬件是从Aerospike租借,下面列出了一些测试结果: 插入操作吞吐量 数据库使用原始的YCSB负载路由,将执行大量的插入操作。对于已存入内存的工作集,Couchbase表现的最好;但是从SSD上加载时,Couchbase出现了问题:Couchbase 1.8无法完成这个操作,而Couchbase 2.0只能使用小集合和异步模式。 |