[
https://issues.apache.org/jira/browse/HDFS-14104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16734720#comment-16734720
]
BELUGA BEHR commented on HDFS-14104:
------------------------------------
[~ljain] That is clever, but I'm not sure it saves anything. I'm sure it's
doing something similar under the covers. Please consider my patch for
inclusion as-is.
I do appreciate you demonstrating the stream implementation. Good to know!
> Review getImageTxIdToRetain
> ---------------------------
>
> Key: HDFS-14104
> URL: https://issues.apache.org/jira/browse/HDFS-14104
> Project: Hadoop HDFS
> Issue Type: Improvement
> Components: namenode
> Affects Versions: 3.0.0
> Reporter: BELUGA BEHR
> Assignee: BELUGA BEHR
> Priority: Minor
> Attachments: HDFS-14104.1.patch, HDFS-14104.1.patch,
> HDFS-14104.1.patch
>
>
> {code:java|title=NNStorageRetentionManager.java}
> private long getImageTxIdToRetain(FSImageTransactionalStorageInspector
> inspector) {
>
> List<FSImageFile> images = inspector.getFoundImages();
> TreeSet<Long> imageTxIds = Sets.newTreeSet();
> 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);
> return minTxId;
> }
> {code}
> # Fix check style issues
> # Use SLF4J paramaterized logging
> # A lot of work gets done before checking if the list actually contains any
> entries and returning a 0. That should be the first thing that happens
> # Instead of building up the {{TreeSet}} in its natural order, then reversing
> the collection, simply use a reverse natural ordering to begin with and save
> a step.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]