2

I just created a distributed key-value store (written in C++) for a grad research project, and need to test it with some standard db benchmarks. I would like to run the TPC-C and YCSB benchmarks on it. They key-value store provides ACID (transactional) semantics, but does not have a SQL interface. It supports two APIs : read() and write().

My question is the following: what is the quickest way to run TPC-C (or YCSB+T, or any other db benchmark) on my database? Do I create a SQL interface on top of my k-v store (not sure how easy/difficult this will be)? Or do I write the TPC-C queries in terms of reads/writes, from the TPC-C benchmark specification?

Is there a different way to do this, like modifying an existing tool that does most of the heavy lifting to work with my kv-store?

vladimir
  • 13,428
  • 2
  • 44
  • 70
aspen100
  • 965
  • 11
  • 22
  • 1
    What did you end up using to benchmark your key-value store? – jaywalker Jun 06 '18 at 07:09
  • 2
    @jaywalker : there was nothing out there that worked like a plug-in, into a standard kv-store with transactions; I ended up writing TATP and YCSB+T benchmarks for my kv-store. – aspen100 Jun 16 '18 at 22:37

1 Answers1

2

Have a look at dbbench:

DBbench - Embedded Database Benchmark

This is a rewrite of Google LevelDB's dbbench tool in C, and ported to a wide variety of other embedded database engines. A framework has been created to minimize the amount of code that must be written for any particular DB engine. Adding support for a new engine just requires writing a small C wrapper providing DB open, close, read, and write routines, plus optional command line parameters as needed.

amirouche
  • 7,682
  • 6
  • 40
  • 94