Here, we just use HBase in a straightforward way to store the def~index mapping above. The challenge with using HBase (or any external key-value store for that matter) is performing rollback of a commit and handling partial index updates. Since the HBase table is indexed by record key and not commit Time, we would have to scan all the entries which will be prohibitively expensive. Instead, we store the commit time with the value and discard its value if it does not belong to a valid commit. HBaseIndex is a global index, that does not rely on the partition path to perform, the index lookup.