@InterfaceAudience.LimitedPrivate(value="Coprocesssor") @InterfaceStability.Evolving public class RegionCoprocessorHost extends CoprocessorHost<org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.RegionEnvironment>
Region
.CoprocessorHost.Environment
ABORT_ON_ERROR_KEY, abortable, conf, coprocessors, COPROCESSORS_ENABLED_CONF_KEY, DEFAULT_ABORT_ON_ERROR, DEFAULT_COPROCESSORS_ENABLED, DEFAULT_USER_COPROCESSORS_ENABLED, loadSequence, MASTER_COPROCESSOR_CONF_KEY, pathPrefix, REGION_COPROCESSOR_CONF_KEY, REGIONSERVER_COPROCESSOR_CONF_KEY, USER_COPROCESSORS_ENABLED_CONF_KEY, USER_REGION_COPROCESSOR_CONF_KEY, WAL_COPROCESSOR_CONF_KEY
Constructor and Description |
---|
RegionCoprocessorHost(Region region,
RegionServerServices rsServices,
Configuration conf)
Constructor
|
Modifier and Type | Method and Description |
---|---|
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.RegionEnvironment |
createEnvironment(java.lang.Class<?> implClass,
Coprocessor instance,
int priority,
int seq,
Configuration conf)
Called when a new Coprocessor class is loaded
|
void |
postAppend(Append append,
Result result) |
void |
postBatchMutate(MiniBatchOperationInProgress<Mutation> miniBatchOp) |
void |
postBatchMutateIndispensably(MiniBatchOperationInProgress<Mutation> miniBatchOp,
boolean success) |
boolean |
postBulkLoadHFile(java.util.List<Pair<byte[],java.lang.String>> familyPaths,
java.util.Map<byte[],java.util.List<Path>> map,
boolean hasLoaded) |
boolean |
postCheckAndDelete(byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Delete delete,
boolean result) |
boolean |
postCheckAndPut(byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Put put,
boolean result) |
void |
postClose(boolean abortRequested)
Invoked after a region is closed
|
void |
postCloseRegionOperation(Region.Operation op) |
void |
postCommitStoreFile(byte[] family,
Path srcPath,
Path dstPath) |
void |
postCompact(Store store,
StoreFile resultFile,
CompactionRequest request)
Called after the store compaction has completed.
|
void |
postCompactSelection(Store store,
<any> selected,
CompactionRequest request)
Called after the
StoreFile s to be compacted have been selected from the available
candidates. |
void |
postCompleteSplit()
Invoked after a split is completed irrespective of a failure or success.
|
void |
postDelete(Delete delete,
WALEdit edit,
Durability durability) |
void |
postEndpointInvocation(Service service,
java.lang.String methodName,
Message request,
Message.Builder responseBuilder) |
boolean |
postExists(Get get,
boolean exists) |
void |
postFlush()
Invoked after a memstore flush
|
void |
postFlush(Store store,
StoreFile storeFile)
Invoked after a memstore flush
|
void |
postGet(Get get,
java.util.List<Cell> results) |
void |
postGetClosestRowBefore(byte[] row,
byte[] family,
Result result) |
Result |
postIncrement(Increment increment,
Result result) |
DeleteTracker |
postInstantiateDeleteTracker(DeleteTracker tracker) |
void |
postLogReplay()
Invoked after log replay on region
|
Cell |
postMutationBeforeWAL(RegionObserver.MutationType opType,
Mutation mutation,
Cell oldCell,
Cell newCell) |
void |
postOpen()
Invoked after a region open
|
void |
postPut(Put put,
WALEdit edit,
Durability durability) |
void |
postRollBackSplit()
Invoked just after the rollback of a failed split is done
|
void |
postScannerClose(InternalScanner s) |
boolean |
postScannerFilterRow(InternalScanner s,
byte[] currentRow,
int offset,
short length)
This will be called by the scan flow when the current scanned row is being filtered out by the
filter.
|
boolean |
postScannerNext(InternalScanner s,
java.util.List<Result> results,
int limit,
boolean hasMore) |
RegionScanner |
postScannerOpen(Scan scan,
RegionScanner s) |
void |
postSplit(Region l,
Region r)
Invoked just after a split
|
void |
postStartRegionOperation(Region.Operation op) |
StoreFile.Reader |
postStoreFileReaderOpen(FileSystem fs,
Path p,
FSDataInputStreamWrapper in,
long size,
CacheConfig cacheConf,
Reference r,
StoreFile.Reader reader) |
void |
postWALRestore(HRegionInfo info,
HLogKey logKey,
WALEdit logEdit)
Deprecated.
|
void |
postWALRestore(HRegionInfo info,
WALKey logKey,
WALEdit logEdit) |
Result |
preAppend(Append append) |
Result |
preAppendAfterRowLock(Append append) |
boolean |
preBatchMutate(MiniBatchOperationInProgress<Mutation> miniBatchOp) |
boolean |
preBulkLoadHFile(java.util.List<Pair<byte[],java.lang.String>> familyPaths) |
java.lang.Boolean |
preCheckAndDelete(byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Delete delete) |
java.lang.Boolean |
preCheckAndDeleteAfterRowLock(byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Delete delete) |
java.lang.Boolean |
preCheckAndPut(byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Put put) |
java.lang.Boolean |
preCheckAndPutAfterRowLock(byte[] row,
byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator,
Put put) |
void |
preClose(boolean abortRequested)
Invoked before a region is closed
|
boolean |
preCommitStoreFile(byte[] family,
java.util.List<Pair<Path,Path>> pairs) |
InternalScanner |
preCompact(Store store,
InternalScanner scanner,
ScanType scanType,
CompactionRequest request)
Called prior to rewriting the store files selected for compaction
|
InternalScanner |
preCompactScannerOpen(Store store,
java.util.List<StoreFileScanner> scanners,
ScanType scanType,
long earliestPutTs,
CompactionRequest request)
|
boolean |
preCompactSelection(Store store,
java.util.List<StoreFile> candidates,
CompactionRequest request)
Called prior to selecting the
StoreFile s for compaction from the list of currently
available candidates. |
boolean |
preDelete(Delete delete,
WALEdit edit,
Durability durability) |
Message |
preEndpointInvocation(Service service,
java.lang.String methodName,
Message request) |
java.lang.Boolean |
preExists(Get get) |
void |
preFlush()
Invoked before a memstore flush
|
InternalScanner |
preFlush(Store store,
InternalScanner scanner)
Invoked before a memstore flush
|
InternalScanner |
preFlushScannerOpen(Store store,
KeyValueScanner memstoreScanner)
|
boolean |
preGet(Get get,
java.util.List<Cell> results) |
boolean |
preGetClosestRowBefore(byte[] row,
byte[] family,
Result result) |
Result |
preIncrement(Increment increment) |
Result |
preIncrementAfterRowLock(Increment increment) |
void |
preOpen()
Invoked before a region open.
|
boolean |
prePrepareTimeStampForDeleteVersion(Mutation mutation,
Cell kv,
byte[] byteNow,
Get get) |
boolean |
prePut(Put put,
WALEdit edit,
Durability durability) |
void |
preRollBackSplit()
Invoked just before the rollback of a failed split is started
|
boolean |
preScannerClose(InternalScanner s) |
java.lang.Boolean |
preScannerNext(InternalScanner s,
java.util.List<Result> results,
int limit) |
RegionScanner |
preScannerOpen(Scan scan) |
void |
preSplit()
Invoked just before a split
|
void |
preSplit(byte[] splitRow)
Invoked just before a split
|
void |
preSplitAfterPONR() |
boolean |
preSplitBeforePONR(byte[] splitKey,
java.util.List<Mutation> metaEntries) |
StoreFile.Reader |
preStoreFileReaderOpen(FileSystem fs,
Path p,
FSDataInputStreamWrapper in,
long size,
CacheConfig cacheConf,
Reference r) |
KeyValueScanner |
preStoreScannerOpen(Store store,
Scan scan,
java.util.NavigableSet<byte[]> targetCols)
|
boolean |
preWALRestore(HRegionInfo info,
HLogKey logKey,
WALEdit logEdit)
Deprecated.
|
boolean |
preWALRestore(HRegionInfo info,
WALKey logKey,
WALEdit logEdit) |
static void |
testTableCoprocessorAttrs(Configuration conf,
HTableDescriptor htd)
Sanity check the table coprocessor attributes of the supplied schema.
|
abortServer, abortServer, findCoprocessor, findCoprocessorEnvironment, findCoprocessors, getCoprocessors, getLoadedCoprocessors, handleCoprocessorThrowable, legacyWarning, load, load, loadInstance, loadSystemCoprocessors, shutdown, useLegacyMethod
public RegionCoprocessorHost(Region region, RegionServerServices rsServices, Configuration conf)
region
- the regionrsServices
- interface to available region server functionalityconf
- the configurationpublic static void testTableCoprocessorAttrs(Configuration conf, HTableDescriptor htd) throws java.io.IOException
conf
- htd
- java.io.IOException
public org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.RegionEnvironment createEnvironment(java.lang.Class<?> implClass, Coprocessor instance, int priority, int seq, Configuration conf)
CoprocessorHost
createEnvironment
in class CoprocessorHost<org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.RegionEnvironment>
public void preOpen() throws java.io.IOException
java.io.IOException
- Signals that an I/O exception has occurred.public void postOpen()
public void postLogReplay()
public void preClose(boolean abortRequested) throws java.io.IOException
abortRequested
- true if the server is abortingjava.io.IOException
public void postClose(boolean abortRequested)
abortRequested
- true if the server is abortingpublic InternalScanner preCompactScannerOpen(Store store, java.util.List<StoreFileScanner> scanners, ScanType scanType, long earliestPutTs, CompactionRequest request) throws java.io.IOException
java.io.IOException
public boolean preCompactSelection(Store store, java.util.List<StoreFile> candidates, CompactionRequest request) throws java.io.IOException
StoreFile
s for compaction from the list of currently
available candidates.store
- The store where compaction is being requestedcandidates
- The currently available store filesrequest
- custom compaction requesttrue
, skip the normal selection process and use the current listjava.io.IOException
public void postCompactSelection(Store store, <any> selected, CompactionRequest request)
StoreFile
s to be compacted have been selected from the available
candidates.store
- The store where compaction is being requestedselected
- The store files selected to compactrequest
- custom compactionpublic InternalScanner preCompact(Store store, InternalScanner scanner, ScanType scanType, CompactionRequest request) throws java.io.IOException
store
- the store being compactedscanner
- the scanner used to read store data during compactionscanType
- type of Scanrequest
- the compaction that will be executedjava.io.IOException
public void postCompact(Store store, StoreFile resultFile, CompactionRequest request) throws java.io.IOException
store
- the store being compactedresultFile
- the new store file written during compactionrequest
- the compaction that is being executedjava.io.IOException
public InternalScanner preFlush(Store store, InternalScanner scanner) throws java.io.IOException
java.io.IOException
public void preFlush() throws java.io.IOException
java.io.IOException
public InternalScanner preFlushScannerOpen(Store store, KeyValueScanner memstoreScanner) throws java.io.IOException
java.io.IOException
public void postFlush() throws java.io.IOException
java.io.IOException
public void postFlush(Store store, StoreFile storeFile) throws java.io.IOException
java.io.IOException
public void preSplit() throws java.io.IOException
java.io.IOException
public void preSplit(byte[] splitRow) throws java.io.IOException
java.io.IOException
public void postSplit(Region l, Region r) throws java.io.IOException
l
- the new left-hand daughter regionr
- the new right-hand daughter regionjava.io.IOException
public boolean preSplitBeforePONR(byte[] splitKey, java.util.List<Mutation> metaEntries) throws java.io.IOException
java.io.IOException
public void preSplitAfterPONR() throws java.io.IOException
java.io.IOException
public void preRollBackSplit() throws java.io.IOException
java.io.IOException
public void postRollBackSplit() throws java.io.IOException
java.io.IOException
public void postCompleteSplit() throws java.io.IOException
java.io.IOException
public boolean preGetClosestRowBefore(byte[] row, byte[] family, Result result) throws java.io.IOException
row
- the row keyfamily
- the familyresult
- the result set from the regionjava.io.IOException
- Exceptionpublic void postGetClosestRowBefore(byte[] row, byte[] family, Result result) throws java.io.IOException
row
- the row keyfamily
- the familyresult
- the result set from the regionjava.io.IOException
- Exceptionpublic boolean preGet(Get get, java.util.List<Cell> results) throws java.io.IOException
get
- the Get requestjava.io.IOException
- Exceptionpublic void postGet(Get get, java.util.List<Cell> results) throws java.io.IOException
get
- the Get requestresults
- the result settjava.io.IOException
- Exceptionpublic java.lang.Boolean preExists(Get get) throws java.io.IOException
get
- the Get requestjava.io.IOException
- Exceptionpublic boolean postExists(Get get, boolean exists) throws java.io.IOException
get
- the Get requestexists
- the result returned by the region serverjava.io.IOException
- Exceptionpublic boolean prePut(Put put, WALEdit edit, Durability durability) throws java.io.IOException
put
- The Put objectedit
- The WALEdit object.durability
- The durability usedjava.io.IOException
- Exceptionpublic boolean prePrepareTimeStampForDeleteVersion(Mutation mutation, Cell kv, byte[] byteNow, Get get) throws java.io.IOException
mutation
- - the current mutationkv
- - the current cellbyteNow
- - current timestamp in bytesget
- - the get that could be used
Note that the get only does not specify the family and qualifier that should be usedjava.io.IOException
- Exceptionpublic void postPut(Put put, WALEdit edit, Durability durability) throws java.io.IOException
put
- The Put objectedit
- The WALEdit object.durability
- The durability usedjava.io.IOException
- Exceptionpublic boolean preDelete(Delete delete, WALEdit edit, Durability durability) throws java.io.IOException
delete
- The Delete objectedit
- The WALEdit object.durability
- The durability usedjava.io.IOException
- Exceptionpublic void postDelete(Delete delete, WALEdit edit, Durability durability) throws java.io.IOException
delete
- The Delete objectedit
- The WALEdit object.durability
- The durability usedjava.io.IOException
- Exceptionpublic boolean preBatchMutate(MiniBatchOperationInProgress<Mutation> miniBatchOp) throws java.io.IOException
miniBatchOp
- java.io.IOException
public void postBatchMutate(MiniBatchOperationInProgress<Mutation> miniBatchOp) throws java.io.IOException
miniBatchOp
- java.io.IOException
public void postBatchMutateIndispensably(MiniBatchOperationInProgress<Mutation> miniBatchOp, boolean success) throws java.io.IOException
java.io.IOException
public java.lang.Boolean preCheckAndPut(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Put put) throws java.io.IOException
row
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatorput
- data to put if check succeedsjava.io.IOException
- epublic java.lang.Boolean preCheckAndPutAfterRowLock(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Put put) throws java.io.IOException
row
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatorput
- data to put if check succeedsjava.io.IOException
- epublic boolean postCheckAndPut(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Put put, boolean result) throws java.io.IOException
row
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatorput
- data to put if check succeedsjava.io.IOException
- epublic java.lang.Boolean preCheckAndDelete(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Delete delete) throws java.io.IOException
row
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatordelete
- delete to commit if check succeedsjava.io.IOException
- epublic java.lang.Boolean preCheckAndDeleteAfterRowLock(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Delete delete) throws java.io.IOException
row
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatordelete
- delete to commit if check succeedsjava.io.IOException
- epublic boolean postCheckAndDelete(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, ByteArrayComparable comparator, Delete delete, boolean result) throws java.io.IOException
row
- row to checkfamily
- column familyqualifier
- column qualifiercompareOp
- the comparison operationcomparator
- the comparatordelete
- delete to commit if check succeedsjava.io.IOException
- epublic Result preAppend(Append append) throws java.io.IOException
append
- append objectjava.io.IOException
- if an error occurred on the coprocessorpublic Result preAppendAfterRowLock(Append append) throws java.io.IOException
append
- append objectjava.io.IOException
- if an error occurred on the coprocessorpublic Result preIncrement(Increment increment) throws java.io.IOException
increment
- increment objectjava.io.IOException
- if an error occurred on the coprocessorpublic Result preIncrementAfterRowLock(Increment increment) throws java.io.IOException
increment
- increment objectjava.io.IOException
- if an error occurred on the coprocessorpublic void postAppend(Append append, Result result) throws java.io.IOException
append
- Append objectresult
- the result returned by the appendjava.io.IOException
- if an error occurred on the coprocessorpublic Result postIncrement(Increment increment, Result result) throws java.io.IOException
increment
- increment objectresult
- the result returned by postIncrementjava.io.IOException
- if an error occurred on the coprocessorpublic RegionScanner preScannerOpen(Scan scan) throws java.io.IOException
scan
- the Scan specificationjava.io.IOException
- Exceptionpublic KeyValueScanner preStoreScannerOpen(Store store, Scan scan, java.util.NavigableSet<byte[]> targetCols) throws java.io.IOException
java.io.IOException
public RegionScanner postScannerOpen(Scan scan, RegionScanner s) throws java.io.IOException
scan
- the Scan specifications
- the scannerjava.io.IOException
- Exceptionpublic java.lang.Boolean preScannerNext(InternalScanner s, java.util.List<Result> results, int limit) throws java.io.IOException
s
- the scannerresults
- the result set returned by the region serverlimit
- the maximum number of results to returnjava.io.IOException
- Exceptionpublic boolean postScannerNext(InternalScanner s, java.util.List<Result> results, int limit, boolean hasMore) throws java.io.IOException
s
- the scannerresults
- the result set returned by the region serverlimit
- the maximum number of results to returnhasMore
- java.io.IOException
- Exceptionpublic boolean postScannerFilterRow(InternalScanner s, byte[] currentRow, int offset, short length) throws java.io.IOException
s
- the scannercurrentRow
- The current rowkey which got filtered outoffset
- offset to rowkeylength
- length of rowkeyjava.io.IOException
public boolean preScannerClose(InternalScanner s) throws java.io.IOException
s
- the scannerjava.io.IOException
- Exceptionpublic void postScannerClose(InternalScanner s) throws java.io.IOException
java.io.IOException
- Exceptionpublic boolean preWALRestore(HRegionInfo info, WALKey logKey, WALEdit logEdit) throws java.io.IOException
info
- logKey
- logEdit
- java.io.IOException
@Deprecated public boolean preWALRestore(HRegionInfo info, HLogKey logKey, WALEdit logEdit) throws java.io.IOException
preWALRestore(HRegionInfo, WALKey, WALEdit)
java.io.IOException
public void postWALRestore(HRegionInfo info, WALKey logKey, WALEdit logEdit) throws java.io.IOException
info
- logKey
- logEdit
- java.io.IOException
@Deprecated public void postWALRestore(HRegionInfo info, HLogKey logKey, WALEdit logEdit) throws java.io.IOException
postWALRestore(HRegionInfo, WALKey, WALEdit)
java.io.IOException
public boolean preBulkLoadHFile(java.util.List<Pair<byte[],java.lang.String>> familyPaths) throws java.io.IOException
familyPaths
- pairs of { CF, file path } submitted for bulk loadjava.io.IOException
public boolean preCommitStoreFile(byte[] family, java.util.List<Pair<Path,Path>> pairs) throws java.io.IOException
java.io.IOException
public void postCommitStoreFile(byte[] family, Path srcPath, Path dstPath) throws java.io.IOException
java.io.IOException
public boolean postBulkLoadHFile(java.util.List<Pair<byte[],java.lang.String>> familyPaths, java.util.Map<byte[],java.util.List<Path>> map, boolean hasLoaded) throws java.io.IOException
familyPaths
- pairs of { CF, file path } submitted for bulk loadmap
- Map of CF to List of file paths for the final loaded fileshasLoaded
- whether load was successful or notjava.io.IOException
public void postStartRegionOperation(Region.Operation op) throws java.io.IOException
java.io.IOException
public void postCloseRegionOperation(Region.Operation op) throws java.io.IOException
java.io.IOException
public StoreFile.Reader preStoreFileReaderOpen(FileSystem fs, Path p, FSDataInputStreamWrapper in, long size, CacheConfig cacheConf, Reference r) throws java.io.IOException
fs
- fileystem to read fromp
- path to the filein
- FSDataInputStreamWrapper
size
- Full size of the filecacheConf
- r
- original reference file. This will be not null only when reading a split file.java.io.IOException
public StoreFile.Reader postStoreFileReaderOpen(FileSystem fs, Path p, FSDataInputStreamWrapper in, long size, CacheConfig cacheConf, Reference r, StoreFile.Reader reader) throws java.io.IOException
fs
- fileystem to read fromp
- path to the filein
- FSDataInputStreamWrapper
size
- Full size of the filecacheConf
- r
- original reference file. This will be not null only when reading a split file.reader
- the base reader instancejava.io.IOException
public Cell postMutationBeforeWAL(RegionObserver.MutationType opType, Mutation mutation, Cell oldCell, Cell newCell) throws java.io.IOException
java.io.IOException
public Message preEndpointInvocation(Service service, java.lang.String methodName, Message request) throws java.io.IOException
java.io.IOException
public void postEndpointInvocation(Service service, java.lang.String methodName, Message request, Message.Builder responseBuilder) throws java.io.IOException
java.io.IOException
public DeleteTracker postInstantiateDeleteTracker(DeleteTracker tracker) throws java.io.IOException
java.io.IOException