diff --git a/docs/VOLUME.md b/docs/VOLUME.md index 00f3e94..645777a 100644 --- a/docs/VOLUME.md +++ b/docs/VOLUME.md @@ -159,5 +159,16 @@ to be completed .. Testing for load including 2i queries +## Riak Cluster Test - Phase 5 +For larger objects, it is interesting to compare performance with between Bitcask and leveled. At the start of a pure push test it is not possible for leveled to operate at the same rate as bitcask - as bitcask is finding/updating pointer s through a NIF'd memory operation in C (whereas leveled needs to has two levels of indirect pointers which are being lazily persisted to disk). +However, as the test progresses, there should be an advantage in that leveled is not needing to read each object from disk N times on both PUT and GET - so as the scope of the database creeps beyond that covered by the page cache, and as the frequency of disk reads starts to create an I/O bottlneck then leveled throughput will become more competitive. + +Here is a side-by-side on a standard Phase 1 test on i2, without sync, and with 60 threads and 16KB objects. + +Riak + leveled | Riak + bitcask +:-------------------------:|:-------------------------: +![](../test/volume/cluster_five/output/summary_leveled_5n_60t_i2_16KB_nosync.png "LevelEd") | ![](../test/volume/cluster_five/output/summary_bitcask_5n_60t_i2_16KB_nosync.png "LevelDB") + +Over the whole test, the bitcask-backed cluster achieves 16.48% more throughput than leveled, but in the last hour this advantage is just 0.34%. diff --git a/test/volume/cluster_five/output/summary_bitcask_5n_60t_i2_16KB_nosync.png b/test/volume/cluster_five/output/summary_bitcask_5n_60t_i2_16KB_nosync.png new file mode 100644 index 0000000..fa18a06 Binary files /dev/null and b/test/volume/cluster_five/output/summary_bitcask_5n_60t_i2_16KB_nosync.png differ