写在前面
因为我的科研方向是内存数据库机制设计,所以就选了经典的高性能分布式内存数据库(也是关系数据库)来作为研究的工具基础,以期做出足够大贡献的改进。
H-Store是由MIT,CMU,Brown大学联合开发的用于学术的分布式内存数据库,它的商业版本是voltDB。H-Store是开源的,所以你可以完全可以研读它的源码,做出任意的修改并发布。H-Store下载地址是:https://github.com/apavlo/h-store,主页是在http://hstore.cs.brown.edu/。
H-Store Benchmark
H-Store 研究者在设计之初就考虑了对各种benchmark的支持和测试,比如工业界的标准tpcc和著名的由雅虎开发的ycsb,其他的如smallbank, wikepedia benchmark, auctionmark benchmark也都可以用来测试。本文着重介绍tm1, tpcc, ycsb三种benchmark的结构以及如何测试及相应的测试结果。
tm1
这是一个模拟电信服务商电话呼叫业务的OLTP benchmark,包含四个table。
测试命令为:
export BENCHMARK = tm1
ant hstore-prepare -Dproject=$BENCHMARK
ant hstore-benchmark -Dproject=$BENCHMARK
输出结果如下所示:
[java] ======================================== BENCHMARK RESULTS ========================================
[java] Execution Time: 60000 ms
[java] Transactions: Total:600172 / Distributed:0 (0.0%) / SpecExec:0 (0.0%)
[java] Throughput: 10002.87 txn/s [min:9995.40 / max:10016.50 / stdev:7.89]
[java] Latency: 6.79 ms [min:5.00 / max:37.00 / stdev:2.55]
[java]
[java] ----------------------------------------------------------------------------------------------------
[java] TOTAL EXECUTED DISTRIBUTED THROUGHPUT AVG LATENCY
[java] Delete Call Forwarding: 11976 ( 2.0%) 0 ( 0.0%) 199.60 txn/s 6.79 ms
[java] Get New Destination: 60140 ( 10.0%) 0 ( 0.0%) 1002.33 txn/s 6.72 ms
[java] Update Location: 83736 ( 14.0%) 0 ( 0.0%) 1395.60 txn/s 6.81 ms
[java] Insert Call Forwarding: 12170 ( 2.0%) 0 ( 0.0%) 202.83 txn/s 10.04 ms
[java] Get Access Data: 216295 ( 36.0%) 0 ( 0.0%) 3604.92 txn/s 6.71 ms
[java] Get Subscriber Data: 203849 ( 34.0%) 0 ( 0.0%) 3397.48 txn/s 6.70 ms
[java] Update Subscriber Data: 12006 ( 2.0%) 0 ( 0.0%) 200.10 txn/s 6.73 ms
[java] ====================================================================================================
[java] Client Response Statuses:
[java] OK [583744 - 97.3%] ****