hadoop-hdfs-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Derek Dagit (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HDFS-4270) Replications of the highest priority should be allowed to choose a source datanode that has reached its max replication limit
Date Wed, 05 Dec 2012 09:01:02 GMT
Derek Dagit created HDFS-4270:
---------------------------------

             Summary: Replications of the highest priority should be allowed to choose a source
datanode that has reached its max replication limit
                 Key: HDFS-4270
                 URL: https://issues.apache.org/jira/browse/HDFS-4270
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: namenode
    Affects Versions: 0.23.5, 3.0.0
            Reporter: Derek Dagit
            Assignee: Derek Dagit
            Priority: Minor
             Fix For: 3.0.0, 2.0.3-alpha, 0.23.6


Blocks that have been identified as under-replicated are placed on one of several priority
queues.  The highest priority queue is essentially reserved for situations in which only one
replica of the block exists, meaning it should be replicated ASAP.

The ReplicationMonitor periodically computes replication work, and a call to BlockManager#chooseUnderReplicatedBlocks
selects a given number of under-replicated blocks, choosing blocks from the highest-priority
queue first and working down to the lowest priority queue.

In the subsequent call to BlockManager#computeReplicationWorkForBlocks, a source for the replication
is chosen from among datanodes that have an available copy of the block needed.  This is done
in BlockManager#chooseSourceDatanode.


chooseSourceDatanode's job is to choose the datanode for replication.  It chooses a random
datanode from the available datanodes that has not reached its replication limit (preferring
datanodes that are currently decommissioning).

However, the priority queue of the block does not inform the logic.  If a datanode holds the
last remaining replica of a block and has already reached its replication limit, the node
is dismissed outright and the replication is not scheduled.

In some situations, this could lead to data loss, as the last remaining replica could disappear
if an opportunity is not taken to schedule a replication.  It would be better to waive the
max replication limit in cases of highest-priority block replication.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message