## org.apache.cassandra.service
Class MigrationManager

    java.lang.Object
      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