[
https://issues.apache.org/jira/browse/HDFS-17123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17747363#comment-17747363
]
ASF GitHub Bot commented on HDFS-17123:
---------------------------------------
hfutatzhanghb opened a new pull request, #5891:
URL: https://github.com/apache/hadoop/pull/5891
### Description of PR
Currently in method blockReport(), it uses below code snippets to generate
per datanode storage blocks:
```java
for (Map.Entry<DatanodeStorage, BlockListAsLongs> kvPair :
perVolumeBlockLists.entrySet()) {
BlockListAsLongs blockList = kvPair.getValue();
reports[i++] = new StorageBlockReport(kvPair.getKey(), blockList);
totalBlockCount += blockList.getNumberOfBlocks();
}
```
But the `perVolumeBlockLists` is a HashMap object, invocation of its
entrySet() method will return an unordered Set.
Here we'd better sort datanodeStorages. By doing this, NameNode will handle
block report storage by storage in a fixed order. Another advantage is that we
perhaps use this order in datanode logic in the future.
### How to test
existing unit tests about block reports can test this modification.
> Sort datanodeStorages when generating StorageBlockReport[] in method
> BPServiceActor#blockReport for future convenience
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: HDFS-17123
> URL: https://issues.apache.org/jira/browse/HDFS-17123
> Project: Hadoop HDFS
> Issue Type: Improvement
> Components: datanode
> Affects Versions: 3.4.0
> Reporter: farmmamba
> Assignee: farmmamba
> Priority: Major
> Labels: pull-request-available
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]