layout: post title: “YCSB Benchmark with Crail on DRAM, Flash and Optane over RDMA and NVMe-over-Fabrics” author: Patrick Stuedi and Jonas Pfefferle category: blog comments: true

The Crail Key-Value Storage Namespace

CrailStore crail = CrailStore.newInstance();
CrailTable table = fs.create("/tab1", CrailNodeType.TABLE, ..., ...).get();
CrailKeyValue kv = fs.create("/tab1/key1", CrailNodeType.KEYVALUE, ..., ...).get();
CrailOutputStream stream = kv.getOutputStream();
CrailBuffer buf = CrailBuffer.wrap("data".bytes());
stream.append(buf);
CrailStore crail = CrailStore.newInstance();
CrailKeyValue kv = fs.lookup("/tab1/key1").get().asKeyValue();
CrailInputStream stream = kv.getInputStream();
CrailBuffer buf = crail.createBuffer();
stream.read(buf);

Running YCSB with Crail

crail@clustermaster:~$ git clone http://github.com/brianfrankcooper/YCSB.git
crail@clustermaster:~$ cd YCSB
crail@clustermaster:~$ mvn -pl com.yahoo.ycsb:crail-binding -am clean package
crail@clustermaster:~$ ./bin/ycsb load crail -s -P workloads/workloada -P large.dat -p crail.enumeratekeys=true >outputLoad.txt
crail@clustermaster:~$ ./bin/ycsb run crail -s -P workloads/workloada

YCSB Benchmark Performance for DRAM & Intel Optane

Pushing the throughput limits

Summary