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(IColumn column)
          actively announce a new version to active hosts via rpc
static void applyMigrations(java.util.UUID from, java.util.UUID to)
          gets called during startup if we notice a mismatch between the current migration version and the one saved.
static boolean isReadyForBootstrap()
           
static java.util.Collection<Column> makeColumns(Message msg)
           
 void onAlive(java.net.InetAddress endpoint, EndpointState state)
          gets called after a this node joins a cluster
 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 rectify(java.util.UUID theirVersion, java.net.InetAddress endpoint)
          will either push or pull an updating depending on who is behind.
 
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)
gets called after a this node joins a cluster

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

rectify

public static void rectify(java.util.UUID theirVersion,
                           java.net.InetAddress endpoint)
will either push or pull an updating depending on who is behind. fat clients should never push their schemas (since they have no local storage).


isReadyForBootstrap

public static boolean isReadyForBootstrap()

announce

public static void announce(IColumn column)
actively announce a new version to active hosts via rpc


passiveAnnounce

public static void passiveAnnounce(java.util.UUID version)
announce my version passively over gossip


applyMigrations

public static void applyMigrations(java.util.UUID from,
                                   java.util.UUID to)
                            throws java.io.IOException
gets called during startup if we notice a mismatch between the current migration version and the one saved. This can only happen as a result of the commit log recovering schema updates, which overwrites lastVersionId. This method silently eats IOExceptions thrown by Migration.apply() as a result of applying a migration out of order.

Throws:
java.io.IOException

makeColumns

public static java.util.Collection<Column> makeColumns(Message msg)
                                                throws java.io.IOException
Throws:
java.io.IOException


Copyright © 2012 The Apache Software Foundation