private abstract static class HRegion.BatchOperation<T> extends Object
| Modifier and Type | Class and Description | 
|---|---|
| static interface  | HRegion.BatchOperation.VisitorVisitor interface for batch operations | 
| Modifier and Type | Field and Description | 
|---|---|
| protected boolean | atomic | 
| protected boolean[] | canProceed | 
| protected Durability | durability | 
| protected Map<byte[],List<Cell>>[] | familyCellMaps | 
| protected int | nextIndexToProcess | 
| protected HRegion.ObservedExceptionsInBatch | observedExceptions | 
| protected T[] | operations | 
| protected HRegion | region | 
| protected Result[] | results | 
| protected OperationStatus[] | retCodeDetails | 
| protected WALEdit[] | walEditsFromCoprocessors | 
| Constructor and Description | 
|---|
| BatchOperation(HRegion region,
              T[] operations) | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | applyFamilyMapToMemStore(Map<byte[],List<Cell>> familyMap,
                        MemStoreSizing memstoreAccounting)Atomically apply the given map of family->edits to the memstore. | 
| List<Pair<NonceKey,WALEdit>> | buildWALEdits(MiniBatchOperationInProgress<Mutation> miniBatchOp)Builds separate WALEdit per nonce by applying input mutations. | 
| abstract void | checkAndPrepare()Validates each mutation and prepares a batch for write. | 
| protected void | checkAndPrepareMutation(int index,
                       long timestamp) | 
| protected void | checkAndPrepareMutation(Mutation mutation,
                       long timestamp)Helper method that checks and prepares only one mutation. | 
| protected abstract void | checkAndPreparePut(Put p)Implement any Put request specific check and prepare logic here. | 
| abstract void | closeRegionOperation() | 
| void | completeMiniBatchOperations(MiniBatchOperationInProgress<Mutation> miniBatchOp,
                           MultiVersionConcurrencyControl.WriteEntry writeEntry)This method completes mini-batch operations by calling postBatchMutate() CP hook (if
 required) and completing mvcc. | 
| protected MiniBatchOperationInProgress<Mutation> | createMiniBatch(int lastIndexExclusive,
               int readyToWriteCount) | 
| private void | doFinishHotnessProtector(MiniBatchOperationInProgress<Mutation> miniBatchOp) | 
| void | doPostOpCleanupForMiniBatch(MiniBatchOperationInProgress<Mutation> miniBatchOp,
                           WALEdit walEdit,
                           boolean success) | 
| List<UUID> | getClusterIds() | 
| abstract Mutation | getMutation(int index) | 
| abstract Mutation[] | getMutationsForCoprocs()This method is potentially expensive and useful mostly for non-replay CP path. | 
| abstract long | getNonce(int index) | 
| abstract long | getNonceGroup(int index) | 
| abstract long | getOrigLogSeqNum() | 
| (package private) boolean | isAtomic() | 
| boolean | isDone() | 
| abstract boolean | isInReplay() | 
| boolean | isOperationPending(int index) | 
| MiniBatchOperationInProgress<Mutation> | lockRowsAndBuildMiniBatch(List<Region.RowLock> acquiredRowLocks)Creates Mini-batch of all operations [nextIndexToProcess, lastIndexExclusive) for which
 a row lock can be acquired. | 
| abstract void | prepareMiniBatchOperations(MiniBatchOperationInProgress<Mutation> miniBatchOp,
                          long timestamp,
                          List<Region.RowLock> acquiredRowLocks)If necessary, calls preBatchMutate() CP hook for a mini-batch and updates metrics, cell
 count, tags and timestamp for all cells of all operations in a mini-batch. | 
| int | size() | 
| abstract void | startRegionOperation() | 
| void | visitBatchOperations(boolean pendingOnly,
                    int lastIndexExclusive,
                    HRegion.BatchOperation.Visitor visitor)Helper method for visiting pending/ all batch operations | 
| protected void | writeMiniBatchOperationsToMemStore(MiniBatchOperationInProgress<Mutation> miniBatchOp,
                                  long writeNumber) | 
