Skip to content


Subversion checkout URL

You can clone with
Download ZIP
HBase High Update Throughput
Branch: master
Pull request Compare This branch is 15 commits behind sematext:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.



Mailing List:
To participate more in the discussion, join the group at

HBaseHUT stands for High Updates Throughput for HBase. It was inspired by
discussions on HBase mailing lists around the problem with having Get&Put
for each update operation, which affects write throughput dramatically.
Another force behind behind the approach used in HBaseHUT was recent
activity on Coprocessors development.  Although usage of CPs is very limited
in the current implementation (see CPs branch) HBaseHUT is designed with
broader use of CPs in mind because they add more
flexibility when it comes to alternative MapReduce data processing
approaches in addition to allowing seamlessly integrate the logic in places
where it makes the work to be performed in the most efficient way.

The idea behind HBaseHUT is:
* Don't do updates of existing data on each Put (and hence don't perform
  Get operation for each Put operation). All Puts are plain Puts with the
  relevant pure-insert write performance.
* Defer processing updates to scheduled job (not necessarily a MapReduce job)
  or perform updates on as-needed basis.
* Serve updated data in "online" manner: user always gets updated record
  immediately after new data was Put, i.e., user "sees" updates immediately
  after he writes data.

In addition to allowing real-time data processing where it wasn't possible
before (where batch processing was used due to update throughput limitations)
HBaseHUT also adds such a major feature as ability to roll back changes.

For more information please refer to the github project wiki:

For a clear introductory post with a good HBaseHUT use-case read/watch:

Build Notes:
Current pom configured to build against HBase 0.90.4 (cdh3u3). The project
start date goes back to the time when 0.89.20100924 was the latest version
available. The code should be compatible with it too (and any version after it).
CPs branch is configured to be run on HBase 0.92.xx (first CPs-capable release).

Note: unit-tests take some time to execute (up to several minutes), to skip
their execution use -Dmaven.skip.tests=true.

HBase Version Compatibility:
Compatible with HBase 0.20.5 -
May be compatible with older: tests needed (TODO)

Released under Apache License 2.0.

Alex Baranau
Something went wrong with that request. Please try again.