org.apache.cassandra.service
Class MigrationManager

java.lang.Object
  extended by org.apache.cassandra.service.MigrationManager
All Implemented Interfaces:
IEndpointStateChangeSubscriber

public class MigrationManager
extends java.lang.Object
implements IEndpointStateChangeSubscriber


Constructor Summary
MigrationManager()
           
 
Method Summary
static void announce(java.util.Collection<RowMutation> schema)
          actively announce a new version to active hosts via rpc
static java.util.Collection<RowMutation> deserializeMigrationMessage(byte[] data, int version)
          Deserialize migration message considering data compatibility starting from version 1.1
static boolean isReadyForBootstrap()
           
 void onAlive(java.net.InetAddress endpoint, EndpointState state)
           
 void onChange(java.net.InetAddress endpoint, ApplicationState state, VersionedValue value)
           
 void onDead(java.net.InetAddress endpoint, EndpointState state)
           
 void onJoin(java.net.InetAddress endpoint, EndpointState epState)
          Use to inform interested parties about the change in the state for specified endpoint
 void onRemove(java.net.InetAddress endpoint)
           
 void onRestart(java.net.InetAddress endpoint, EndpointState state)
          Called whenever a node is restarted.
static void passiveAnnounce(java.util.UUID version)
          Announce my version passively over gossip.
static void rectifySchema(java.util.UUID theirVersion, java.net.InetAddress endpoint)
           
static byte[] serializeSchema(java.util.Collection<RowMutation> schema, int version)
          Serialize given row mutations into raw bytes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MigrationManager

public MigrationManager()
Method Detail

onJoin

public void onJoin(java.net.InetAddress endpoint,
                   EndpointState epState)
Description copied from interface: IEndpointStateChangeSubscriber
Use to inform interested parties about the change in the state for specified endpoint

Specified by:
onJoin in interface IEndpointStateChangeSubscriber
Parameters:
endpoint - endpoint for which the state change occurred.
epState - state that actually changed for the above endpoint.

onChange

public void onChange(java.net.InetAddress endpoint,
                     ApplicationState state,
                     VersionedValue value)
Specified by:
onChange in interface IEndpointStateChangeSubscriber

onAlive

public void onAlive(java.net.InetAddress endpoint,
                    EndpointState state)
Specified by:
onAlive in interface IEndpointStateChangeSubscriber

onDead

public void onDead(java.net.InetAddress endpoint,
                   EndpointState state)
Specified by:
onDead in interface IEndpointStateChangeSubscriber

onRestart

public void onRestart(java.net.InetAddress endpoint,
                      EndpointState state)
Description copied from interface: IEndpointStateChangeSubscriber
Called whenever a node is restarted. Note that there is no guarantee when that happens that the node was previously marked down. It will have only if state.isAlive() == false as state is from before the restarted node is marked up.

Specified by:
onRestart in interface IEndpointStateChangeSubscriber

onRemove

public void onRemove(java.net.InetAddress endpoint)
Specified by:
onRemove in interface IEndpointStateChangeSubscriber

rectifySchema

public static void rectifySchema(java.util.UUID theirVersion,
                                 java.net.InetAddress endpoint)

isReadyForBootstrap

public static boolean isReadyForBootstrap()

announce

public static void announce(java.util.Collection<RowMutation> schema)
actively announce a new version to active hosts via rpc

Parameters:
schema - The list of schema mutations to be applied on the recipient

passiveAnnounce

public static void passiveAnnounce(java.util.UUID version)
Announce my version passively over gossip. Used to notify nodes as they arrive in the cluster.

Parameters:
version - The schema version to announce

serializeSchema

public static byte[] serializeSchema(java.util.Collection<RowMutation> schema,
                                     int version)
                              throws java.io.IOException
Serialize given row mutations into raw bytes

Parameters:
schema - The row mutations to serialize
version - The version of the message service to use for serialization
Returns:
serialized mutations
Throws:
java.io.IOException - on failed serialization

deserializeMigrationMessage

public static java.util.Collection<RowMutation> deserializeMigrationMessage(byte[] data,
                                                                            int version)
                                                                     throws java.io.IOException
Deserialize migration message considering data compatibility starting from version 1.1

Parameters:
data - The data of the message from coordinator which hold schema mutations to apply
version - The version of the message
Returns:
The collection of the row mutations to apply on the node (aka schema)
Throws:
java.io.IOException - if message is of incompatible version or data is corrupted


Copyright © 2012 The Apache Software Foundation