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:
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.