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.UUID version, java.util.Set<java.net.InetAddress> hosts)
          actively announce my version to a set of 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 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)
          I'm not going to act here.
 void onRemove(java.net.InetAddress endpoint)
           
static void passiveAnnounce(java.util.UUID version)
          announce my version passively over gossip
static void pushMigrations(java.util.UUID from, java.util.UUID to, java.net.InetAddress host)
          pushes migrations from this host to another host
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)
I'm not going to act here.

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

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).


announce

public static void announce(java.util.UUID version,
                            java.util.Set<java.net.InetAddress> hosts)
actively announce my version to a set of hosts via rpc. They may culminate with them sending me migrations.


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

pushMigrations

public static void pushMigrations(java.util.UUID from,
                                  java.util.UUID to,
                                  java.net.InetAddress host)
pushes migrations from this host to another host


makeColumns

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


Copyright © 2011 The Apache Software Foundation