From 6e9ab1a02709a272196430f5982a7b8a8b1f5986 Mon Sep 17 00:00:00 2001 From: mattl-netflix <63665634+mattl-netflix@users.noreply.github.com> Date: Sun, 10 Mar 2024 10:27:05 -0700 Subject: [PATCH] Reveal hook to assume meta file validity on restore. This speeds restores when meta files are large and known to be valid. A more-correct solution of using the BackupStatusMgr is forthcoming. (#1085) --- .../main/java/com/netflix/priam/backupv2/MetaV2Proxy.java | 6 +++++- .../main/java/com/netflix/priam/config/IConfiguration.java | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/priam/src/main/java/com/netflix/priam/backupv2/MetaV2Proxy.java b/priam/src/main/java/com/netflix/priam/backupv2/MetaV2Proxy.java index b7904167a..9ee0fa3e6 100644 --- a/priam/src/main/java/com/netflix/priam/backupv2/MetaV2Proxy.java +++ b/priam/src/main/java/com/netflix/priam/backupv2/MetaV2Proxy.java @@ -43,6 +43,7 @@ public class MetaV2Proxy implements IMetaProxy { private final Path metaFileDirectory; private final IBackupFileSystem fs; private final Provider abstractBackupPathProvider; + private final IConfiguration config; @Inject public MetaV2Proxy( @@ -52,6 +53,7 @@ public MetaV2Proxy( fs = backupFileSystemCtx.getFileStrategy(configuration); this.abstractBackupPathProvider = abstractBackupPathProvider; metaFileDirectory = Paths.get(configuration.getDataFileLocation()); + this.config = configuration; } @Override @@ -196,7 +198,9 @@ public BackupVerificationResult isMetaFileValid(AbstractBackupPath metaBackupPat metaFile = downloadMetaFile(metaBackupPath); result.manifestAvailable = true; - metaFileBackupValidator.readMeta(metaFile); + if (!config.skipMetaFileValidationOnRestore()) { + metaFileBackupValidator.readMeta(metaFile); + } result.valid = (result.filesInMetaOnly.isEmpty()); } catch (FileNotFoundException fne) { logger.error(fne.getLocalizedMessage()); diff --git a/priam/src/main/java/com/netflix/priam/config/IConfiguration.java b/priam/src/main/java/com/netflix/priam/config/IConfiguration.java index 91f667c3f..64a9c00e7 100644 --- a/priam/src/main/java/com/netflix/priam/config/IConfiguration.java +++ b/priam/src/main/java/com/netflix/priam/config/IConfiguration.java @@ -1183,4 +1183,8 @@ default int getBlockForPeersTimeoutInSecs() { * @return The result for the property, or the defaultValue if provided (null otherwise) */ String getProperty(String key, String defaultValue); + + default boolean skipMetaFileValidationOnRestore() { + return false; + } }