zymap commented on a change in pull request #1949:
URL: https://github.com/apache/bookkeeper/pull/1949#discussion_r770211231
##########
File path:
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
##########
@@ -381,31 +403,44 @@ private void doGcLedgers() {
}
/**
- * Garbage collect those entry loggers which are not associated with any
active ledgers.
+ * Garbage collect those entry loggers which are not associated with any
+ * active ledgers.
+ *
+ * @throws EntryLogMetadataMapException
*/
- private void doGcEntryLogs() {
+ private void doGcEntryLogs() throws EntryLogMetadataMapException {
// Get a cumulative count, don't update until complete
AtomicLong totalEntryLogSizeAcc = new AtomicLong(0L);
// Loop through all of the entry logs and remove the non-active
ledgers.
entryLogMetaMap.forEach((entryLogId, meta) -> {
- removeIfLedgerNotExists(meta);
- if (meta.isEmpty()) {
- // This means the entry log is not associated with any active
ledgers anymore.
- // We can remove this entry log file now.
- LOG.info("Deleting entryLogId " + entryLogId + " as it has no
active ledgers!");
- removeEntryLog(entryLogId);
- gcStats.getReclaimedSpaceViaDeletes().add(meta.getTotalSize());
- }
-
- totalEntryLogSizeAcc.getAndAdd(meta.getRemainingSize());
+ try {
+ removeIfLedgerNotExists(meta);
+ // update entryMetadta to persistent-map
+ entryLogMetaMap.put(meta.getEntryLogId(), meta);
Review comment:
Maybe we can update it only when the meta is changed?
--
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]