HDFS-14104. Review getImageTxIdToRetain. Contributed by David Mollitor.

This commit is contained in:
Inigo Goiri 2019-08-29 14:18:35 -07:00
parent f600fbb6c4
commit ffca734c62
1 changed files with 13 additions and 14 deletions

View File

@ -184,24 +184,23 @@ public class NNStorageRetentionManager {
* @return the transaction ID corresponding to the oldest checkpoint
* that should be retained.
*/
private long getImageTxIdToRetain(FSImageTransactionalStorageInspector inspector) {
private long getImageTxIdToRetain(
FSImageTransactionalStorageInspector inspector) {
List<FSImageFile> images = inspector.getFoundImages();
TreeSet<Long> imageTxIds = Sets.newTreeSet();
final List<FSImageFile> images = inspector.getFoundImages();
if (images.isEmpty()) {
return 0L;
}
TreeSet<Long> imageTxIds = Sets.newTreeSet(Collections.reverseOrder());
for (FSImageFile image : images) {
imageTxIds.add(image.getCheckpointTxId());
}
List<Long> imageTxIdsList = Lists.newArrayList(imageTxIds);
if (imageTxIdsList.isEmpty()) {
return 0;
}
Collections.reverse(imageTxIdsList);
int toRetain = Math.min(numCheckpointsToRetain, imageTxIdsList.size());
long minTxId = imageTxIdsList.get(toRetain - 1);
LOG.info("Going to retain " + toRetain + " images with txid >= " +
minTxId);
LOG.info("Going to retain {} images with txid >= {}", toRetain, minTxId);
return minTxId;
}