You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Inigo Goiri (JIRA)" <ji...@apache.org> on 2015/07/02 01:37:04 UTC

[jira] [Commented] (HADOOP-12173) NetworkTopology#add calls NetworkTopology#toString always

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

Inigo Goiri commented on HADOOP-12173:
--------------------------------------

Currently, the code does:
{code}
  public void add(Node node) {
    if (node==null) return;
    int newDepth = NodeBase.locationToDepth(node.getNetworkLocation()) + 1;
    netlock.writeLock().lock();
    try {
      String oldTopoStr = this.toString();
      if( node instanceof InnerNode ) {
        throw new IllegalArgumentException(
          "Not allow to add an inner node: "+NodeBase.getPath(node));
      }
      if ((depthOfAllLeaves != -1) && (depthOfAllLeaves != newDepth)) {
        LOG.error("Error: can't add leaf node " + NodeBase.getPath(node) +
            " at depth " + newDepth + " to topology:\n" + oldTopoStr);
        throw new InvalidTopologyException("Failed to add " + NodeBase.getPath(node) +
            ": You cannot have a rack and a non-rack node at the same " +
            "level of the network topology.");
      }
{code}

This implies doing a toString for every single addition.

> NetworkTopology#add calls NetworkTopology#toString always
> ---------------------------------------------------------
>
>                 Key: HADOOP-12173
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12173
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 2.7.0
>            Reporter: Inigo Goiri
>             Fix For: 2.7.1
>
>
> It always does a toString of the whole topology but this is not required when there are no errors. This is adding a very big overhead to large clusters as it's walking the whole tree every time we add a node to the cluster.
> HADOOP-10953 did some fix in that area but the errors is still there.



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