| abstract MultiVersionConcurrencyControl.WriteEntry | writeMiniBatchOperationsToMemStore(MiniBatchOperationInProgress<Mutation> miniBatchOp,
                                  MultiVersionConcurrencyControl.WriteEntry writeEntry)Write mini-batch operations to MemStore | 
protected final T[] operations
protected final OperationStatus[] retCodeDetails
protected final WALEdit[] walEditsFromCoprocessors
protected final Map<byte[],List<Cell>>[] familyCellMaps
protected final boolean[] canProceed
protected int nextIndexToProcess
protected final HRegion.ObservedExceptionsInBatch observedExceptions
protected Durability durability
protected boolean atomic
public BatchOperation(HRegion region, T[] operations)
public void visitBatchOperations(boolean pendingOnly, int lastIndexExclusive, HRegion.BatchOperation.Visitor visitor) throws IOException
IOExceptionpublic abstract Mutation getMutation(int index)
public abstract long getNonceGroup(int index)
public abstract long getNonce(int index)
public abstract Mutation[] getMutationsForCoprocs()
public abstract boolean isInReplay()
public abstract long getOrigLogSeqNum()
public abstract void startRegionOperation() throws IOException
IOExceptionpublic abstract void closeRegionOperation() throws IOException
IOExceptionpublic abstract void checkAndPrepare() throws IOException
checkAndPrepareMutation(int, long) in a 'for' loop over mutations.IOExceptionprotected abstract void checkAndPreparePut(Put p) throws IOException
checkAndPrepareMutation(Mutation, long) for how its used.IOExceptionpublic abstract void prepareMiniBatchOperations(MiniBatchOperationInProgress<Mutation> miniBatchOp, long timestamp, List<Region.RowLock> acquiredRowLocks) throws IOException
IOExceptionpublic abstract MultiVersionConcurrencyControl.WriteEntry writeMiniBatchOperationsToMemStore(MiniBatchOperationInProgress<Mutation> miniBatchOp, MultiVersionConcurrencyControl.WriteEntry writeEntry) throws IOException
IOExceptionprotected void writeMiniBatchOperationsToMemStore(MiniBatchOperationInProgress<Mutation> miniBatchOp, long writeNumber) throws IOException
IOExceptionpublic boolean isDone()
public int size()
public boolean isOperationPending(int index)
public List<UUID> getClusterIds()
boolean isAtomic()
protected void checkAndPrepareMutation(Mutation mutation, long timestamp) throws IOException
checkAndPrepare() for entire Batch.
 NOTE: As CP prePut()/preDelete()/preIncrement()/preAppend() hooks may modify mutations,
 this method should be called after prePut()/preDelete()/preIncrement()/preAppend() CP hooks
 are run for the mutationIOExceptionprotected void checkAndPrepareMutation(int index, long timestamp) throws IOException
IOExceptionpublic MiniBatchOperationInProgress<Mutation> lockRowsAndBuildMiniBatch(List<Region.RowLock> acquiredRowLocks) throws IOException
MiniBatchOperationInProgress. Mini batch
 is window over HRegion.BatchOperation and contains contiguous pending operations.acquiredRowLocks - keeps track of rowLocks acquired.IOExceptionprotected MiniBatchOperationInProgress<Mutation> createMiniBatch(int lastIndexExclusive, int readyToWriteCount)
public List<Pair<NonceKey,WALEdit>> buildWALEdits(MiniBatchOperationInProgress<Mutation> miniBatchOp) throws IOException
IOExceptionpublic void completeMiniBatchOperations(MiniBatchOperationInProgress<Mutation> miniBatchOp, MultiVersionConcurrencyControl.WriteEntry writeEntry) throws IOException
IOExceptionpublic void doPostOpCleanupForMiniBatch(MiniBatchOperationInProgress<Mutation> miniBatchOp, WALEdit walEdit, boolean success) throws IOException
IOExceptionprivate void doFinishHotnessProtector(MiniBatchOperationInProgress<Mutation> miniBatchOp)
protected void applyFamilyMapToMemStore(Map<byte[],List<Cell>> familyMap, MemStoreSizing memstoreAccounting) throws IOException
familyMap - Map of Cells by familyIOExceptionCopyright © 2007–2021 The Apache Software Foundation. All rights reserved.