Skip to content
/ UCSB Public
forked from unum-cloud/ucsb

The broadest & deepest benchmark for persistent data-structures, like LSM-Trees and B+Trees. Includes singular, batch and bulk workloads with mixed read & write operations in configurable proportions

Notifications You must be signed in to change notification settings

teabagk7/UCSB

 
 

Repository files navigation

UCSB

Unum Cloud Serving Benchmark is the grandchild of Yahoo Cloud Serving Benchmark, reimplemented in C++, with less costly abstractions and with more workloads, crafted specifically for the Big Data age! A full description of this benchmark can be found here, in our corporate blog, together with the recent results.

UCSB Benchmark Duration for RocksDB, LevelDB, WiredTiger and UnumDB

To run the benchmark, call ./run.py. Output will be placed into the bench/results/ folder.

Supported Backends

  • WiredTiger. Version 10.0.0.
  • LevelDB. Version 1.23.
  • RocksDB. Version 6.29.3.
  • LMDB. Version 0.9.29.

Our UnumDB is also evaluated with this benchmark, but it wasn't included into the public mirror.

Implemented Workloads

  • : imports monotonically increasing keys 🔄
  • A: 50% reads + 50% updates, all random
  • C: reads, all random
  • D: 95% reads + 5% inserts, all random
  • E: range scan 🔄
  • : batch read 🆕
  • Y: batch insert 🆕
  • Z: scans 🆕

The was previously implemented as one-by-one inserts, but some KVS support the external construction of its internal representation files. The E was previously mixed with 5% insertions.

Known Issues and TODOs

  • Current benchmarks don't use custom key comparators. Both variants were tested and it didn't affect the speed.
  • WiredTiger sometimes crashes on 1 TB benchmarks.
  • Read/Update might be replaced with a Read-Modify-Write operation.

About

The broadest & deepest benchmark for persistent data-structures, like LSM-Trees and B+Trees. Includes singular, batch and bulk workloads with mixed read & write operations in configurable proportions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.0%
  • CMake 4.6%
  • Python 4.0%
  • Shell 1.8%
  • Dockerfile 0.6%