public class SimpleRegionObserver extends BaseRegionObserver
Modifier and Type | Class and Description |
---|---|
static class |
SimpleRegionObserver.Legacy
This implementation should trigger our legacy support because it does not directly
implement the newer API calls.
|
RegionObserver.MutationType
Coprocessor.State
PRIORITY_HIGHEST, PRIORITY_LOWEST, PRIORITY_SYSTEM, PRIORITY_USER, VERSION
Constructor and Description |
---|
SimpleRegionObserver() |
Modifier and Type | Method and Description |
---|---|
int |
getCtBeforeDelete() |
int |
getCtPostClose() |
int |
getCtPostCloseRegionOperation() |
int |
getCtPostCompact() |
int |
getCtPostCompactSelect() |
int |
getCtPostDeleted() |
int |
getCtPostFlush() |
int |
getCtPostGet() |
int |
getCtPostGetClosestRowBefore() |
int |
getCtPostIncrement() |
int |
getCtPostOpen() |
int |
getCtPostPut() |
int |
getCtPostSplit() |
int |
getCtPostStartRegionOperation() |
int |
getCtPostWALRestore() |
int |
getCtPostWALRestoreDeprecated() |
int |
getCtPreClose() |
int |
getCtPreCompact() |
int |
getCtPreCompactScanner() |
int |
getCtPreCompactSelect() |
int |
getCtPreDeleted() |
int |
getCtPreFlush() |
int |
getCtPreFlushScannerOpen() |
int |
getCtPreGet() |
int |
getCtPreGetClosestRowBefore() |
int |
getCtPreIncrement() |
int |
getCtPreOpen() |
int |
getCtPrePut() |
int |
getCtPreSplit() |
int |
getCtPreSplitAfterPONR() |
int |
getCtPreSplitBeforePONR() |
int |
getCtPreWALRestore() |
int |
getCtPreWALRestoreDeprecated() |
boolean |
hadDelete() |
boolean |
hadDeleted() |
boolean |
hadPostAppend() |
boolean |
hadPostBatchMutate() |
boolean |
hadPostBatchMutateIndispensably() |
boolean |
hadPostBulkLoadHFile() |
boolean |
hadPostCheckAndDelete() |
boolean |
hadPostCheckAndPut() |
boolean |
hadPostCloseRegionOperation() |
boolean |
hadPostGet() |
boolean |
hadPostIncrement() |
boolean |
hadPostPut() |
boolean |
hadPostStartRegionOperation() |
boolean |
hadPostWALRestore() |
boolean |
hadPreAppend() |
boolean |
hadPreAppendAfterRowLock() |
boolean |
hadPreBatchMutate() |
boolean |
hadPreBulkLoadHFile() |
boolean |
hadPreCheckAndDelete() |
boolean |
hadPreCheckAndDeleteAfterRowLock() |
boolean |
hadPreCheckAndPut() |
boolean |
hadPreCheckAndPutAfterRowLock() |
boolean |
hadPreGet() |
boolean |
hadPreIncrement() |
boolean |
hadPreIncrementAfterRowLock() |
boolean |
hadPrePreparedDeleteTS() |
boolean |
hadPrePut() |
boolean |
hadPreWALRestore() |
Result |
postAppend(ObserverContext<RegionCoprocessorEnvironment> e,
Append append,
Result result)
Called after Append
|
void |
postBatchMutate(ObserverContext<RegionCoprocessorEnvironment> c,
MiniBatchOperationInProgress<Mutation> miniBatchOp)
This will be called after applying a batch of Mutations on a region.
|
void |
postBatchMutateIndispensably(ObserverContext<RegionCoprocessorEnvironment> ctx,
MiniBatchOperationInProgress<Mutation> miniBatchOp,
boolean success)
Called after the completion of batch put/delete and will be called even if the batch operation
fails
|
boolean |
postBulkLoadHFile(ObserverContext<RegionCoprocessorEnvironment> ctx,
java.util.List<Pair<byte[],java.lang.String>> familyPaths,
java.util.Map<byte[],java.util.List<Path>> map,
boolean hasLoaded)
Called after bulkLoadHFile.
|
boolean |
postCheckAndDelete(ObserverContext<RegionCoprocessorEnvironment> e,
byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Delete delete,
boolean result)
Called after checkAndDelete
|
boolean |
postCheckAndPut(ObserverContext<RegionCoprocessorEnvironment> e,
byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Put put,
boolean result)
Called after checkAndPut
|
void |
postClose(ObserverContext<RegionCoprocessorEnvironment> c,
boolean abortRequested)
Called after the region is reported as closed to the master.
|
void |
postCloseRegionOperation(ObserverContext<RegionCoprocessorEnvironment> ctx,
Region.Operation op)
Called after releasing read lock in
Region.closeRegionOperation() . |
void |
postCompact(ObserverContext<RegionCoprocessorEnvironment> e,
Store store,
StoreFile resultFile)
Called after compaction has completed and the new store file has been moved in to place.
|
void |
postCompactSelection(ObserverContext<RegionCoprocessorEnvironment> c,
Store store,
<any> selected)
Called after the
StoreFile s to compact have been selected from the available
candidates. |
void |
postDelete(ObserverContext<RegionCoprocessorEnvironment> c,
Delete delete,
WALEdit edit,
Durability durability)
Called after the client deletes a value.
|
void |
postFlush(ObserverContext<RegionCoprocessorEnvironment> c,
Store store,
StoreFile resultFile)
Called after a Store's memstore is flushed to disk.
|
void |
postGetClosestRowBefore(ObserverContext<RegionCoprocessorEnvironment> c,
byte[] row,
byte[] family,
Result result)
Called after a client makes a GetClosestRowBefore request.
|
void |
postGetOp(ObserverContext<RegionCoprocessorEnvironment> c,
Get get,
java.util.List<Cell> results)
Called after the client performs a Get
|
Result |
postIncrement(ObserverContext<RegionCoprocessorEnvironment> c,
Increment increment,
Result result)
Called after increment
|
void |
postOpen(ObserverContext<RegionCoprocessorEnvironment> c)
Called after the region is reported as open to the master.
|
void |
postPut(ObserverContext<RegionCoprocessorEnvironment> c,
Put put,
WALEdit edit,
Durability durability)
Called after the client stores a value.
|
void |
postScannerClose(ObserverContext<RegionCoprocessorEnvironment> c,
InternalScanner s)
Called after the client closes a scanner.
|
boolean |
postScannerNext(ObserverContext<RegionCoprocessorEnvironment> c,
InternalScanner s,
java.util.List<Result> results,
int limit,
boolean hasMore)
Called after the client asks for the next row on a scanner.
|
RegionScanner |
postScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c,
Scan scan,
RegionScanner s)
Called after the client opens a new scanner.
|
void |
postSplit(ObserverContext<RegionCoprocessorEnvironment> c,
Region l,
Region r)
Called after the region is split.
|
void |
postStartRegionOperation(ObserverContext<RegionCoprocessorEnvironment> ctx,
Region.Operation op)
This will be called for region operations where read lock is acquired in
Region.startRegionOperation() . |
StoreFile.Reader |
postStoreFileReaderOpen(ObserverContext<RegionCoprocessorEnvironment> ctx,
FileSystem fs,
Path p,
FSDataInputStreamWrapper in,
long size,
CacheConfig cacheConf,
Reference r,
StoreFile.Reader reader)
Called after the creation of Reader for a store file.
|
void |
postWALRestore(ObserverContext<? extends RegionCoprocessorEnvironment> env,
HRegionInfo info,
WALKey logKey,
WALEdit logEdit)
Implementers should override this version of the method and leave the deprecated one as-is.
|
void |
postWALRestore(ObserverContext<RegionCoprocessorEnvironment> env,
HRegionInfo info,
HLogKey logKey,
WALEdit logEdit)
Called after a
WALEdit
replayed for this region. |
Result |
preAppend(ObserverContext<RegionCoprocessorEnvironment> e,
Append append)
Called before Append.
|
Result |
preAppendAfterRowLock(ObserverContext<RegionCoprocessorEnvironment> e,
Append append)
Called before Append but after acquiring rowlock.
|
void |
preBatchMutate(ObserverContext<RegionCoprocessorEnvironment> c,
MiniBatchOperationInProgress<Mutation> miniBatchOp)
This will be called for every batch mutation operation happening at the server.
|
void |
preBulkLoadHFile(ObserverContext<RegionCoprocessorEnvironment> ctx,
java.util.List<Pair<byte[],java.lang.String>> familyPaths)
Called before bulkLoadHFile.
|
boolean |
preCheckAndDelete(ObserverContext<RegionCoprocessorEnvironment> e,
byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Delete delete,
boolean result)
Called before checkAndDelete.
|
boolean |
preCheckAndDeleteAfterRowLock(ObserverContext<RegionCoprocessorEnvironment> e,
byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Delete delete,
boolean result)
Called before checkAndDelete but after acquiring rowock.
|
boolean |
preCheckAndPut(ObserverContext<RegionCoprocessorEnvironment> e,
byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Put put,
boolean result)
Called before checkAndPut.
|
boolean |
preCheckAndPutAfterRowLock(ObserverContext<RegionCoprocessorEnvironment> e,
byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Put put,
boolean result)
Called before checkAndPut but after acquiring rowlock.
|
void |
preClose(ObserverContext<RegionCoprocessorEnvironment> c,
boolean abortRequested)
Called before the region is reported as closed to the master.
|
InternalScanner |
preCompact(ObserverContext<RegionCoprocessorEnvironment> e,
Store store,
InternalScanner scanner,
ScanType scanType)
Called prior to writing the
StoreFile s selected for compaction into a new
StoreFile . |
InternalScanner |
preCompactScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c,
Store store,
java.util.List<? extends KeyValueScanner> scanners,
ScanType scanType,
long earliestPutTs,
InternalScanner s)
Called prior to writing the
StoreFile s selected for compaction into a new
StoreFile and prior to creating the scanner used to read the input files. |
void |
preCompactSelection(ObserverContext<RegionCoprocessorEnvironment> c,
Store store,
java.util.List<StoreFile> candidates)
Called prior to selecting the
StoreFile s to compact from the list of available
candidates. |
void |
preDelete(ObserverContext<RegionCoprocessorEnvironment> c,
Delete delete,
WALEdit edit,
Durability durability)
Called before the client deletes a value.
|
InternalScanner |
preFlush(ObserverContext<RegionCoprocessorEnvironment> c,
Store store,
InternalScanner scanner)
Called before a Store's memstore is flushed to disk.
|
InternalScanner |
preFlushScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c,
Store store,
KeyValueScanner memstoreScanner,
InternalScanner s)
Called before a memstore is flushed to disk and prior to creating the scanner to read from
the memstore.
|
void |
preGetClosestRowBefore(ObserverContext<RegionCoprocessorEnvironment> c,
byte[] row,
byte[] family,
Result result)
Called before a client makes a GetClosestRowBefore request.
|
void |
preGetOp(ObserverContext<RegionCoprocessorEnvironment> c,
Get get,
java.util.List<Cell> results)
Called before the client performs a Get
|
Result |
preIncrement(ObserverContext<RegionCoprocessorEnvironment> c,
Increment increment)
Called before Increment.
|
Result |
preIncrementAfterRowLock(ObserverContext<RegionCoprocessorEnvironment> e,
Increment increment)
Called before Increment but after acquiring rowlock.
|
void |
preOpen(ObserverContext<RegionCoprocessorEnvironment> c)
Called before the region is reported as open to the master.
|
void |
prePrepareTimeStampForDeleteVersion(ObserverContext<RegionCoprocessorEnvironment> e,
Mutation delete,
Cell cell,
byte[] byteNow,
Get get)
Called before the server updates the timestamp for version delete with latest timestamp.
|
void |
prePut(ObserverContext<RegionCoprocessorEnvironment> c,
Put put,
WALEdit edit,
Durability durability)
Called before the client stores a value.
|
void |
preScannerClose(ObserverContext<RegionCoprocessorEnvironment> c,
InternalScanner s)
Called before the client closes a scanner.
|
boolean |
preScannerNext(ObserverContext<RegionCoprocessorEnvironment> c,
InternalScanner s,
java.util.List<Result> results,
int limit,
boolean hasMore)
Called before the client asks for the next row on a scanner.
|
RegionScanner |
preScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c,
Scan scan,
RegionScanner s)
Called before the client opens a new scanner.
|
void |
preSplit(ObserverContext<RegionCoprocessorEnvironment> c)
Called before the region is split.
|
void |
preSplitAfterPONR(ObserverContext<RegionCoprocessorEnvironment> ctx)
This will be called after PONR step as part of split transaction
Calling
ObserverContext.bypass() has no
effect in this hook. |
void |
preSplitBeforePONR(ObserverContext<RegionCoprocessorEnvironment> ctx,
byte[] splitKey,
java.util.List<Mutation> metaEntries)
This will be called before PONR step as part of split transaction.
|
StoreFile.Reader |
preStoreFileReaderOpen(ObserverContext<RegionCoprocessorEnvironment> ctx,
FileSystem fs,
Path p,
FSDataInputStreamWrapper in,
long size,
CacheConfig cacheConf,
Reference r,
StoreFile.Reader reader)
Called before creation of Reader for a store file.
|
KeyValueScanner |
preStoreScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c,
Store store,
Scan scan,
java.util.NavigableSet<byte[]> targetCols,
KeyValueScanner s)
Called before a store opens a new scanner.
|
void |
preWALRestore(ObserverContext<? extends RegionCoprocessorEnvironment> env,
HRegionInfo info,
WALKey logKey,
WALEdit logEdit)
Implementers should override this version of the method and leave the deprecated one as-is.
|
void |
preWALRestore(ObserverContext<RegionCoprocessorEnvironment> env,
HRegionInfo info,
HLogKey logKey,
WALEdit logEdit)
Called before a
WALEdit
replayed for this region. |
void |
setThrowOnPostFlush(java.lang.Boolean val) |
void |
start(CoprocessorEnvironment e) |
boolean |
wasClosed() |
boolean |
wasCompacted() |
boolean |
wasFlushed() |
boolean |
wasOpened() |
boolean |
wasScannerCloseCalled() |
boolean |
wasScannerNextCalled() |
boolean |
wasScannerOpenCalled() |
boolean |
wasSplit() |
boolean |
wasStoreFileReaderOpenCalled() |
postBulkLoadHFile, postCommitStoreFile, postCompact, postCompactSelection, postCompleteSplit, postExists, postFlush, postIncrementColumnValue, postInstantiateDeleteTracker, postLogReplay, postMutationBeforeWAL, postRollBackSplit, postScannerFilterRow, preCommitStoreFile, preCompact, preCompactScannerOpen, preCompactSelection, preExists, preFlush, preIncrementColumnValue, preRollBackSplit, preSplit, stop
public void setThrowOnPostFlush(java.lang.Boolean val)
public void start(CoprocessorEnvironment e) throws java.io.IOException
start
in interface Coprocessor
start
in class BaseRegionObserver
java.io.IOException
public void preOpen(ObserverContext<RegionCoprocessorEnvironment> c)
RegionObserver
preOpen
in interface RegionObserver
preOpen
in class BaseRegionObserver
c
- the environment provided by the region serverpublic void postOpen(ObserverContext<RegionCoprocessorEnvironment> c)
RegionObserver
postOpen
in interface RegionObserver
postOpen
in class BaseRegionObserver
c
- the environment provided by the region serverpublic boolean wasOpened()
public void preClose(ObserverContext<RegionCoprocessorEnvironment> c, boolean abortRequested)
RegionObserver
preClose
in interface RegionObserver
preClose
in class BaseRegionObserver
c
- the environment provided by the region serverabortRequested
- true if the region server is abortingpublic void postClose(ObserverContext<RegionCoprocessorEnvironment> c, boolean abortRequested)
RegionObserver
postClose
in interface RegionObserver
postClose
in class BaseRegionObserver
c
- the environment provided by the region serverabortRequested
- true if the region server is abortingpublic boolean wasClosed()
public InternalScanner preFlush(ObserverContext<RegionCoprocessorEnvironment> c, Store store, InternalScanner scanner) throws java.io.IOException
RegionObserver
preFlush
in interface RegionObserver
preFlush
in class BaseRegionObserver
c
- the environment provided by the region serverstore
- the store where compaction is being requestedscanner
- the scanner over existing data used in the store filenull
unless the implementation is writing new store files on its own.java.io.IOException
- if an error occurred on the coprocessorpublic InternalScanner preFlushScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c, Store store, KeyValueScanner memstoreScanner, InternalScanner s) throws java.io.IOException
RegionObserver
StoreFile
or null to perform the default processing.
Calling ObserverContext.bypass()
has no
effect in this hook.preFlushScannerOpen
in interface RegionObserver
preFlushScannerOpen
in class BaseRegionObserver
c
- the environment provided by the region serverstore
- the store being flushedmemstoreScanner
- the scanner for the memstore that is flusheds
- the base scanner, if not null
, from previous RegionObserver in the chainnull
if the default implementation
is to be used.java.io.IOException
- if an error occurred on the coprocessorpublic void postFlush(ObserverContext<RegionCoprocessorEnvironment> c, Store store, StoreFile resultFile) throws java.io.IOException
RegionObserver
postFlush
in interface RegionObserver
postFlush
in class BaseRegionObserver
c
- the environment provided by the region serverstore
- the store being flushedresultFile
- the new store file written out during compactionjava.io.IOException
- if an error occurred on the coprocessorpublic boolean wasFlushed()
public void preSplit(ObserverContext<RegionCoprocessorEnvironment> c)
RegionObserver
preSplit
in interface RegionObserver
preSplit
in class BaseRegionObserver
c
- the environment provided by the region server
(e.getRegion() returns the parent region)public void preSplitBeforePONR(ObserverContext<RegionCoprocessorEnvironment> ctx, byte[] splitKey, java.util.List<Mutation> metaEntries) throws java.io.IOException
RegionObserver
ObserverContext.bypass()
rollback the splitpreSplitBeforePONR
in interface RegionObserver
preSplitBeforePONR
in class BaseRegionObserver
java.io.IOException
public void preSplitAfterPONR(ObserverContext<RegionCoprocessorEnvironment> ctx) throws java.io.IOException
RegionObserver
ObserverContext.bypass()
has no
effect in this hook.preSplitAfterPONR
in interface RegionObserver
preSplitAfterPONR
in class BaseRegionObserver
java.io.IOException
public void postSplit(ObserverContext<RegionCoprocessorEnvironment> c, Region l, Region r)
RegionObserver
postSplit
in interface RegionObserver
postSplit
in class BaseRegionObserver
c
- the environment provided by the region server
(e.getRegion() returns the parent region)l
- the left daughter regionr
- the right daughter regionpublic boolean wasSplit()
public void preCompactSelection(ObserverContext<RegionCoprocessorEnvironment> c, Store store, java.util.List<StoreFile> candidates)
RegionObserver
StoreFile
s to compact from the list of available
candidates. To alter the files used for compaction, you may mutate the passed in list of
candidates.preCompactSelection
in interface RegionObserver
preCompactSelection
in class BaseRegionObserver
c
- the environment provided by the region serverstore
- the store where compaction is being requestedcandidates
- the store files currently available for compactionpublic void postCompactSelection(ObserverContext<RegionCoprocessorEnvironment> c, Store store, <any> selected)
RegionObserver
StoreFile
s to compact have been selected from the available
candidates.postCompactSelection
in interface RegionObserver
postCompactSelection
in class BaseRegionObserver
c
- the environment provided by the region serverstore
- the store being compactedselected
- the store files selected to compactpublic InternalScanner preCompact(ObserverContext<RegionCoprocessorEnvironment> e, Store store, InternalScanner scanner, ScanType scanType)
RegionObserver
StoreFile
s selected for compaction into a new
StoreFile
. To override or modify the compaction process, implementing classes have two
options:
InternalScanner
with a custom implementation that is returned
from this method. The custom scanner can then inspect
KeyValue
s from the wrapped
scanner, applying its own policy to what gets written.ObserverContext.bypass()
and provide a
custom implementation for writing of new StoreFile
s. Note: any implementations
bypassing core compaction using this approach must write out new store files themselves or the
existing data will no longer be available after compaction.preCompact
in interface RegionObserver
preCompact
in class BaseRegionObserver
e
- the environment provided by the region serverstore
- the store being compactedscanner
- the scanner over existing data used in the store file rewritingscanType
- type of Scannull
unless the
implementation is writing new store files on its own.public InternalScanner preCompactScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c, Store store, java.util.List<? extends KeyValueScanner> scanners, ScanType scanType, long earliestPutTs, InternalScanner s) throws java.io.IOException
RegionObserver
StoreFile
s selected for compaction into a new
StoreFile
and prior to creating the scanner used to read the input files. To override
or modify the compaction process, implementing classes can return a new scanner to provide the
KeyValues to be stored into the new StoreFile
or null to perform the default
processing. Calling ObserverContext.bypass()
has no
effect in this hook.preCompactScannerOpen
in interface RegionObserver
preCompactScannerOpen
in class BaseRegionObserver
c
- the environment provided by the region serverstore
- the store being compactedscanners
- the list StoreFileScanner
s
to be read fromscanType
- the ScanType
indicating whether this is a major or minor compactionearliestPutTs
- timestamp of the earliest put that was found in any of the involved store
filess
- the base scanner, if not null
, from previous RegionObserver in the chainnull
if the default implementation is to
be used.java.io.IOException
- if an error occurred on the coprocessorpublic void postCompact(ObserverContext<RegionCoprocessorEnvironment> e, Store store, StoreFile resultFile)
RegionObserver
postCompact
in interface RegionObserver
postCompact
in class BaseRegionObserver
e
- the environment provided by the region serverstore
- the store being compactedresultFile
- the new store file written out during compactionpublic boolean wasCompacted()
public RegionScanner preScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c, Scan scan, RegionScanner s) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preScannerOpen
in interface RegionObserver
preScannerOpen
in class BaseRegionObserver
c
- the environment provided by the region serverscan
- the Scan specifications
- if not null, the base scannerjava.io.IOException
- if an error occurred on the coprocessorpublic KeyValueScanner preStoreScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c, Store store, Scan scan, java.util.NavigableSet<byte[]> targetCols, KeyValueScanner s) throws java.io.IOException
RegionObserver
See RegionObserver.preFlushScannerOpen(ObserverContext, Store, KeyValueScanner, InternalScanner)
and RegionObserver.preCompactScannerOpen(ObserverContext,
Store, List, ScanType, long, InternalScanner)
to override scanners created for flushes or compactions, resp.
Call CoprocessorEnvironment#complete to skip any subsequent chained
coprocessors.
Calling ObserverContext.bypass()
has no
effect in this hook.
preStoreScannerOpen
in interface RegionObserver
preStoreScannerOpen
in class BaseRegionObserver
c
- the environment provided by the region serverstore
- the store being scannedscan
- the Scan specificationtargetCols
- columns to be used in the scanners
- the base scanner, if not null
, from previous RegionObserver in the chainnull
to use the default implementationjava.io.IOException
- if an error occurred on the coprocessorpublic RegionScanner postScannerOpen(ObserverContext<RegionCoprocessorEnvironment> c, Scan scan, RegionScanner s) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postScannerOpen
in interface RegionObserver
postScannerOpen
in class BaseRegionObserver
c
- the environment provided by the region serverscan
- the Scan specifications
- if not null, the base scannerjava.io.IOException
- if an error occurred on the coprocessorpublic boolean preScannerNext(ObserverContext<RegionCoprocessorEnvironment> c, InternalScanner s, java.util.List<Result> results, int limit, boolean hasMore) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preScannerNext
in interface RegionObserver
preScannerNext
in class BaseRegionObserver
c
- the environment provided by the region servers
- the scannerresults
- The result to return to the client if default processing
is bypassed. Can be modified. Will not be returned if default processing
is not bypassed.limit
- the maximum number of results to returnhasMore
- the 'has more' indicationjava.io.IOException
- if an error occurred on the coprocessorpublic boolean postScannerNext(ObserverContext<RegionCoprocessorEnvironment> c, InternalScanner s, java.util.List<Result> results, int limit, boolean hasMore) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postScannerNext
in interface RegionObserver
postScannerNext
in class BaseRegionObserver
c
- the environment provided by the region servers
- the scannerresults
- the result to return to the client, can be modifiedlimit
- the maximum number of results to returnhasMore
- the 'has more' indicationjava.io.IOException
- if an error occurred on the coprocessorpublic void preScannerClose(ObserverContext<RegionCoprocessorEnvironment> c, InternalScanner s) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preScannerClose
in interface RegionObserver
preScannerClose
in class BaseRegionObserver
c
- the environment provided by the region servers
- the scannerjava.io.IOException
- if an error occurred on the coprocessorpublic void postScannerClose(ObserverContext<RegionCoprocessorEnvironment> c, InternalScanner s) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postScannerClose
in interface RegionObserver
postScannerClose
in class BaseRegionObserver
c
- the environment provided by the region servers
- the scannerjava.io.IOException
- if an error occurred on the coprocessorpublic void preGetOp(ObserverContext<RegionCoprocessorEnvironment> c, Get get, java.util.List<Cell> results) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preGetOp
in interface RegionObserver
preGetOp
in class BaseRegionObserver
c
- the environment provided by the region serverget
- the Get requestresults
- The result to return to the client if default processing
is bypassed. Can be modified. Will not be used if default processing
is not bypassed.java.io.IOException
- if an error occurred on the coprocessorpublic void postGetOp(ObserverContext<RegionCoprocessorEnvironment> c, Get get, java.util.List<Cell> results)
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postGetOp
in interface RegionObserver
postGetOp
in class BaseRegionObserver
c
- the environment provided by the region serverget
- the Get requestresults
- the result to return to the client, modify as necessarypublic void prePut(ObserverContext<RegionCoprocessorEnvironment> c, Put put, WALEdit edit, Durability durability) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
prePut
in interface RegionObserver
prePut
in class BaseRegionObserver
c
- the environment provided by the region serverput
- The Put objectedit
- The WALEdit object that will be written to the waldurability
- Persistence guarantee for this Putjava.io.IOException
- if an error occurred on the coprocessorpublic void postPut(ObserverContext<RegionCoprocessorEnvironment> c, Put put, WALEdit edit, Durability durability) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postPut
in interface RegionObserver
postPut
in class BaseRegionObserver
c
- the environment provided by the region serverput
- The Put objectedit
- The WALEdit object for the waldurability
- Persistence guarantee for this Putjava.io.IOException
- if an error occurred on the coprocessorpublic void preDelete(ObserverContext<RegionCoprocessorEnvironment> c, Delete delete, WALEdit edit, Durability durability) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preDelete
in interface RegionObserver
preDelete
in class BaseRegionObserver
c
- the environment provided by the region serverdelete
- The Delete objectedit
- The WALEdit object for the waldurability
- Persistence guarantee for this Deletejava.io.IOException
- if an error occurred on the coprocessorpublic void prePrepareTimeStampForDeleteVersion(ObserverContext<RegionCoprocessorEnvironment> e, Mutation delete, Cell cell, byte[] byteNow, Get get) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
prePrepareTimeStampForDeleteVersion
in interface RegionObserver
prePrepareTimeStampForDeleteVersion
in class BaseRegionObserver
e
- the environment provided by the region serverdelete
- - the parent mutation associated with this delete cellcell
- - The deleteColumn with latest version cellbyteNow
- - timestamp bytesget
- - the get formed using the current cell's row.
Note that the get does not specify the family and qualifierjava.io.IOException
public void postDelete(ObserverContext<RegionCoprocessorEnvironment> c, Delete delete, WALEdit edit, Durability durability) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postDelete
in interface RegionObserver
postDelete
in class BaseRegionObserver
c
- the environment provided by the region serverdelete
- The Delete objectedit
- The WALEdit object for the waldurability
- Persistence guarantee for this Deletejava.io.IOException
- if an error occurred on the coprocessorpublic void preBatchMutate(ObserverContext<RegionCoprocessorEnvironment> c, MiniBatchOperationInProgress<Mutation> miniBatchOp) throws java.io.IOException
RegionObserver
MiniBatchOperationInProgress.setOperationStatus(int, OperationStatus)
),
RegionObserver
can make Region to skip these Mutations.preBatchMutate
in interface RegionObserver
preBatchMutate
in class BaseRegionObserver
c
- the environment provided by the region serverminiBatchOp
- batch of Mutations getting applied to region.java.io.IOException
- if an error occurred on the coprocessorpublic void postBatchMutate(ObserverContext<RegionCoprocessorEnvironment> c, MiniBatchOperationInProgress<Mutation> miniBatchOp) throws java.io.IOException
RegionObserver
postBatchMutate
in interface RegionObserver
postBatchMutate
in class BaseRegionObserver
c
- the environment provided by the region serverminiBatchOp
- batch of Mutations applied to region.java.io.IOException
- if an error occurred on the coprocessorpublic void postStartRegionOperation(ObserverContext<RegionCoprocessorEnvironment> ctx, Region.Operation op) throws java.io.IOException
RegionObserver
Region.startRegionOperation()
.postStartRegionOperation
in interface RegionObserver
postStartRegionOperation
in class BaseRegionObserver
op
- The operation is about to be taken on the regionjava.io.IOException
public void postCloseRegionOperation(ObserverContext<RegionCoprocessorEnvironment> ctx, Region.Operation op) throws java.io.IOException
RegionObserver
Region.closeRegionOperation()
.postCloseRegionOperation
in interface RegionObserver
postCloseRegionOperation
in class BaseRegionObserver
java.io.IOException
public void postBatchMutateIndispensably(ObserverContext<RegionCoprocessorEnvironment> ctx, MiniBatchOperationInProgress<Mutation> miniBatchOp, boolean success) throws java.io.IOException
RegionObserver
postBatchMutateIndispensably
in interface RegionObserver
postBatchMutateIndispensably
in class BaseRegionObserver
success
- true if batch operation is successful otherwise false.java.io.IOException
public void preGetClosestRowBefore(ObserverContext<RegionCoprocessorEnvironment> c, byte[] row, byte[] family, Result result) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preGetClosestRowBefore
in interface RegionObserver
preGetClosestRowBefore
in class BaseRegionObserver
c
- the environment provided by the region serverrow
- the rowfamily
- the familyresult
- The result to return to the client if default processing
is bypassed. Can be modified. Will not be used if default processing
is not bypassed.java.io.IOException
- if an error occurred on the coprocessorpublic void postGetClosestRowBefore(ObserverContext<RegionCoprocessorEnvironment> c, byte[] row, byte[] family, Result result) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postGetClosestRowBefore
in interface RegionObserver
postGetClosestRowBefore
in class BaseRegionObserver
c
- the environment provided by the region serverrow
- the rowfamily
- the desired familyresult
- the result to return to the client, modify as necessaryjava.io.IOException
- if an error occurred on the coprocessorpublic Result preIncrement(ObserverContext<RegionCoprocessorEnvironment> c, Increment increment) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preIncrement
in interface RegionObserver
preIncrement
in class BaseRegionObserver
c
- the environment provided by the region serverincrement
- increment objectjava.io.IOException
- if an error occurred on the coprocessorpublic Result preIncrementAfterRowLock(ObserverContext<RegionCoprocessorEnvironment> e, Increment increment) throws java.io.IOException
RegionObserver
Note: Caution to be taken for not doing any long time operation in this hook. Row will be locked for longer time. Trying to acquire lock on another row, within this, can lead to potential deadlock.
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preIncrementAfterRowLock
in interface RegionObserver
preIncrementAfterRowLock
in class BaseRegionObserver
e
- the environment provided by the region serverincrement
- increment objectjava.io.IOException
- if an error occurred on the coprocessorpublic Result postIncrement(ObserverContext<RegionCoprocessorEnvironment> c, Increment increment, Result result) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postIncrement
in interface RegionObserver
postIncrement
in class BaseRegionObserver
c
- the environment provided by the region serverincrement
- increment objectresult
- the result returned by incrementjava.io.IOException
- if an error occurred on the coprocessorpublic boolean preCheckAndPut(ObserverContext<RegionCoprocessorEnvironment> e, byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Put put, boolean result) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preCheckAndPut
in interface RegionObserver
preCheckAndPut
in class BaseRegionObserver
e
- the environment provided by the region serverrow
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatorput
- data to put if check succeedsjava.io.IOException
- if an error occurred on the coprocessorpublic boolean preCheckAndPutAfterRowLock(ObserverContext<RegionCoprocessorEnvironment> e, byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Put put, boolean result) throws java.io.IOException
RegionObserver
Note: Caution to be taken for not doing any long time operation in this hook. Row will be locked for longer time. Trying to acquire lock on another row, within this, can lead to potential deadlock.
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preCheckAndPutAfterRowLock
in interface RegionObserver
preCheckAndPutAfterRowLock
in class BaseRegionObserver
e
- the environment provided by the region serverrow
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatorput
- data to put if check succeedsjava.io.IOException
- if an error occurred on the coprocessorpublic boolean postCheckAndPut(ObserverContext<RegionCoprocessorEnvironment> e, byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Put put, boolean result) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postCheckAndPut
in interface RegionObserver
postCheckAndPut
in class BaseRegionObserver
e
- the environment provided by the region serverrow
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatorput
- data to put if check succeedsresult
- from the checkAndPutjava.io.IOException
- if an error occurred on the coprocessorpublic boolean preCheckAndDelete(ObserverContext<RegionCoprocessorEnvironment> e, byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Delete delete, boolean result) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preCheckAndDelete
in interface RegionObserver
preCheckAndDelete
in class BaseRegionObserver
e
- the environment provided by the region serverrow
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatordelete
- delete to commit if check succeedsjava.io.IOException
- if an error occurred on the coprocessorpublic boolean preCheckAndDeleteAfterRowLock(ObserverContext<RegionCoprocessorEnvironment> e, byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Delete delete, boolean result) throws java.io.IOException
RegionObserver
Note: Caution to be taken for not doing any long time operation in this hook. Row will be locked for longer time. Trying to acquire lock on another row, within this, can lead to potential deadlock.
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preCheckAndDeleteAfterRowLock
in interface RegionObserver
preCheckAndDeleteAfterRowLock
in class BaseRegionObserver
e
- the environment provided by the region serverrow
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatordelete
- delete to commit if check succeedsjava.io.IOException
- if an error occurred on the coprocessorpublic boolean postCheckAndDelete(ObserverContext<RegionCoprocessorEnvironment> e, byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Delete delete, boolean result) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postCheckAndDelete
in interface RegionObserver
postCheckAndDelete
in class BaseRegionObserver
e
- the environment provided by the region serverrow
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatordelete
- delete to commit if check succeedsresult
- from the CheckAndDeletejava.io.IOException
- if an error occurred on the coprocessorpublic Result preAppendAfterRowLock(ObserverContext<RegionCoprocessorEnvironment> e, Append append) throws java.io.IOException
RegionObserver
Note: Caution to be taken for not doing any long time operation in this hook. Row will be locked for longer time. Trying to acquire lock on another row, within this, can lead to potential deadlock.
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preAppendAfterRowLock
in interface RegionObserver
preAppendAfterRowLock
in class BaseRegionObserver
e
- the environment provided by the region serverappend
- Append objectjava.io.IOException
- if an error occurred on the coprocessorpublic Result preAppend(ObserverContext<RegionCoprocessorEnvironment> e, Append append) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#bypass to skip default actions
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
preAppend
in interface RegionObserver
preAppend
in class BaseRegionObserver
e
- the environment provided by the region serverappend
- Append objectjava.io.IOException
- if an error occurred on the coprocessorpublic Result postAppend(ObserverContext<RegionCoprocessorEnvironment> e, Append append, Result result) throws java.io.IOException
RegionObserver
Call CoprocessorEnvironment#complete to skip any subsequent chained coprocessors
postAppend
in interface RegionObserver
postAppend
in class BaseRegionObserver
e
- the environment provided by the region serverappend
- Append objectresult
- the result returned by incrementjava.io.IOException
- if an error occurred on the coprocessorpublic void preBulkLoadHFile(ObserverContext<RegionCoprocessorEnvironment> ctx, java.util.List<Pair<byte[],java.lang.String>> familyPaths) throws java.io.IOException
RegionObserver
preBulkLoadHFile
in interface RegionObserver
preBulkLoadHFile
in class BaseRegionObserver
familyPaths
- pairs of { CF, HFile path } submitted for bulk load. Adding
or removing from this list will add or remove HFiles to be bulk loaded.java.io.IOException
public boolean postBulkLoadHFile(ObserverContext<RegionCoprocessorEnvironment> ctx, java.util.List<Pair<byte[],java.lang.String>> familyPaths, java.util.Map<byte[],java.util.List<Path>> map, boolean hasLoaded) throws java.io.IOException
RegionObserver
postBulkLoadHFile
in interface RegionObserver
postBulkLoadHFile
in class BaseRegionObserver
familyPaths
- pairs of { CF, HFile path } submitted for bulk loadmap
- Map of CF to List of file paths for the final loaded fileshasLoaded
- whether the bulkLoad was successfuljava.io.IOException
public void preWALRestore(ObserverContext<? extends RegionCoprocessorEnvironment> env, HRegionInfo info, WALKey logKey, WALEdit logEdit) throws java.io.IOException
BaseRegionObserver
preWALRestore
in interface RegionObserver
preWALRestore
in class BaseRegionObserver
java.io.IOException
public void preWALRestore(ObserverContext<RegionCoprocessorEnvironment> env, HRegionInfo info, HLogKey logKey, WALEdit logEdit) throws java.io.IOException
RegionObserver
WALEdit
replayed for this region.
This method is left in place to maintain binary compatibility with older
RegionObserver
s. If an implementation directly overrides
RegionObserver.preWALRestore(ObserverContext, HRegionInfo, WALKey, WALEdit)
then this version
won't be called at all, barring problems with the Security Manager. To work correctly
in the presence of a strict Security Manager, or in the case of an implementation that
relies on a parent class to implement preWALRestore, you should implement this method
as a call to the non-deprecated version.
Users of this method will see all edits that can be treated as HLogKey. If there are
edits that can't be treated as HLogKey they won't be offered to coprocessors that rely
on this method. If a coprocessor gets skipped because of this mechanism, a log message
at ERROR will be generated per coprocessor on the logger for CoprocessorHost
once per
classloader.preWALRestore
in interface RegionObserver
preWALRestore
in class BaseRegionObserver
java.io.IOException
public void postWALRestore(ObserverContext<? extends RegionCoprocessorEnvironment> env, HRegionInfo info, WALKey logKey, WALEdit logEdit) throws java.io.IOException
BaseRegionObserver
postWALRestore
in interface RegionObserver
postWALRestore
in class BaseRegionObserver
java.io.IOException
public void postWALRestore(ObserverContext<RegionCoprocessorEnvironment> env, HRegionInfo info, HLogKey logKey, WALEdit logEdit) throws java.io.IOException
RegionObserver
WALEdit
replayed for this region.
This method is left in place to maintain binary compatibility with older
RegionObserver
s. If an implementation directly overrides
RegionObserver.postWALRestore(ObserverContext, HRegionInfo, WALKey, WALEdit)
then this version
won't be called at all, barring problems with the Security Manager. To work correctly
in the presence of a strict Security Manager, or in the case of an implementation that
relies on a parent class to implement preWALRestore, you should implement this method
as a call to the non-deprecated version.
Users of this method will see all edits that can be treated as HLogKey. If there are
edits that can't be treated as HLogKey they won't be offered to coprocessors that rely
on this method. If a coprocessor gets skipped because of this mechanism, a log message
at ERROR will be generated per coprocessor on the logger for CoprocessorHost
once per
classloader.postWALRestore
in interface RegionObserver
postWALRestore
in class BaseRegionObserver
java.io.IOException
public StoreFile.Reader preStoreFileReaderOpen(ObserverContext<RegionCoprocessorEnvironment> ctx, FileSystem fs, Path p, FSDataInputStreamWrapper in, long size, CacheConfig cacheConf, Reference r, StoreFile.Reader reader) throws java.io.IOException
RegionObserver
ObserverContext.bypass()
has no
effect in this hook.preStoreFileReaderOpen
in interface RegionObserver
preStoreFileReaderOpen
in class BaseRegionObserver
ctx
- the environment provided by the region serverfs
- fileystem to read fromp
- path to the filein
- FSDataInputStreamWrapper
size
- Full size of the filer
- original reference file. This will be not null only when reading a split file.reader
- the base reader, if not null
, from previous RegionObserver in the chainjava.io.IOException
public StoreFile.Reader postStoreFileReaderOpen(ObserverContext<RegionCoprocessorEnvironment> ctx, FileSystem fs, Path p, FSDataInputStreamWrapper in, long size, CacheConfig cacheConf, Reference r, StoreFile.Reader reader) throws java.io.IOException
RegionObserver
postStoreFileReaderOpen
in interface RegionObserver
postStoreFileReaderOpen
in class BaseRegionObserver
ctx
- the environment provided by the region serverfs
- fileystem to read fromp
- path to the filein
- FSDataInputStreamWrapper
size
- Full size of the filer
- original reference file. This will be not null only when reading a split file.reader
- the base reader instancejava.io.IOException
public boolean hadPreGet()
public boolean hadPostGet()
public boolean hadPrePut()
public boolean hadPostPut()
public boolean hadPreBatchMutate()
public boolean hadPostBatchMutate()
public boolean hadPostBatchMutateIndispensably()
public boolean hadPostStartRegionOperation()
public boolean hadPostCloseRegionOperation()
public boolean hadDelete()
public int getCtPostStartRegionOperation()
public int getCtPostCloseRegionOperation()
public boolean hadPreCheckAndPut()
public boolean hadPreCheckAndPutAfterRowLock()
public boolean hadPostCheckAndPut()
public boolean hadPreCheckAndDelete()
public boolean hadPreCheckAndDeleteAfterRowLock()
public boolean hadPostCheckAndDelete()
public boolean hadPreIncrement()
public boolean hadPreIncrementAfterRowLock()
public boolean hadPostIncrement()
public boolean hadPreAppend()
public boolean hadPreAppendAfterRowLock()
public boolean hadPostAppend()
public boolean hadPrePreparedDeleteTS()
public boolean hadPreWALRestore()
public boolean hadPostWALRestore()
public boolean wasScannerNextCalled()
public boolean wasScannerCloseCalled()
public boolean wasScannerOpenCalled()
public boolean hadDeleted()
public boolean hadPostBulkLoadHFile()
public boolean hadPreBulkLoadHFile()
public int getCtBeforeDelete()
public int getCtPreOpen()
public int getCtPostOpen()
public int getCtPreClose()
public int getCtPostClose()
public int getCtPreFlush()
public int getCtPreFlushScannerOpen()
public int getCtPostFlush()
public int getCtPreSplit()
public int getCtPreSplitBeforePONR()
public int getCtPreSplitAfterPONR()
public int getCtPostSplit()
public int getCtPreCompactSelect()
public int getCtPostCompactSelect()
public int getCtPreCompactScanner()
public int getCtPreCompact()
public int getCtPostCompact()
public int getCtPreGet()
public int getCtPostGet()
public int getCtPrePut()
public int getCtPostPut()
public int getCtPreDeleted()
public int getCtPostDeleted()
public int getCtPreGetClosestRowBefore()
public int getCtPostGetClosestRowBefore()
public int getCtPreIncrement()
public int getCtPostIncrement()
public int getCtPreWALRestore()
public int getCtPostWALRestore()
public int getCtPreWALRestoreDeprecated()
public int getCtPostWALRestoreDeprecated()
public boolean wasStoreFileReaderOpenCalled()