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

Vinayakumar B commented on HDFS-9044:
-------------------------------------

Hi [~andreina], thanks for the patch,

Patch looks almost good.

Here are few minor comments,

1. Below lines from 
{{BlockPlacementPolicyWithNodeGroup#chooseFavouredNodes(..)}} could be just 
replaced with {{super.chooseFavouredNodes(..)}}
{code}+    for (int i = 0; i < favoredNodes.size() && results.size() < 
numOfReplicas;
+        i++) {
+      DatanodeDescriptor favoredNode = favoredNodes.get(i);
+      // Choose a single node which is local to favoredNode.
+      // 'results' is updated within chooseLocalNode
+      DatanodeStorageInfo target = null;
+      try {
+        target =
+            chooseLocalStorage(favoredNode, favoriteAndExcludedNodes,
+              blocksize, maxNodesPerRack, results, avoidStaleNodes,
+              storageTypes, false);
+      } catch (NotEnoughReplicasException e) {
+        // catch Exception and continue with other favored nodes
+        continue;
+      }
+      if (target == null) {
+        LOG.warn("Could not find a target for file " + src
+            + " with favored node " + favoredNode);
+        continue;
+      }
+      favoriteAndExcludedNodes.add(target.getDatanodeDescriptor());
+    }{code}

2. {{checkFavoredNodePartOfTarget(..)}} could be renamed to {{isNodeChosen(..)}}

3. {{clusterMapNodeGroup.getNodeGroup(favoredNode.getNetworkLocation())}} can 
be extracted to a variable {{scope}} for better readability

4. I think its better to update javadoc for 
{{BlockPlacementPolicyWithNodeGroup#chooseLocalStorage(..)}} by mentioning, 
fallback to nodegroup/rack will happen if flag 
{{fallbackToNodeGroupAndLocalRack}} is set.

> Give Priority to FavouredNodes , before selecting nodes from FavouredNode's 
> Node Group
> --------------------------------------------------------------------------------------
>
>                 Key: HDFS-9044
>                 URL: https://issues.apache.org/jira/browse/HDFS-9044
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: J.Andreina
>            Assignee: J.Andreina
>         Attachments: HDFS-9044.1.patch, HDFS-9044.2.patch, HDFS-9044.3.patch, 
> HDFS-9044.4.patch
>
>
> Passing Favored nodes intention is to place replica among the favored node
> Current behavior in Node group is 
>       If favored node is not available it goes to one among favored 
> nodegroup. 
> {noformat}
> Say for example:
>       1)I need 3 replicas and passed 5 favored nodes.
>       2)Out of 5 favored nodes 3 favored nodes are not good.
>       3)Then based on BlockPlacementPolicyWithNodeGroup out of 5 targets node 
> returned , 3 will be random node from 3 bad FavoredNode's nodegroup. 
>       4)Then there is a probability that all my 3 replicas are placed on 
> Random node from FavoredNodes's nodegroup , instead of giving priority to 2 
> favored nodes returned as target.
> {noformat}
> *Instead of returning 5 targets on 3rd step above , we can return 2 good 
> favored nodes as target*
> *And remaining 1 needed replica can be chosen from Random node of bad 
> FavoredNodes's nodegroup.*
> This will make sure that the FavoredNodes are given priority.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to