public class RecoveriesCollection
extends java.lang.Object
RecoveriesCollection.RecoveryRef
inner class verifies that recovery temporary files
and store will only be cleared once on going usage is finished.Modifier and Type | Class | Description |
---|---|---|
static class |
RecoveriesCollection.RecoveryRef |
a reference to
RecoveryTarget , which implements AutoCloseable . |
Constructor | Description |
---|---|
RecoveriesCollection(org.apache.logging.log4j.Logger logger,
ThreadPool threadPool,
java.util.function.LongConsumer ensureClusterStateVersionCallback) |
Modifier and Type | Method | Description |
---|---|---|
boolean |
cancelRecoveriesForShard(ShardId shardId,
java.lang.String reason) |
cancel all ongoing recoveries for the given shard
|
boolean |
cancelRecovery(long id,
java.lang.String reason) |
cancel the recovery with the given id (if found) and remove it from the recovery collection
|
void |
failRecovery(long id,
RecoveryFailedException e,
boolean sendShardFailure) |
fail the recovery with the given id (if found) and remove it from the recovery collection
|
RecoveriesCollection.RecoveryRef |
getRecovery(long id) |
gets the
RecoveryTarget for a given id. |
RecoveriesCollection.RecoveryRef |
getRecoverySafe(long id,
ShardId shardId) |
Similar to
getRecovery(long) but throws an exception if no recovery is found |
RecoveryTarget |
getRecoveryTarget(long id) |
|
void |
markRecoveryAsDone(long id) |
mark the recovery with the given id as done (if found)
|
RecoveryTarget |
resetRecovery(long recoveryId,
TimeValue activityTimeout) |
Resets the recovery and performs a recovery restart on the currently recovering index shard
|
int |
size() |
the number of ongoing recoveries
|
long |
startRecovery(IndexShard indexShard,
DiscoveryNode sourceNode,
PeerRecoveryTargetService.RecoveryListener listener,
TimeValue activityTimeout) |
Starts are new recovery for the given shard, source node and state
|
public RecoveriesCollection(org.apache.logging.log4j.Logger logger, ThreadPool threadPool, java.util.function.LongConsumer ensureClusterStateVersionCallback)
public long startRecovery(IndexShard indexShard, DiscoveryNode sourceNode, PeerRecoveryTargetService.RecoveryListener listener, TimeValue activityTimeout)
public RecoveryTarget resetRecovery(long recoveryId, TimeValue activityTimeout)
IndexShard.performRecoveryRestart()
public RecoveryTarget getRecoveryTarget(long id)
public RecoveriesCollection.RecoveryRef getRecovery(long id)
RecoveryTarget
for a given id. The RecoveryStatus returned has it's ref count already incremented
to make sure it's safe to use. However, you must call AbstractRefCounted.decRef()
when you are done with it, typically
by using this method in a try-with-resources clause.
Returns null if recovery is not found
public RecoveriesCollection.RecoveryRef getRecoverySafe(long id, ShardId shardId)
getRecovery(long)
but throws an exception if no recovery is foundpublic boolean cancelRecovery(long id, java.lang.String reason)
public void failRecovery(long id, RecoveryFailedException e, boolean sendShardFailure)
id
- id of the recovery to faile
- exception with reason for the failuresendShardFailure
- true a shard failed message should be sent to the masterpublic void markRecoveryAsDone(long id)
public int size()
public boolean cancelRecoveriesForShard(ShardId shardId, java.lang.String reason)
reason
- reason for cancellationshardId
- shardId for which to cancel recoveries