public abstract static class WALSplitter.OutputSink
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.util.Set<byte[]> |
blacklistedRegions |
protected boolean |
closeAndCleanCompleted |
protected WALSplitter.PipelineController |
controller |
protected WALSplitter.EntryBuffers |
entryBuffers |
protected int |
numThreads |
protected java.util.Map<byte[],java.lang.Long> |
regionMaximumEditLogSeqNum |
protected CancelableProgressable |
reporter |
protected java.util.concurrent.atomic.AtomicLong |
skippedEdits |
protected java.util.List<Path> |
splits |
protected java.util.Map<byte[],WALSplitter.SinkWriter> |
writers |
protected boolean |
writersClosed |
protected java.util.List<WALSplitter.WriterThread> |
writerThreads |
Constructor and Description |
---|
OutputSink(WALSplitter.PipelineController controller,
WALSplitter.EntryBuffers entryBuffers,
int numWriters) |
Modifier and Type | Method and Description |
---|---|
abstract void |
append(WALSplitter.RegionEntryBuffer buffer) |
protected boolean |
finishWriting(boolean interrupt)
Wait for writer threads to dump all info to the sink
|
abstract java.util.List<Path> |
finishWritingAndClose() |
boolean |
flush()
WriterThread call this function to help flush internal remaining edits in buffer before close
|
abstract int |
getNumberOfRecoveredRegions() |
abstract java.util.Map<byte[],java.lang.Long> |
getOutputCounts() |
void |
startWriterThreads()
Start the threads that will pump data from the entryBuffers to the output files.
|
protected WALSplitter.PipelineController controller
protected WALSplitter.EntryBuffers entryBuffers
protected java.util.Map<byte[],WALSplitter.SinkWriter> writers
protected final java.util.Map<byte[],java.lang.Long> regionMaximumEditLogSeqNum
protected final java.util.List<WALSplitter.WriterThread> writerThreads
protected final java.util.Set<byte[]> blacklistedRegions
protected boolean closeAndCleanCompleted
protected boolean writersClosed
protected final int numThreads
protected CancelableProgressable reporter
protected java.util.concurrent.atomic.AtomicLong skippedEdits
protected java.util.List<Path> splits
public OutputSink(WALSplitter.PipelineController controller, WALSplitter.EntryBuffers entryBuffers, int numWriters)
public void startWriterThreads()
protected boolean finishWriting(boolean interrupt) throws java.io.IOException
java.io.IOException
public abstract java.util.List<Path> finishWritingAndClose() throws java.io.IOException
java.io.IOException
public abstract java.util.Map<byte[],java.lang.Long> getOutputCounts()
public abstract int getNumberOfRecoveredRegions()
public abstract void append(WALSplitter.RegionEntryBuffer buffer) throws java.io.IOException
buffer
- A WAL Edit Entryjava.io.IOException
public boolean flush() throws java.io.IOException
java.io.IOException