Package org.infinispan.stats.wrappers
Class ExtendedStatisticRpcManager
- java.lang.Object
-
- org.infinispan.stats.wrappers.ExtendedStatisticRpcManager
-
- All Implemented Interfaces:
RpcManager
public class ExtendedStatisticRpcManager extends Object implements RpcManager
Takes statistics about the RPC invocations.- Since:
- 6.0
- Author:
- Roberto Palmieri, Sebastiano Peluso, Diego Didona, Pedro Ruivo
-
-
Constructor Summary
Constructors Constructor Description ExtendedStatisticRpcManager(RpcManager actual, CacheStatisticManager cacheStatisticManager, TimeService timeService, StreamingMarshaller marshaller)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> Tblocking(CompletionStage<T> request)Block on a request and return its result.AddressgetAddress()Returns the address associated with this RpcManager or null if not part of the cluster.RpcOptionsgetDefaultRpcOptions(boolean sync)Creates a newRpcOptionsBuilder.RpcOptionsgetDefaultRpcOptions(boolean sync, DeliverOrder deliverOrder)Creates a newRpcOptionsBuilder.List<Address>getMembers()Returns members of a cluster scoped to the cache owning this RpcManager.RpcOptionsBuildergetRpcOptionsBuilder(ResponseMode responseMode)Creates a newRpcOptionsBuilder.RpcOptionsBuildergetRpcOptionsBuilder(ResponseMode responseMode, DeliverOrder deliverOrder)Creates a newRpcOptionsBuilder.RpcOptionsgetSyncRpcOptions()intgetTopologyId()Returns the current topology id.RpcOptionsgetTotalSyncRpcOptions()TransportgetTransport()<T> CompletionStage<T>invokeCommand(Collection<Address> targets, org.infinispan.commands.ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions)Invoke a command on a collection of node and pass the responses to aResponseCollector.<T> CompletionStage<T>invokeCommand(Address target, org.infinispan.commands.ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions)Invoke a command on a single node and pass the response to aResponseCollector.<T> CompletionStage<T>invokeCommandOnAll(org.infinispan.commands.ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions)Invoke a command on all the nodes in the cluster and pass the responses to aResponseCollector.<T> CompletionStage<T>invokeCommands(Collection<Address> targets, Function<Address,org.infinispan.commands.ReplicableCommand> commandGenerator, ResponseCollector<T> collector, RpcOptions rpcOptions)Invoke different commands on a collection of nodes and pass the responses to aResponseCollector.<T> CompletionStage<T>invokeCommandStaggered(Collection<Address> targets, org.infinispan.commands.ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions)Invoke a command on a collection of nodes and pass the responses to aResponseCollector.Map<Address,Response>invokeRemotely(Collection<Address> recipients, org.infinispan.commands.ReplicableCommand rpc, RpcOptions options)Invokes an RPC call on other caches in the cluster.Map<Address,Response>invokeRemotely(Map<Address,org.infinispan.commands.ReplicableCommand> rpcs, RpcOptions options)CompletableFuture<Map<Address,Response>>invokeRemotelyAsync(Collection<Address> recipients, org.infinispan.commands.ReplicableCommand rpc, RpcOptions options)Invokes a command on remote nodes.BackupResponseinvokeXSite(Collection<XSiteBackup> sites, XSiteReplicateCommand command)Invokes theXSiteReplicateCommandto one or more remote sites.voidsendTo(Address destination, org.infinispan.commands.ReplicableCommand command, DeliverOrder deliverOrder)Asynchronously sends theReplicableCommandto the destination using the specifiedDeliverOrder.voidsendToAll(org.infinispan.commands.ReplicableCommand command, DeliverOrder deliverOrder)Asynchronously sends theReplicableCommandto the entire cluster.voidsendToMany(Collection<Address> destinations, org.infinispan.commands.ReplicableCommand command, DeliverOrder deliverOrder)Asynchronously sends theReplicableCommandto the set of destination using the specifiedDeliverOrder.
-
-
-
Constructor Detail
-
ExtendedStatisticRpcManager
public ExtendedStatisticRpcManager(RpcManager actual, CacheStatisticManager cacheStatisticManager, TimeService timeService, StreamingMarshaller marshaller)
-
-
Method Detail
-
invokeCommand
public <T> CompletionStage<T> invokeCommand(Address target, org.infinispan.commands.ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions)
Description copied from interface:RpcManagerInvoke a command on a single node and pass the response to aResponseCollector. If the target is the local node and the delivery order is notDeliverOrder.TOTAL, the command is never executed, andResponseCollector.finish()is called directly.- Specified by:
invokeCommandin interfaceRpcManager
-
invokeCommand
public <T> CompletionStage<T> invokeCommand(Collection<Address> targets, org.infinispan.commands.ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions)
Description copied from interface:RpcManagerInvoke a command on a collection of node and pass the responses to aResponseCollector. If one of the targets is the local nodes and the delivery order is notDeliverOrder.TOTAL, the command is only executed on the remote nodes.- Specified by:
invokeCommandin interfaceRpcManager
-
invokeCommandOnAll
public <T> CompletionStage<T> invokeCommandOnAll(org.infinispan.commands.ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions)
Description copied from interface:RpcManagerInvoke a command on all the nodes in the cluster and pass the responses to aResponseCollector. The command is only executed on the local node if the delivery order isDeliverOrder.TOTAL. The command is not sent across RELAY2 bridges to remote sites.- Specified by:
invokeCommandOnAllin interfaceRpcManager
-
invokeCommandStaggered
public <T> CompletionStage<T> invokeCommandStaggered(Collection<Address> targets, org.infinispan.commands.ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions)
Description copied from interface:RpcManagerInvoke a command on a collection of nodes and pass the responses to aResponseCollector. The command is only sent immediately to the first target, and there is an implementation-dependent delay before sending the command to each target. There is no delay if the target responds or leaves the cluster. The remaining targets are skipped ifResponseCollector.addResponse(Address, Response)returns a non-nullvalue. If one of the targets is the local node and the delivery order is notDeliverOrder.TOTAL, the command is only executed on the remote nodes.- Specified by:
invokeCommandStaggeredin interfaceRpcManager
-
invokeCommands
public <T> CompletionStage<T> invokeCommands(Collection<Address> targets, Function<Address,org.infinispan.commands.ReplicableCommand> commandGenerator, ResponseCollector<T> collector, RpcOptions rpcOptions)
Description copied from interface:RpcManagerInvoke different commands on a collection of nodes and pass the responses to aResponseCollector. If one of the targets is the local node and the delivery order is notDeliverOrder.TOTAL, the command is only executed on the remote nodes.- Specified by:
invokeCommandsin interfaceRpcManager
-
blocking
public <T> T blocking(CompletionStage<T> request)
Description copied from interface:RpcManagerBlock on a request and return its result.- Specified by:
blockingin interfaceRpcManager
-
invokeRemotelyAsync
public CompletableFuture<Map<Address,Response>> invokeRemotelyAsync(Collection<Address> recipients, org.infinispan.commands.ReplicableCommand rpc, RpcOptions options)
Description copied from interface:RpcManagerInvokes a command on remote nodes.- Specified by:
invokeRemotelyAsyncin interfaceRpcManager- Parameters:
recipients- A list of nodes, ornullto invoke the command on all the members of the clusterrpc- The command to invokeoptions- The invocation options- Returns:
- A future that, when completed, returns the responses from the remote nodes.
-
invokeRemotely
public Map<Address,Response> invokeRemotely(Collection<Address> recipients, org.infinispan.commands.ReplicableCommand rpc, RpcOptions options)
Description copied from interface:RpcManagerInvokes an RPC call on other caches in the cluster.- Specified by:
invokeRemotelyin interfaceRpcManager- Parameters:
recipients- a list of Addresses to invoke the call on. If this isnull, the call is broadcast to the entire cluster.rpc- command to execute remotely.options- it configures the invocation. The same instance can be re-used sinceRpcManagerdoes not change it. Any change inRpcOptionsduring a remote invocation can lead to unpredictable behavior.- Returns:
- a map of responses from each member contacted.
-
invokeRemotely
public Map<Address,Response> invokeRemotely(Map<Address,org.infinispan.commands.ReplicableCommand> rpcs, RpcOptions options)
- Specified by:
invokeRemotelyin interfaceRpcManager
-
sendTo
public void sendTo(Address destination, org.infinispan.commands.ReplicableCommand command, DeliverOrder deliverOrder)
Description copied from interface:RpcManagerAsynchronously sends theReplicableCommandto the destination using the specifiedDeliverOrder.- Specified by:
sendToin interfaceRpcManager- Parameters:
destination- the destination'sAddress.command- theReplicableCommandto send.deliverOrder- theDeliverOrderto use.
-
sendToMany
public void sendToMany(Collection<Address> destinations, org.infinispan.commands.ReplicableCommand command, DeliverOrder deliverOrder)
Description copied from interface:RpcManagerAsynchronously sends theReplicableCommandto the set of destination using the specifiedDeliverOrder.- Specified by:
sendToManyin interfaceRpcManager- Parameters:
destinations- the collection of destination'sAddress. Ifnull, it sends to all the members in the cluster.command- theReplicableCommandto send.deliverOrder- theDeliverOrderto use.
-
sendToAll
public void sendToAll(org.infinispan.commands.ReplicableCommand command, DeliverOrder deliverOrder)Description copied from interface:RpcManagerAsynchronously sends theReplicableCommandto the entire cluster.- Specified by:
sendToAllin interfaceRpcManager
-
invokeXSite
public BackupResponse invokeXSite(Collection<XSiteBackup> sites, XSiteReplicateCommand command) throws Exception
Description copied from interface:RpcManagerInvokes theXSiteReplicateCommandto one or more remote sites.- Specified by:
invokeXSitein interfaceRpcManager- Parameters:
sites- The sites to where the command is sent.command- TheXSiteReplicateCommandto send.- Returns:
- The
BackupResponsewith the responses. - Throws:
Exception
-
getRpcOptionsBuilder
public RpcOptionsBuilder getRpcOptionsBuilder(ResponseMode responseMode)
Description copied from interface:RpcManagerCreates a newRpcOptionsBuilder. TheRpcOptionsBuilderis configured with theResponseModeand withDeliverOrder.NONEif theResponseModeis synchronous otherwise, withDeliverOrder.PER_SENDERif asynchronous.- Specified by:
getRpcOptionsBuilderin interfaceRpcManager- Parameters:
responseMode- theResponseMode.- Returns:
- a new
RpcOptionsBuilderwith the default options. The response and deliver mode are set as described.
-
getRpcOptionsBuilder
public RpcOptionsBuilder getRpcOptionsBuilder(ResponseMode responseMode, DeliverOrder deliverOrder)
Description copied from interface:RpcManagerCreates a newRpcOptionsBuilder.- Specified by:
getRpcOptionsBuilderin interfaceRpcManager- Parameters:
responseMode- theResponseMode.deliverOrder- theDeliverOrder.- Returns:
- a new
RpcOptionsBuilderwith the default options and the response mode and deliver mode set by the parameters.
-
getDefaultRpcOptions
public RpcOptions getDefaultRpcOptions(boolean sync)
Description copied from interface:RpcManagerCreates a newRpcOptionsBuilder. TheRpcOptionsBuilderis configured withDeliverOrder.NONEif the {@param sync} istrueotherwise, withDeliverOrder.PER_SENDER.- Specified by:
getDefaultRpcOptionsin interfaceRpcManager- Parameters:
sync-truefor Synchronous RpcOptions- Returns:
- the default Synchronous/Asynchronous RpcOptions
-
getDefaultRpcOptions
public RpcOptions getDefaultRpcOptions(boolean sync, DeliverOrder deliverOrder)
Description copied from interface:RpcManagerCreates a newRpcOptionsBuilder.- Specified by:
getDefaultRpcOptionsin interfaceRpcManager- Parameters:
sync-truefor Synchronous RpcOptionsdeliverOrder- theDeliverOrderto use.- Returns:
- the default Synchronous/Asynchronous RpcOptions with the deliver order set by the parameter.
-
getTransport
public Transport getTransport()
- Specified by:
getTransportin interfaceRpcManager- Returns:
- a reference to the underlying transport.
-
getMembers
public List<Address> getMembers()
Description copied from interface:RpcManagerReturns members of a cluster scoped to the cache owning this RpcManager. Note that this List is always a subset ofTransport.getMembers()- Specified by:
getMembersin interfaceRpcManager- Returns:
- a list of cache scoped cluster members
-
getAddress
public Address getAddress()
Description copied from interface:RpcManagerReturns the address associated with this RpcManager or null if not part of the cluster.- Specified by:
getAddressin interfaceRpcManager
-
getTopologyId
public int getTopologyId()
Description copied from interface:RpcManagerReturns the current topology id. As opposed to the viewId which is updated whenever the cluster changes, the topologyId is updated when a new cache instance is started or removed - this doesn't necessarily coincide with a node being added/removed to the cluster.- Specified by:
getTopologyIdin interfaceRpcManager
-
getSyncRpcOptions
public RpcOptions getSyncRpcOptions()
- Specified by:
getSyncRpcOptionsin interfaceRpcManager- Returns:
- The default options for synchronous remote invocations.
-
getTotalSyncRpcOptions
public RpcOptions getTotalSyncRpcOptions()
- Specified by:
getTotalSyncRpcOptionsin interfaceRpcManager- Returns:
- The default options for total order remote invocations.
-
-