in priam/src/main/java/com/netflix/priam/backup/AbstractBackup.java [44:78]
protected final void initiateBackup(
String monitoringFolder, BackupRestoreUtil backupRestoreUtil) throws Exception {
File dataDir = new File(config.getDataFileLocation());
if (!dataDir.exists() || !dataDir.isDirectory()) {
throw new IllegalArgumentException(
"The configured 'data file location' does not exist or is not a directory: "
+ config.getDataFileLocation());
}
logger.debug("Scanning for backup in: {}", dataDir.getAbsolutePath());
File[] keyspaceDirectories = dataDir.listFiles();
if (keyspaceDirectories == null) return;
for (File keyspaceDir : keyspaceDirectories) {
if (keyspaceDir.isFile()) continue;
logger.debug("Entering {} keyspace..", keyspaceDir.getName());
File[] columnFamilyDirectories = keyspaceDir.listFiles();
if (columnFamilyDirectories == null) continue;
for (File columnFamilyDir : columnFamilyDirectories) {
File backupDir = new File(columnFamilyDir, monitoringFolder);
if (isAReadableDirectory(backupDir)) {
String columnFamilyName = getColumnFamily(backupDir);
if (backupRestoreUtil.isFiltered(keyspaceDir.getName(), columnFamilyName)) {
// Clean the backup/snapshot directory else files will keep getting
// accumulated.
SystemUtils.cleanupDir(backupDir.getAbsolutePath(), null);
} else {
processColumnFamily(backupDir);
}
}
} // end processing all CFs for keyspace
} // end processing keyspaces under the C* data dir
}