-
Notifications
You must be signed in to change notification settings - Fork 178
mv tuning9b
- merged to master -
- code complete - November 18, 2016
- development started - November 11, 2016
Oops! Appears this is the second branch labelled mv-tuning9. The first existed sometime in July of 2014.
This branch primarily improves write performance of a single database. Previous tuning branches looked primarily at Riak scenarios where leveldb would be operating 8 to 128 databases simultaneously. Also, the branch fixes a bug and updates db_bench for some Basho exclusive features.
Bug addressed:
- gThrottleRate within util/throttle.cc would hang between 1 and 16, never working down to zero. This would keep the throttle active at all times on fast SSD arrays.
db_bench is Google's benchmarking tool for leveldb. Added options for setting Basho's alternate bloom filter, LZ4 compaction, and total memory for flexcache.
VersionSet::Finalize() is responsible for determining how far behind the owning database is with regards to compactions. This function received a thorough review. The biggest change was to eliminate the non-linear penalty calculation. This was originally established to help heavy Riak loads containing large objects. The non-linear penalty was not subtle. This branch restores a linear penalty and uses the size of a write buffer as a measure for how far behind an owning database is with compactions. Also, the penalty is now smoothed over 1 minute intervals.
gThrottleRate previously used a smoothing factor of THROTTLE_SCALING to slow movement of the throttle up and down. However, the throttle actually quit moving once the current throttle was below THROTTLE_SCALING.