Skip to content

Commit

Permalink
Pick better WAL delete borderline in case of timelien reset (upgrade) #…
Browse files Browse the repository at this point in the history
  • Loading branch information
x4m committed Oct 27, 2018
1 parent 7856b5b commit 8791dfe
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,13 @@ func deleteBeforeTarget(target string, bk *Backup, pre *S3Prefix, findFull bool,

skip := true
skipLine := len(backups)
var walSkipFileName = ""
for i, b := range backups {
if skip {
log.Printf("%v skipped\n", b.Name)
if walSkipFileName == "" || walSkipFileName < b.WalFileName {
walSkipFileName = b.WalFileName
}
} else {
log.Printf("%v will be deleted\n", b.Name)
}
Expand All @@ -121,7 +125,7 @@ func deleteBeforeTarget(target string, bk *Backup, pre *S3Prefix, findFull bool,

if !dryRun {
if skipLine < len(backups)-1 {
deleteWALBefore(backups[skipLine], pre)
deleteWALBefore(walSkipFileName, pre)
deleteBackupsBefore(backups, skipLine, pre)
}
} else {
Expand Down Expand Up @@ -174,15 +178,15 @@ func partitionToObjects(keys []string) []*s3.ObjectIdentifier {
return objs
}

func deleteWALBefore(bt BackupTime, pre *S3Prefix) {
func deleteWALBefore(walSkipFileName string, pre *S3Prefix) {
var bk = &Backup{
Prefix: pre,
Path: aws.String(sanitizePath(*pre.Server + WalPath)),
}

objects, err := bk.GetWals(bt.WalFileName)
objects, err := bk.GetWals(walSkipFileName)
if err != nil {
log.Fatal("Unable to obtaind WALS for border ", bt.Name, err)
log.Fatal("Unable to obtaind WALS for border ", walSkipFileName, err)
}
parts := partitionObjects(objects, 1000)
for _, part := range parts {
Expand All @@ -191,7 +195,7 @@ func deleteWALBefore(bt BackupTime, pre *S3Prefix) {
}}
_, err = pre.Svc.DeleteObjects(input)
if err != nil {
log.Fatal("Unable to delete WALS before ", bt.Name, err)
log.Fatal("Unable to delete WALS before ", walSkipFileName, err)
}
}
}
Expand Down

0 comments on commit 8791dfe

Please sign in to comment.