[ 
https://issues.apache.org/jira/browse/HDFS-11370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15847826#comment-15847826
 ] 

Manoj Govindassamy commented on HDFS-11370:
-------------------------------------------

Thanks [~tasanuma0829]. 

bq. I think it is the same risk as that of 
BlockUnderConstructionFeature#getExpectedStorageLocations() at least.

{{BlockUnderConstructionFeature#getExpectedStorageLocations()}} and few other 
public methods in the same class work on the {{replicas}} array without proper 
synchronization but they never expose the cursor on the array to the caller. 
With {{getExpectedStorageLocationsIterator()}} we will be exposing a public 
iterator with the cursor exposed, but not thread safe. As a general practice, 
its advisable not to introduce any new non thread safe public iterators. One 
workaround here i can think of is, since the replicas is a very small array, we 
can have a copy of the replicas in the iterator at the time of construction and 
iterate over the same. Your thoughts please ?

> Optimize NamenodeFsck#getReplicaInfo
> ------------------------------------
>
>                 Key: HDFS-11370
>                 URL: https://issues.apache.org/jira/browse/HDFS-11370
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: namenode
>            Reporter: Takanobu Asanuma
>            Assignee: Takanobu Asanuma
>            Priority: Minor
>         Attachments: HDFS-11370.1.patch, HDFS-11370.2.patch, 
> HDFS-11370.3.patch, HDFS-11370.4.patch, HDFS-11370.5.patch
>
>
> We can optimize the logic of calculating the number of storages in 
> {{NamenodeFsck#getReplicaInfo}}. This is a follow-on task of HDFS-11124.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to