Add another flag to gateway if it even requires snapshot, so we don't try and snapshot on shutdown for none/local gateway (even though its a no op)
This commit is contained in:
parent
3e624bf9e0
commit
19052a3538
|
@ -58,6 +58,11 @@ public interface IndexShardGateway extends IndexShardComponent, CloseableIndexCo
|
|||
*/
|
||||
SnapshotStatus snapshot(Snapshot snapshot) throws IndexShardGatewaySnapshotFailedException;
|
||||
|
||||
/**
|
||||
* Returns <tt>true</tt> if snapshot is even required on this gateway (i.e. mainly handles recovery).
|
||||
*/
|
||||
boolean requiresSnapshot();
|
||||
|
||||
/**
|
||||
* Returns <tt>true</tt> if this gateway requires scheduling management for snapshot
|
||||
* operations.
|
||||
|
|
|
@ -270,7 +270,7 @@ public class IndexShardGatewayService extends AbstractIndexShardComponent implem
|
|||
}
|
||||
|
||||
public void snapshotOnClose() {
|
||||
if (snapshotOnClose) {
|
||||
if (shardGateway.requiresSnapshot() && snapshotOnClose) {
|
||||
try {
|
||||
snapshot("shutdown");
|
||||
} catch (Exception e) {
|
||||
|
@ -296,6 +296,9 @@ public class IndexShardGatewayService extends AbstractIndexShardComponent implem
|
|||
}
|
||||
|
||||
private synchronized void scheduleSnapshotIfNeeded() {
|
||||
if (!shardGateway.requiresSnapshot()) {
|
||||
return;
|
||||
}
|
||||
if (!shardGateway.requiresSnapshotScheduling()) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -109,6 +109,10 @@ public abstract class BlobStoreIndexShardGateway extends AbstractIndexShardCompo
|
|||
return type() + "://" + blobStore + "/" + shardPath;
|
||||
}
|
||||
|
||||
@Override public boolean requiresSnapshot() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override public boolean requiresSnapshotScheduling() {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -177,6 +177,10 @@ public class LocalIndexShardGateway extends AbstractIndexShardComponent implemen
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override public boolean requiresSnapshot() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override public boolean requiresSnapshotScheduling() {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -87,6 +87,10 @@ public class NoneIndexShardGateway extends AbstractIndexShardComponent implement
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override public boolean requiresSnapshot() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override public boolean requiresSnapshotScheduling() {
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue