Íñigo Goiri commented on HDFS-12288:

Thanks [~shahrs87], I think that makes sense.
Just to confirm, the proposal would be:
# Change the JMX method {{DataNode#getXceiverCount()}} to report the right 
xceiver count as [~lukmajercak] proposes.
# Add a new method called {{DataNode#getActiveNumberOfThreads()}} which has the 
old behavior from {{DataNode#getXceiverCount()}} (using 
# Use this new {{getActiveNumberOfThreads()}} for the configuration check and 
so on.

I like that solution.
[~lukmajercak], do you mind posting a patch with that?

> Fix DataNode's xceiver count calculation
> ----------------------------------------
>                 Key: HDFS-12288
>                 URL: https://issues.apache.org/jira/browse/HDFS-12288
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode, hdfs
>            Reporter: Lukas Majercak
>            Assignee: Lukas Majercak
>         Attachments: HDFS-12288.001.patch, HDFS-12288.002.patch
> The problem with the ThreadGroup.activeCount() method is that the method is 
> only a very rough estimate, and in reality returns the total number of 
> threads in the thread group as opposed to the threads actually running.
> In some DNs, we saw this to return 50~ for a long time, even though the 
> actual number of DataXceiver threads was next to none.
> This is a big issue as we use the xceiverCount to make decisions on the NN 
> for choosing replication source DN or returning DNs to clients for R/W.
> The plan is to reuse the DataNodeMetrics.dataNodeActiveXceiversCount value 
> which only accounts for actual number of DataXcevier threads currently 
> running and thus represents the load on the DN much better.

This message was sent by Atlassian JIRA

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