Skip to content

mv tuning5

Matthew Von-Maszewski edited this page Jan 30, 2014 · 7 revisions

Status

  • merged to develop
  • code complete
  • development started

History / Context

This page discusses a second set of tunings and fixes made to basho/leveldb as part of the final Riak 2.0 release preparation.

The previous tuning branch, mv-tuning4, raised the compaction threshold count from 4 to 6 for overlapped .sst table files in levels 0 and 1. The gLevelTraits table at the top of db/version_set.cc was adjust then accordingly. This branch further adjusts the gLevelTraits table based upon execution results on various hardware platforms and analysis of leveldb's LOG files. Baseline tests indicate these new adjustments reduce the write amplification in specific tests from 6 to 4 … improving ingest speed and overall throughput.

basho/leveldb changes in the branch are all performance tunings. There are no known bugs addressed. Riak 2.0's leveldb contains the hot-threads branch which replaces all the horrible hacks to threads and locks with real code. The hot-threads worked great on fast disk arrays and required no changes to the write throttle code. Then we started testing on slow arrays. Hot-threads was too fast and the write throttle was completely inappropriate (lots of sawtooth throughput graphs). There are still sawtooth patterns on some heavy loads, but the teeth are smaller and overall throughput greater.

Branch description

Clone this wiki locally