package org.infinispan.upgrade;
import org.infinispan.Cache;
import org.infinispan.commons.CacheException;
/**
* Performs migration operations on the target server or cluster of servers
*
* @author Tristan Tarrant
* @since 5.2
*/
public interface TargetMigrator {
/**
* Returns the name of this migrator
*/
String getName();
/**
* Performs the synchronization of data between source and target
*/
long synchronizeData(Cache<Object, Object> cache) throws CacheException;
/**
* Performs the synchronization of data between source and target
*/
long synchronizeData(Cache<Object, Object> cache, int readBatch, int threads) throws CacheException;
/**
* Disconnects the target from the source. This operation is the last step that must be performed after a rolling upgrade.
*/
void disconnectSource(Cache<Object, Object> cache) throws CacheException;
}