Interface WALObserver
It's provided to have a way for coprocessors to observe, rewrite, or skip WALEdits as they are
being written to the WAL. Note that implementers of WALObserver will not see WALEdits that report
themselves as empty via
WALEdit.isEmpty().
RegionObserver provides hooks for adding logic for
WALEdits in the region context during reconstruction. Defines coprocessor hooks for interacting
with operations on the WAL. Since most implementations will
be interested in only a subset of hooks, this class uses 'default' functions to avoid having to
add unnecessary overrides. When the functions are non-empty, it's simply to satisfy the compiler
by returning value of expected (non-void) type. It is done in a way that these default
definitions act as no-op. So our suggestion to implementation would be to not call these
'default' methods from overrides. Exception Handling
For all functions, exception handling is done as follows:- Exceptions of type
IOExceptionare reported back to client. - For any other kind of exception:
- If the configuration
CoprocessorHost.ABORT_ON_ERROR_KEYis set to true, then the server aborts. - Otherwise, coprocessor is removed from the server and
DoNotRetryIOExceptionis returned to the client.
- If the configuration
-
Method Summary
Modifier and TypeMethodDescriptiondefault voidpostWALRoll(ObserverContext<? extends WALCoprocessorEnvironment> ctx, org.apache.hadoop.fs.Path oldPath, org.apache.hadoop.fs.Path newPath) Called after rolling the current WALdefault voidpostWALWrite(ObserverContext<? extends WALCoprocessorEnvironment> ctx, RegionInfo info, WALKey logKey, WALEdit logEdit) Deprecated.Since hbase-2.0.0.default voidpreWALRoll(ObserverContext<? extends WALCoprocessorEnvironment> ctx, org.apache.hadoop.fs.Path oldPath, org.apache.hadoop.fs.Path newPath) Called before rolling the current WALdefault voidpreWALWrite(ObserverContext<? extends WALCoprocessorEnvironment> ctx, RegionInfo info, WALKey logKey, WALEdit logEdit) Deprecated.Since hbase-2.0.0.
-
Method Details
-
preWALWrite
@Deprecated default void preWALWrite(ObserverContext<? extends WALCoprocessorEnvironment> ctx, RegionInfo info, WALKey logKey, WALEdit logEdit) throws IOException Deprecated.Since hbase-2.0.0. To be replaced with an alternative that does not expose InterfaceAudience classes such as WALKey and WALEdit. Will be removed in hbase-3.0.0.Called before aWALEditis writen to WAL. Do not amend the WALKey. It is InterfaceAudience.Private. Changing the WALKey will cause damage.- Throws:
IOException
-
postWALWrite
@Deprecated default void postWALWrite(ObserverContext<? extends WALCoprocessorEnvironment> ctx, RegionInfo info, WALKey logKey, WALEdit logEdit) throws IOException Deprecated.Since hbase-2.0.0. To be replaced with an alternative that does not expose InterfaceAudience classes such as WALKey and WALEdit. Will be removed in hbase-3.0.0.Called after aWALEditis writen to WAL. Do not amend the WALKey. It is InterfaceAudience.Private. Changing the WALKey will cause damage.- Throws:
IOException
-
preWALRoll
default void preWALRoll(ObserverContext<? extends WALCoprocessorEnvironment> ctx, org.apache.hadoop.fs.Path oldPath, org.apache.hadoop.fs.Path newPath) throws IOException Called before rolling the current WAL- Parameters:
oldPath- the path of the current wal that we are replacingnewPath- the path of the wal we are going to create- Throws:
IOException
-
postWALRoll
default void postWALRoll(ObserverContext<? extends WALCoprocessorEnvironment> ctx, org.apache.hadoop.fs.Path oldPath, org.apache.hadoop.fs.Path newPath) throws IOException Called after rolling the current WAL- Parameters:
oldPath- the path of the wal that we replacednewPath- the path of the wal we have created and now is the current- Throws:
IOException
-