public class IncrementHandler extends org.apache.hadoop.hbase.coprocessor.BaseRegionObserver
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.
org.apache.hadoop.hbase.coprocessor.RegionObserver.MutationTypeorg.apache.hadoop.hbase.Coprocessor.StatePRIORITY_HIGHEST, PRIORITY_LOWEST, PRIORITY_SYSTEM, PRIORITY_USER, VERSION| Constructor and Description |
|---|
IncrementHandler() |
postAppend, postBatchMutate, postBatchMutateIndispensably, postBulkLoadHFile, postCheckAndDelete, postCheckAndPut, postClose, postCloseRegionOperation, postCompact, postCompact, postCompactSelection, postCompactSelection, postCompleteSplit, postDelete, postExists, postFlush, postFlush, postGet, postGetClosestRowBefore, postGetOp, postIncrement, postIncrementColumnValue, postInstantiateDeleteTracker, postLogReplay, postMutationBeforeWAL, postOpen, postPut, postRollBackSplit, postScannerClose, postScannerFilterRow, postScannerNext, postSplit, postStartRegionOperation, postStoreFileReaderOpen, postWALRestore, preAppend, preAppendAfterRowLock, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preClose, preCompactScannerOpen, preCompactScannerOpen, preCompactSelection, preCompactSelection, preExists, preFlush, preFlushScannerOpen, preGet, preGetClosestRowBefore, preIncrement, preIncrementAfterRowLock, preIncrementColumnValue, preOpen, prePrepareTimeStampForDeleteVersion, preRollBackSplit, preScannerClose, preScannerNext, preSplit, preSplit, preSplitAfterPONR, preSplitBeforePONR, preStoreFileReaderOpen, preStoreScannerOpen, preWALRestore, stoppublic void start(org.apache.hadoop.hbase.CoprocessorEnvironment e) throws IOException
start in interface org.apache.hadoop.hbase.Coprocessorstart in class org.apache.hadoop.hbase.coprocessor.BaseRegionObserverIOExceptionpublic void setTimestampOracle(TimestampOracle timeOracle)
public void preGetOp(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> ctx, org.apache.hadoop.hbase.client.Get get, List<org.apache.hadoop.hbase.Cell> results) throws IOException
preGetOp in interface org.apache.hadoop.hbase.coprocessor.RegionObserverpreGetOp in class org.apache.hadoop.hbase.coprocessor.BaseRegionObserverIOExceptionpublic void prePut(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> ctx, org.apache.hadoop.hbase.client.Put put, org.apache.hadoop.hbase.regionserver.wal.WALEdit edit, org.apache.hadoop.hbase.client.Durability durability) throws IOException
prePut in interface org.apache.hadoop.hbase.coprocessor.RegionObserverprePut in class org.apache.hadoop.hbase.coprocessor.BaseRegionObserverIOExceptionpublic void preDelete(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> e, org.apache.hadoop.hbase.client.Delete delete, org.apache.hadoop.hbase.regionserver.wal.WALEdit edit, org.apache.hadoop.hbase.client.Durability durability) throws IOException
preDelete in interface org.apache.hadoop.hbase.coprocessor.RegionObserverpreDelete in class org.apache.hadoop.hbase.coprocessor.BaseRegionObserverIOExceptionpublic org.apache.hadoop.hbase.regionserver.RegionScanner preScannerOpen(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> e, org.apache.hadoop.hbase.client.Scan scan, org.apache.hadoop.hbase.regionserver.RegionScanner s) throws IOException
preScannerOpen in interface org.apache.hadoop.hbase.coprocessor.RegionObserverpreScannerOpen in class org.apache.hadoop.hbase.coprocessor.BaseRegionObserverIOExceptionpublic org.apache.hadoop.hbase.regionserver.RegionScanner postScannerOpen(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> ctx, org.apache.hadoop.hbase.client.Scan scan, org.apache.hadoop.hbase.regionserver.RegionScanner scanner) throws IOException
postScannerOpen in interface org.apache.hadoop.hbase.coprocessor.RegionObserverpostScannerOpen in class org.apache.hadoop.hbase.coprocessor.BaseRegionObserverIOExceptionpublic org.apache.hadoop.hbase.regionserver.InternalScanner preFlush(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> e, org.apache.hadoop.hbase.regionserver.Store store, org.apache.hadoop.hbase.regionserver.InternalScanner scanner) throws IOException
preFlush in interface org.apache.hadoop.hbase.coprocessor.RegionObserverpreFlush in class org.apache.hadoop.hbase.coprocessor.BaseRegionObserverIOExceptionpublic static boolean isIncrement(org.apache.hadoop.hbase.Cell cell)
public org.apache.hadoop.hbase.regionserver.InternalScanner preCompact(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> e, org.apache.hadoop.hbase.regionserver.Store store, org.apache.hadoop.hbase.regionserver.InternalScanner scanner, org.apache.hadoop.hbase.regionserver.ScanType scanType) throws IOException
preCompact in interface org.apache.hadoop.hbase.coprocessor.RegionObserverpreCompact in class org.apache.hadoop.hbase.coprocessor.BaseRegionObserverIOExceptionpublic org.apache.hadoop.hbase.regionserver.InternalScanner preCompact(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> e, org.apache.hadoop.hbase.regionserver.Store store, org.apache.hadoop.hbase.regionserver.InternalScanner scanner, org.apache.hadoop.hbase.regionserver.ScanType scanType, org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest request) throws IOException
preCompact in interface org.apache.hadoop.hbase.coprocessor.RegionObserverpreCompact in class org.apache.hadoop.hbase.coprocessor.BaseRegionObserverIOExceptionCopyright © 2016 Cask Data, Inc. Licensed under the Apache License, Version 2.0.