HBase coprocessor that handles reading and writing read-less increment operations.
Writes of incremental values are performed as normal
Puts, flagged with a special attribute
HBaseTable#DELTA_WRITE. The coprocessor intercepts these
writes and rewrites the cell value to use a special marker prefix.
For read (for
Get and
Scan) operations, all of the delta values are summed up for a column,
up to and including the most recent "full" (non-delta) value. The sum of these delta values, plus the full value
(if found) is returned for the column.
To mitigate the performance impact on reading, this coprocessor also overrides the scanner used in flush and
compaction operations, using
IncrementSummingScanner to generate a new "full" value aggregated from
all the successfully committed delta values.