Addendum

When we ran the HBase random write throughput test, we were mistakenly under the impression that the HBase property hbase.hregion.memstore.mslab.enabled was set to true by default.  As it turns out, the version of HBase that we ran the tests with (0.90.4) had this property set to false by default.  In this addendum, we report the results of the Random Write throughput test with an additional HBase test where we set the hbase.hregion.memstore.mslab.enabled property to true.

Random Write

This test was identical to the Random Write test that was originally run, except that we added a third test where we measured the performance of HBase with the hbase.hregion.memstore.mslab.enabled property set to true.

Configuration

In this test we added a third HBase test with the exact same configuration as the original HBase test, except that we added the following property setting to hbase-site.xml:

<property>
  <name>hbase.hregion.memstore.mslab.enabled</name>
  <value>true</value>
</property>

The results of the test, with the addition of the third test with mslab enabled, are summarized in the following chart:

Random Write Throughput - 5TB Dataset

The exact performance measurements are provided in the following table:

Value Size Key Count Hypertable
Throughput MB/s
HBase
Throughput MB/s
HBase w/mslab
Throughput MB/s
10,000 500,041,347 188 93.5 84
1,000 4,912,173,058 183 84 72.9
100 41,753,471,955 113 ? ?
10 167,013,888,782 34 ? ?

* No results were obtained for both HBase and HBase w/mslab for the 41 billion and 166 billion key tests due to Concurrent mode failure

Conclusion

Running HBase with hbase.hregion.memstore.mslab.enabled set to true did not have any beneficial effect on performance.  In fact, the performance numbers were worse for the 500 Million and 4.9 Billion tests and the 41 Billion and 167 Billion tests failed with JVM Concurrent mode failure.  The failures occurred after the tests progressed to 60% and 20%, respectively.