Skip to content

Commit

Permalink
Remove BackupVersion.
Browse files Browse the repository at this point in the history
  • Loading branch information
mattl-netflix committed Feb 29, 2024
1 parent c07f1ec commit 99c8240
Show file tree
Hide file tree
Showing 13 changed files with 43 additions and 481 deletions.
17 changes: 2 additions & 15 deletions priam/src/main/java/com/netflix/priam/backup/BackupMetadata.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,14 @@ public final class BackupMetadata implements Serializable {
private Status status;
private boolean cassandraSnapshotSuccess;
private Date lastValidated;
private BackupVersion backupVersion;
private String snapshotLocation;

public BackupMetadata(BackupVersion backupVersion, String token, Date start) {
public BackupMetadata(String token, Date start) {
if (start == null || token == null || StringUtils.isEmpty(token))
throw new IllegalArgumentException(
String.format(
"Invalid Input: Token: %s or start date: %s is null or empty.",
token, start));
this.backupVersion = backupVersion;
this.snapshotDate = DateUtil.formatyyyyMMdd(start);
this.token = token;
this.start = start;
Expand All @@ -57,16 +55,14 @@ public boolean equals(Object o) {

return this.snapshotDate.equals(that.snapshotDate)
&& this.token.equals(that.token)
&& this.start.equals(that.start)
&& this.backupVersion.equals(that.backupVersion);
&& this.start.equals(that.start);
}

@Override
public int hashCode() {
int result = this.snapshotDate.hashCode();
result = 31 * result + this.token.hashCode();
result = 31 * result + this.start.hashCode();
result = 31 * result + this.backupVersion.hashCode();
return result;
}

Expand Down Expand Up @@ -171,15 +167,6 @@ public void setCassandraSnapshotSuccess(boolean cassandraSnapshotSuccess) {
this.cassandraSnapshotSuccess = cassandraSnapshotSuccess;
}

/**
* Get the backup version for the snapshot.
*
* @return backup version of the snapshot.
*/
public BackupVersion getBackupVersion() {
return backupVersion;
}

/**
* Return the last validation timestamp of this backup metadata. Validation of backup implies
* finding if all the files are successfully stored in remote file system.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,7 @@ public void failed(BackupMetadata backupMetadata) {
*/
protected abstract LinkedList<BackupMetadata> fetch(String snapshotDate);

public List<BackupMetadata> getLatestBackupMetadata(
BackupVersion backupVersion, DateUtil.DateRange dateRange) {
public List<BackupMetadata> getLatestBackupMetadata(DateUtil.DateRange dateRange) {
Instant startDay = dateRange.getStartTime().truncatedTo(ChronoUnit.DAYS);
Instant endDay = dateRange.getEndTime().truncatedTo(ChronoUnit.DAYS);

Expand All @@ -210,7 +209,6 @@ public List<BackupMetadata> getLatestBackupMetadata(
.stream()
.filter(Objects::nonNull)
.filter(backupMetadata -> backupMetadata.getStatus() == Status.FINISHED)
.filter(backupMetadata -> backupMetadata.getBackupVersion().equals(backupVersion))
.filter(
backupMetadata ->
backupMetadata
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,41 +39,25 @@
public class BackupVerification {

private static final Logger logger = LoggerFactory.getLogger(BackupVerification.class);
private final IMetaProxy metaV1Proxy;
private final IMetaProxy metaV2Proxy;
private final IBackupStatusMgr backupStatusMgr;
private final Provider<AbstractBackupPath> abstractBackupPathProvider;
private BackupVerificationResult latestResult;

@Inject
public BackupVerification(
@Named("v1") IMetaProxy metaV1Proxy,
@Named("v2") IMetaProxy metaV2Proxy,
IBackupStatusMgr backupStatusMgr,
Provider<AbstractBackupPath> abstractBackupPathProvider) {
this.metaV1Proxy = metaV1Proxy;
this.metaV2Proxy = metaV2Proxy;
this.backupStatusMgr = backupStatusMgr;
this.abstractBackupPathProvider = abstractBackupPathProvider;
}

public IMetaProxy getMetaProxy(BackupVersion backupVersion) {
switch (backupVersion) {
case SNAPSHOT_BACKUP:
return metaV1Proxy;
case SNAPSHOT_META_SERVICE:
return metaV2Proxy;
}

return null;
}

public Optional<BackupVerificationResult> verifyLatestBackup(
BackupVersion backupVersion, boolean force, DateRange dateRange)
public Optional<BackupVerificationResult> verifyLatestBackup(boolean force, DateRange dateRange)
throws IllegalArgumentException {
IMetaProxy metaProxy = getMetaProxy(backupVersion);
for (BackupMetadata backupMetadata :
backupStatusMgr.getLatestBackupMetadata(backupVersion, dateRange)) {
IMetaProxy metaProxy = metaV2Proxy;
for (BackupMetadata backupMetadata : backupStatusMgr.getLatestBackupMetadata(dateRange)) {
if (backupMetadata.getLastValidated() == null || force) {
Optional<BackupVerificationResult> result = verifyBackup(metaProxy, backupMetadata);
if (result.isPresent()) {
Expand All @@ -88,12 +72,11 @@ public Optional<BackupVerificationResult> verifyLatestBackup(
return Optional.empty();
}

public List<BackupMetadata> verifyBackupsInRange(
BackupVersion backupVersion, DateRange dateRange) throws IllegalArgumentException {
IMetaProxy metaProxy = getMetaProxy(backupVersion);
public List<BackupMetadata> verifyBackupsInRange(DateRange dateRange)
throws IllegalArgumentException {
IMetaProxy metaProxy = metaV2Proxy;
List<BackupMetadata> results = new ArrayList<>();
for (BackupMetadata backupMetadata :
backupStatusMgr.getLatestBackupMetadata(backupVersion, dateRange)) {
for (BackupMetadata backupMetadata : backupStatusMgr.getLatestBackupMetadata(dateRange)) {
if (backupMetadata.getLastValidated() != null
|| verifyBackup(metaProxy, backupMetadata).isPresent()) {
results.add(backupMetadata);
Expand Down
92 changes: 0 additions & 92 deletions priam/src/main/java/com/netflix/priam/backup/BackupVersion.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,9 @@ public interface IBackupStatusMgr {
* Get the list of backup metadata which are finished and have started in the daterange
* provided, in reverse chronological order of start date.
*
* @param backupVersion backup version of the backups to search.
* @param dateRange time period in which snapshot should have started. Finish time may be after
* the endTime in input.
* @return list of backup metadata which satisfies the input criteria
*/
List<BackupMetadata> getLatestBackupMetadata(
BackupVersion backupVersion, DateUtil.DateRange dateRange);
List<BackupMetadata> getLatestBackupMetadata(DateUtil.DateRange dateRange);
}
109 changes: 0 additions & 109 deletions priam/src/main/java/com/netflix/priam/backup/MetaData.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,7 @@ public void execute() throws Exception {
Instant slo =
now.minus(backupRestoreConfig.getBackupVerificationSLOInHours(), ChronoUnit.HOURS);
DateRange dateRange = new DateRange(slo, now);
List<BackupMetadata> verifiedBackups =
backupVerification.verifyBackupsInRange(
BackupVersion.SNAPSHOT_META_SERVICE, dateRange);
List<BackupMetadata> verifiedBackups = backupVerification.verifyBackupsInRange(dateRange);

verifiedBackups
.stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,10 +205,7 @@ public void execute() throws Exception {
Instant snapshotInstant = clock.instant();
String token = instanceIdentity.getInstance().getToken();
BackupMetadata backupMetadata =
new BackupMetadata(
BackupVersion.SNAPSHOT_META_SERVICE,
token,
new Date(snapshotInstant.toEpochMilli()));
new BackupMetadata(token, new Date(snapshotInstant.toEpochMilli()));
snapshotStatusMgr.start(backupMetadata);

try {
Expand Down
Loading

0 comments on commit 99c8240

Please sign in to comment.