rmdmattingly commented on code in PR #6040:
URL: https://github.com/apache/hbase/pull/6040#discussion_r1768933585
##########
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/BackupLogCleaner.java:
##########
@@ -81,39 +81,55 @@ public void init(Map<String, Object> params) {
}
}
- private Map<Address, Long> getServerToNewestBackupTs(List<BackupInfo>
backups)
+ /**
+ * Calculates the timestamp boundary up to which all backup roots have
already included the WAL.
+ * I.e. WALs with a lower (= older) or equal timestamp are no longer needed
for future incremental
+ * backups.
+ */
+ private Map<Address, Long> serverToPreservationBoundaryTs(List<BackupInfo>
backups)
Review Comment:
> How does the second newest backup, and beyond, in the root come into play?
Answering my own questions a bit here, I think I needed to look deeper into
how the BackupInfo gets constructed. When the tableSetTimestampMap is
[populated](https://github.com/apache/hbase/blob/78da9e962b56846cea1db6dd43f9cd02c632ecf0/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java#L926-L966),
**it will contain entries for every table in the root**, not just every table
in the given backup. So while B4 might only pertain to T2, its corresponding
BackupInfo will be aware of the timestamps for T1. That's a confusing design
imo, but if true then I think this logic is sound
--
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]