ndimiduk commented on code in PR #7746:
URL: https://github.com/apache/hbase/pull/7746#discussion_r2803702378
##########
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/BackupBoundaries.java:
##########
@@ -38,22 +38,35 @@ public class BackupBoundaries {
private static final BackupBoundaries EMPTY_BOUNDARIES =
new BackupBoundaries(Collections.emptyMap(), Long.MAX_VALUE);
- // This map tracks, for every RegionServer, the least recent (= oldest /
lowest timestamp)
- // inclusion in any backup. In other words, it is the timestamp boundary up
to which all backup
- // roots have included the WAL in their backup.
- private final Map<Address, Long> boundaries;
+ // Tracks WAL cleanup boundaries separately for each backup root to ensure
WALs are only deleted
+ // when ALL backup roots no longer need them. The outer map key is the
backup ID of the most
+ // recent backup from each backup root. For each backup root, the inner map
stores the WAL
+ // timestamp boundary per RegionServer (the oldest WAL timestamp included in
that backup root's
+ // most recent backup). A WAL file can only be deleted if it's older than
the boundary for ALL
+ // backup roots, protecting WALs needed by any backup root even when other
roots have already
+ // backed up that host at a later timestamp.
+ private final Map<String, Map<Address, Long>> boundaries;
Review Comment:
It would be nice if BackupID had its own type. That's probably a larger
change.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]