org.infinispan.commands.control
Class RehashControlCommand

java.lang.Object
  extended by org.infinispan.commands.remote.BaseRpcCommand
      extended by org.infinispan.commands.control.RehashControlCommand
All Implemented Interfaces:
CacheRpcCommand, ReplicableCommand

public class RehashControlCommand
extends BaseRpcCommand

A control command to coordinate rehashes that may occur when nodes join or leave a cluster, when DIST is used as a cache mode. This complex command coordinates the various phases of a rehash event when a joiner joins or a leaver leaves a cluster running in "distribution" mode.

It may break up into several commands in future.

Since:
4.0
Author:
Manik Surtani

Nested Class Summary
static class RehashControlCommand.Type
           
 
Field Summary
static int COMMAND_ID
           
 
Fields inherited from class org.infinispan.commands.remote.BaseRpcCommand
cacheName
 
Constructor Summary
RehashControlCommand()
           
RehashControlCommand(String cacheName, RehashControlCommand.Type type, Address sender, List<WriteCommand> txLogCommands, List<PrepareCommand> pendingPrepares, CommandsFactory commandsFactory)
           
RehashControlCommand(String cacheName, RehashControlCommand.Type type, Address sender, Map<Object,InternalCacheValue> state, ConsistentHash oldConsistentHash, ConsistentHash consistentHash, List<Address> leavers, CommandsFactory commandsFactory)
           
RehashControlCommand(Transport transport)
           
 
Method Summary
 byte getCommandId()
          Used by marshallers to convert this command into an id for streaming.
 Object[] getParameters()
          Used by marshallers to stream this command across a network
 void init(DistributionManager distributionManager, Configuration configuration, DataContainer dataContainer, CommandsFactory commandsFactory)
           
 Object perform(InvocationContext ctx)
          Performs the primary function of the command.
 Map<Object,InternalCacheValue> pullStateForJoin()
           
 Map<Object,InternalCacheValue> pullStateForLeave()
           
 Object pushState()
           
 void setParameters(int commandId, Object[] parameters)
          Used by the CommandsFactory to create a command from raw data read off a stream.
 String toString()
           
 
Methods inherited from class org.infinispan.commands.remote.BaseRpcCommand
getCacheName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

COMMAND_ID

public static final int COMMAND_ID
See Also:
Constant Field Values
Constructor Detail

RehashControlCommand

public RehashControlCommand()

RehashControlCommand

public RehashControlCommand(String cacheName,
                            RehashControlCommand.Type type,
                            Address sender,
                            Map<Object,InternalCacheValue> state,
                            ConsistentHash oldConsistentHash,
                            ConsistentHash consistentHash,
                            List<Address> leavers,
                            CommandsFactory commandsFactory)

RehashControlCommand

public RehashControlCommand(String cacheName,
                            RehashControlCommand.Type type,
                            Address sender,
                            List<WriteCommand> txLogCommands,
                            List<PrepareCommand> pendingPrepares,
                            CommandsFactory commandsFactory)

RehashControlCommand

public RehashControlCommand(Transport transport)
Method Detail

init

public void init(DistributionManager distributionManager,
                 Configuration configuration,
                 DataContainer dataContainer,
                 CommandsFactory commandsFactory)

perform

public Object perform(InvocationContext ctx)
               throws Throwable
Description copied from interface: ReplicableCommand
Performs the primary function of the command. Please see specific implementation classes for details on what is performed as well as return types. Important: this method will be invoked at the end of interceptors chain. It should never be called directly from a custom interceptor.

Parameters:
ctx - invocation context
Returns:
arbitrary return value generated by performing this command
Throws:
Throwable - in the event of problems.

pullStateForJoin

public Map<Object,InternalCacheValue> pullStateForJoin()
                                                throws CacheLoaderException
Throws:
CacheLoaderException

pullStateForLeave

public Map<Object,InternalCacheValue> pullStateForLeave()
                                                 throws CacheLoaderException
Throws:
CacheLoaderException

pushState

public Object pushState()

getCommandId

public byte getCommandId()
Description copied from interface: ReplicableCommand
Used by marshallers to convert this command into an id for streaming.

Returns:
the method id of this command. This is compatible with pre-2.2.0 MethodCall ids.

getParameters

public Object[] getParameters()
Description copied from interface: ReplicableCommand
Used by marshallers to stream this command across a network

Returns:
an object array of arguments, compatible with pre-2.2.0 MethodCall args.

setParameters

public void setParameters(int commandId,
                          Object[] parameters)
Description copied from interface: ReplicableCommand
Used by the CommandsFactory to create a command from raw data read off a stream.

Parameters:
commandId - command id to set. This is usually unused but *could* be used in the event of a command having multiple IDs, such as PutKeyValueCommand.
parameters - object array of args

toString

public String toString()
Overrides:
toString in class Object

Google Analytics

Copyright © 2010 JBoss, a division of Red Hat. All Rights Reserved.