How to test and benchmark Aerospike (vs. Couchbase)

From this question on Stackoverflow:

" Am trying to do a benchmark of using aerospike, For example, lets say if I want to test storing a document may be JSON in Aerospike and do the same test against Couchbase, what kinda tool/method i can use it to test between Aerospike and Couchbase. "

I am not very familiar with Couchbase, but I can give you pointers on to benchmark against Aerospike (I work there). The YCSB (Yahoo! Cloud System Benchmark) would probably be the best tool to use against both. Here is the code to use against Aerospike.

Now for specifically benchmarking Aerospike, I would recommend using one of Aerospike’s benchmark tools - for example the Java benchmark tool - and use a String (-o S:) or a Java blob (-o B:) with a length comparable to your json document.

For example:

./run_benchmarks -h 127.0.0.1 -p 3000 -n test -k 10000000 -b 1 -o B:1400 -w RU,80 -z 8

This would run a workload of 80% reads and 20% writes (-w RU,80) and using 8 concurrent threads (-z 8).

Some important points to consider, though:

  • Ideally, this should run against a 2+ node cluster (so you do check with replication factor 2).
  • You will probably need more than 1 client host as you will likely hit bottlenecks on the client side before saturating the cluster.
  • You will want to find out the optimal number of threads for your workload / object size. Typically, this is between 60 and 100.

Finally, I recommend that you read some of the published documentation related to benchmarking Aerospike and other NoSQL databases, particularly, this one.

Hope this helps!