Class MultiSourceSingleFileReliableAsyncGroupBacklog
java.lang.Object
com.gigaspaces.internal.cluster.node.impl.backlog.AbstractSingleFileGroupBacklog<IReplicationOrderedPacket,MultiSourceSingleFileConfirmationHolder>
com.gigaspaces.internal.cluster.node.impl.backlog.multisourcesinglefile.AbstractMultiSourceSingleFileGroupBacklog
com.gigaspaces.internal.cluster.node.impl.backlog.multisourcesinglefile.MultiSourceSingleFileReliableAsyncGroupBacklog
- All Implemented Interfaces:
IPacketFilteredHandler,IReplicationGroupBacklog,IReplicationReliableAsyncGroupBacklog,DynamicSourceGroupConfigHolder.IDynamicSourceGroupStateListener
public class MultiSourceSingleFileReliableAsyncGroupBacklog
extends AbstractMultiSourceSingleFileGroupBacklog
implements IReplicationReliableAsyncGroupBacklog, IPacketFilteredHandler
-
Nested Class Summary
Nested classes/interfaces inherited from class com.gigaspaces.internal.cluster.node.impl.backlog.AbstractSingleFileGroupBacklog
AbstractSingleFileGroupBacklog.CaluclateMinUnconfirmedKeyProcedure, AbstractSingleFileGroupBacklog.CompactionEnabledCaluclateMinUnconfirmedKeyProcedure, AbstractSingleFileGroupBacklog.ICaluclateMinUnconfirmedKeyNested classes/interfaces inherited from interface com.gigaspaces.internal.cluster.node.impl.backlog.reliableasync.IReplicationReliableAsyncGroupBacklog
IReplicationReliableAsyncGroupBacklog.KeeperMemberState -
Field Summary
FieldsModifier and TypeFieldDescriptionFields inherited from class com.gigaspaces.internal.cluster.node.impl.backlog.AbstractSingleFileGroupBacklog
_defaultFilteredHandler, _logger, _loggerReplica, _outOfSyncDueToDeletionTargets, _replicationLogger, _rwLock -
Constructor Summary
ConstructorsConstructorDescriptionMultiSourceSingleFileReliableAsyncGroupBacklog(DynamicSourceGroupConfigHolder groupConfig, String name, IReplicationPacketDataProducer<?> dataProducer) -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(ReliableAsyncReplicationGroupOutContext groupContext, IEntryHolder entryHolder, ReplicationSingleOperationType operationType) voidaddGeneric(ReliableAsyncReplicationGroupOutContext groupContext, Object operationData, ReplicationSingleOperationType operationType) voidaddTransaction(ReliableAsyncReplicationGroupOutContext groupContext, ServerTransaction transaction, ArrayList<IEntryHolder> lockedEntries, ReplicationMultipleOperationType operationType) voidafterHandshake(IProcessLogHandshakeResponse handshakeResponse) Called after handshake is done with the keeper target groupprotected MultiSourceSingleFileReliableAsyncStatebuildReliableAsyncState(Set<Map.Entry<String, MultiSourceSingleFileConfirmationHolder>> asyncTargetsConfirmations) protected IPacketFilteredHandlerprotected IHandshakeContextgetHandshakeContext(String memberName, IBacklogHandshakeRequest request, PlatformLogicalVersion targetLogicalVersion, GlobalOrderProcessLogHandshakeResponse typedResponse, long lastProcessedKey) getHandshakeRequestImpl(String memberName, MultiSourceSingleFileBacklogHandshakeRequest handshakeRequest) protected longprotected longgetNextHandshakeIteration(String memberName, IHandshakeContext handshakeContext) getReliableAsyncPackets(String memberName, int maxSize, IReplicationReliableAsyncGroupBacklog.KeeperMemberState[] keeperMembersState, IReplicationChannelDataFilter dataFilter, PlatformLogicalVersion targetMemberVersion, org.slf4j.Logger logger) Gets the next packet for the specified async member that is part of a reliable async groupgetReliableAsyncState(String targetMemberLookupName) booleanmergeWithDiscarded(IReplicationOrderedPacket previousDiscardedPacket, IReplicationOrderedPacket mergedPacket, String memberName) Merge an already existing discarded packet with a new packet that should be discardedpacketFiltered(IReplicationOrderedPacket beforeFilter, IReplicationOrderedPacket afterFilter, IReplicationGroupBacklog groupBacklog, String targetMemberName) voidreliableAsyncSourceAdd(String sourceMemberName, IReplicationOrderedPacket packet) voidreliableAsyncSourceKeep(String sourceMemberName, IReplicationOrderedPacket packet) Keep an already existing packet which was previously processed or will not be processed by the corresponding process logvoidupdateReliableAsyncState(IReliableAsyncState reliableAsyncState, String sourceMemberName) Methods inherited from class com.gigaspaces.internal.cluster.node.impl.backlog.multisourcesinglefile.AbstractMultiSourceSingleFileGroupBacklog
addGenericOperationPacket, addSingleOperationPacket, addTransactionOperationPacket, createBacklogOverflowPacket, createConfirmationMap, createNewConfirmationHolder, deleteBatchFromBacklog, fromWireForm, getConfirmed, getFirstRequiredKeyUnsafe, getHandshakeRequest, getIdleStateData, getLastConfirmedKeyUnsafe, getMemberUnconfirmedKey, getState, onBeginSynchronization, processHandshakeResponse, processIdleStateDataResult, processResult, processResult, replaceWithDiscarded, setPendingError, supportDiscardMergeMethods inherited from class com.gigaspaces.internal.cluster.node.impl.backlog.AbstractSingleFileGroupBacklog
appendConfirmationStateString, beginSynchronizing, beginSynchronizing, checkSynchronizingDone, cleanPendingErrorStateIfNeeded, clearConfirmedPackets, clearReplicated, close, decreaseMirrorDiscardedCount, decreaseWeight, decreaseWeightToAllMembersFromOldestPacket, ensureLimit, filterPacketForSynchronizing, flushRedoLogToStorage, freeWriteLock, getAllConfirmationHoldersUnsafe, getAllConfirmations, getAllConfirmations, getBacklogFile, getConfirmationHolderUnsafe, getCurrentMarker, getDataProducer, getFirstKeyInBacklogInternal, getGroupConfigSnapshot, getGroupName, getLastInsertedKeyToBacklogUnsafe, getLogPrefix, getMarker, getMembersToValidateAgainst, getName, getNextKeyUnsafe, getPackets, getPacketsUnsafe, getPacketsWithFullSerializedContent, getSpecificPacket, getSpecificPackets, getStatistics, getSwapStorageType, getUnconfirmedMarker, getWeight, getWeight, getWeightUnsafe, handlePendingErrorBatchPackets, handlePendingErrorSinglePacket, hasExistingMember, hasMirror, increaseAllMembersWeight, increaseMirrorDiscardedCount, increaseWeight, insertReplicationOrderedPacketToBacklog, isBacklogDroppedEntirely, isMarkerReached, isSynchronizing, logPendingErrorResolved, makeMemberConfirmedOnAll, memberAdded, memberRemoved, monitor, notifyDroppedIfListening, peekOldestPacket, performCompaction, performCompactionUnsafe, printRedoLog, registerWith, removeSynchronizingState, setGroupHistory, setNextKeyUnsafe, setPacketWeight, setPendingError, setPendingError, setStateListener, shouldInsertPacket, size, size, stopSynchronization, synchronizationCopyStageDone, synchronizationDataGenerated, synchronizationDone, takeNextKeyUnsafe, toLogMessage, toString, updateBacklogLimitations, updateMirrorWeightAfterCompaction, validateIntegrity, validateReliableAsyncUpdateTargetsMatch, writeLockMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.gigaspaces.internal.cluster.node.impl.config.DynamicSourceGroupConfigHolder.IDynamicSourceGroupStateListener
memberAdded, memberRemovedMethods inherited from interface com.gigaspaces.internal.cluster.node.impl.backlog.IReplicationGroupBacklog
beginSynchronizing, beginSynchronizing, clearReplicated, close, decreaseWeight, flushRedoLogToStorage, freeWriteLock, fromWireForm, getConfirmed, getCurrentMarker, getDataProducer, getHandshakeRequest, getIdleStateData, getMarker, getPackets, getSpecificPacket, getState, getStatistics, getSwapStorageType, getUnconfirmedMarker, getWeight, getWeight, increaseWeight, makeMemberConfirmedOnAll, monitor, performCompaction, processHandshakeResponse, processIdleStateDataResult, processResult, processResult, registerWith, replaceWithDiscarded, setGroupHistory, setPendingError, setPendingError, setPendingError, setStateListener, size, size, stopSynchronization, supportDiscardMerge, synchronizationCopyStageDone, synchronizationDataGenerated, synchronizationDone, toLogMessage, writeLock
-
Field Details
-
_ongoingReliableAsyncHandshakeCompletion
-
-
Constructor Details
-
MultiSourceSingleFileReliableAsyncGroupBacklog
public MultiSourceSingleFileReliableAsyncGroupBacklog(DynamicSourceGroupConfigHolder groupConfig, String name, IReplicationPacketDataProducer<?> dataProducer)
-
-
Method Details
-
add
public void add(ReliableAsyncReplicationGroupOutContext groupContext, IEntryHolder entryHolder, ReplicationSingleOperationType operationType) - Specified by:
addin interfaceIReplicationReliableAsyncGroupBacklog
-
addGeneric
public void addGeneric(ReliableAsyncReplicationGroupOutContext groupContext, Object operationData, ReplicationSingleOperationType operationType) - Specified by:
addGenericin interfaceIReplicationReliableAsyncGroupBacklog
-
addTransaction
public void addTransaction(ReliableAsyncReplicationGroupOutContext groupContext, ServerTransaction transaction, ArrayList<IEntryHolder> lockedEntries, ReplicationMultipleOperationType operationType) - Specified by:
addTransactionin interfaceIReplicationReliableAsyncGroupBacklog
-
reliableAsyncSourceAdd
- Specified by:
reliableAsyncSourceAddin interfaceIReplicationReliableAsyncGroupBacklog
-
reliableAsyncSourceKeep
Description copied from interface:IReplicationReliableAsyncGroupBacklogKeep an already existing packet which was previously processed or will not be processed by the corresponding process log- Specified by:
reliableAsyncSourceKeepin interfaceIReplicationReliableAsyncGroupBacklog
-
getEntireReliableAsyncState
- Specified by:
getEntireReliableAsyncStatein interfaceIReplicationReliableAsyncGroupBacklog
-
updateReliableAsyncState
public void updateReliableAsyncState(IReliableAsyncState reliableAsyncState, String sourceMemberName) throws NoSuchReplicationMemberException, MissingReliableAsyncTargetStateException - Specified by:
updateReliableAsyncStatein interfaceIReplicationReliableAsyncGroupBacklog- Throws:
NoSuchReplicationMemberExceptionMissingReliableAsyncTargetStateException
-
getReliableAsyncPackets
public List<IReplicationOrderedPacket> getReliableAsyncPackets(String memberName, int maxSize, IReplicationReliableAsyncGroupBacklog.KeeperMemberState[] keeperMembersState, IReplicationChannelDataFilter dataFilter, PlatformLogicalVersion targetMemberVersion, org.slf4j.Logger logger) Description copied from interface:IReplicationReliableAsyncGroupBacklogGets the next packet for the specified async member that is part of a reliable async group- Specified by:
getReliableAsyncPacketsin interfaceIReplicationReliableAsyncGroupBacklogkeeperMembersState- the state of the keeper sync member
-
afterHandshake
Description copied from interface:IReplicationReliableAsyncGroupBacklogCalled after handshake is done with the keeper target group- Specified by:
afterHandshakein interfaceIReplicationReliableAsyncGroupBacklog
-
dumpState
- Specified by:
dumpStatein interfaceIReplicationGroupBacklog- Overrides:
dumpStatein classAbstractMultiSourceSingleFileGroupBacklog
-
getHandshakeRequestImpl
protected MultiSourceSingleFileBacklogHandshakeRequest getHandshakeRequestImpl(String memberName, MultiSourceSingleFileBacklogHandshakeRequest handshakeRequest) - Overrides:
getHandshakeRequestImplin classAbstractMultiSourceSingleFileGroupBacklog
-
getHandshakeContext
protected IHandshakeContext getHandshakeContext(String memberName, IBacklogHandshakeRequest request, PlatformLogicalVersion targetLogicalVersion, GlobalOrderProcessLogHandshakeResponse typedResponse, long lastProcessedKey) - Overrides:
getHandshakeContextin classAbstractMultiSourceSingleFileGroupBacklog
-
getReliableAsyncState
- Specified by:
getReliableAsyncStatein interfaceIReplicationReliableAsyncGroupBacklog
-
buildReliableAsyncState
protected MultiSourceSingleFileReliableAsyncState buildReliableAsyncState(Set<Map.Entry<String, MultiSourceSingleFileConfirmationHolder>> asyncTargetsConfirmations) -
packetFiltered
public IReplicationOrderedPacket packetFiltered(IReplicationOrderedPacket beforeFilter, IReplicationOrderedPacket afterFilter, IReplicationGroupBacklog groupBacklog, String targetMemberName) - Specified by:
packetFilteredin interfaceIPacketFilteredHandler
-
getFilteredHandler
-
getNextHandshakeIteration
public IHandshakeIteration getNextHandshakeIteration(String memberName, IHandshakeContext handshakeContext) - Specified by:
getNextHandshakeIterationin interfaceIReplicationGroupBacklog- Overrides:
getNextHandshakeIterationin classAbstractSingleFileGroupBacklog<IReplicationOrderedPacket,MultiSourceSingleFileConfirmationHolder>
-
getMinimumUnconfirmedKeyUnsafe
protected long getMinimumUnconfirmedKeyUnsafe() -
getInitialMaxAllowedDeleteUpTo
protected long getInitialMaxAllowedDeleteUpTo() -
mergeWithDiscarded
public boolean mergeWithDiscarded(IReplicationOrderedPacket previousDiscardedPacket, IReplicationOrderedPacket mergedPacket, String memberName) Description copied from interface:IReplicationGroupBacklogMerge an already existing discarded packet with a new packet that should be discarded- Specified by:
mergeWithDiscardedin interfaceIReplicationGroupBacklog- Overrides:
mergeWithDiscardedin classAbstractMultiSourceSingleFileGroupBacklog- Parameters:
previousDiscardedPacket- the already existing discarded packet which is a resultIReplicationGroupBacklog.replaceWithDiscarded(IReplicationOrderedPacket, boolean)mergedPacket- the new packet that needs to be discarded and merged into the existing discarded packetmemberName- TODO- Returns:
- return true if merge is successful, false otherwise
-