Package org.infinispan.statetransfer
Class StateProviderImpl
- java.lang.Object
-
- org.infinispan.statetransfer.StateProviderImpl
-
- All Implemented Interfaces:
StateProvider
public class StateProviderImpl extends Object implements StateProvider
StateProvider
implementation.- Since:
- 5.2
- Author:
- anistor@redhat.com
-
-
Field Summary
Fields Modifier and Type Field Description protected String
cacheName
protected int
chunkSize
protected org.infinispan.commands.CommandsFactory
commandsFactory
protected org.infinispan.container.impl.InternalDataContainer
dataContainer
protected DistributionManager
distributionManager
protected org.infinispan.container.impl.InternalEntryFactory
entryFactory
protected ExecutorService
executorService
protected KeyPartitioner
keyPartitioner
protected PersistenceManager
persistenceManager
protected RpcManager
rpcManager
protected StateTransferLock
stateTransferLock
protected long
timeout
-
Constructor Summary
Constructors Constructor Description StateProviderImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addTransfer(OutboundTransferTask transferTask)
void
cancelOutboundTransfer(Address destination, int topologyId, IntSet segments)
Cancel sending of cache entries that belong to the given set of segments.Collection<DistributedCallable>
getClusterListenersToInstall()
List<TransactionInfo>
getTransactionsForSegments(Address destination, int requestTopologyId, IntSet segments)
Gets the list of transactions that affect keys from the given segments.boolean
isStateTransferInProgress()
protected void
onTaskCompletion(OutboundTransferTask transferTask)
CompletableFuture<Void>
onTopologyUpdate(CacheTopology cacheTopology, boolean isRebalance)
Receive notification of topology changes.void
start()
void
startOutboundTransfer(Address destination, int requestTopologyId, IntSet segments, boolean applyState)
Start to send cache entries that belong to the given set of segments.void
stop()
Cancels all outbound state transfers.
-
-
-
Field Detail
-
cacheName
protected String cacheName
-
rpcManager
protected RpcManager rpcManager
-
commandsFactory
protected org.infinispan.commands.CommandsFactory commandsFactory
-
dataContainer
protected org.infinispan.container.impl.InternalDataContainer dataContainer
-
persistenceManager
protected PersistenceManager persistenceManager
-
executorService
protected ExecutorService executorService
-
stateTransferLock
protected StateTransferLock stateTransferLock
-
entryFactory
protected org.infinispan.container.impl.InternalEntryFactory entryFactory
-
keyPartitioner
protected KeyPartitioner keyPartitioner
-
distributionManager
protected DistributionManager distributionManager
-
timeout
protected long timeout
-
chunkSize
protected int chunkSize
-
-
Method Detail
-
isStateTransferInProgress
public boolean isStateTransferInProgress()
- Specified by:
isStateTransferInProgress
in interfaceStateProvider
-
onTopologyUpdate
public CompletableFuture<Void> onTopologyUpdate(CacheTopology cacheTopology, boolean isRebalance)
Description copied from interface:StateProvider
Receive notification of topology changes. Cancels all outbound transfers to destinations that are no longer members. The other outbound transfers remain unaffected.- Specified by:
onTopologyUpdate
in interfaceStateProvider
-
start
public void start()
- Specified by:
start
in interfaceStateProvider
-
stop
public void stop()
Description copied from interface:StateProvider
Cancels all outbound state transfers. This is executed when the cache is shutting down.- Specified by:
stop
in interfaceStateProvider
-
getTransactionsForSegments
public List<TransactionInfo> getTransactionsForSegments(Address destination, int requestTopologyId, IntSet segments) throws InterruptedException
Description copied from interface:StateProvider
Gets the list of transactions that affect keys from the given segments. This is invoked in response to a StateRequestCommand of type StateRequestCommand.Type.GET_TRANSACTIONS.- Specified by:
getTransactionsForSegments
in interfaceStateProvider
- Parameters:
destination
- the address of the requester- Returns:
- list transactions and locks for the given segments
- Throws:
InterruptedException
-
getClusterListenersToInstall
public Collection<DistributedCallable> getClusterListenersToInstall()
- Specified by:
getClusterListenersToInstall
in interfaceStateProvider
-
startOutboundTransfer
public void startOutboundTransfer(Address destination, int requestTopologyId, IntSet segments, boolean applyState) throws InterruptedException
Description copied from interface:StateProvider
Start to send cache entries that belong to the given set of segments. This is invoked in response to a StateRequestCommand of type StateRequestCommand.Type.START_STATE_TRANSFER. If the applyState field is set to false, then upon delivery at the destination the cache entries are processed by aStateReceiver
and are not applied to the local cache.- Specified by:
startOutboundTransfer
in interfaceStateProvider
- Parameters:
destination
- the address of the requester- Throws:
InterruptedException
-
addTransfer
protected void addTransfer(OutboundTransferTask transferTask)
-
cancelOutboundTransfer
public void cancelOutboundTransfer(Address destination, int topologyId, IntSet segments)
Description copied from interface:StateProvider
Cancel sending of cache entries that belong to the given set of segments. This is invoked in response to a StateRequestCommand of type StateRequestCommand.Type.CANCEL_STATE_TRANSFER.- Specified by:
cancelOutboundTransfer
in interfaceStateProvider
- Parameters:
destination
- the address of the requestersegments
- the segments that we have to cancel transfer for
-
onTaskCompletion
protected void onTaskCompletion(OutboundTransferTask transferTask)
-
-