[ https://issues.apache.org/jira/browse/HDFS-7325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14197333#comment-14197333 ]
Tsz Wo Nicholas Sze commented on HDFS-7325: ------------------------------------------- Thanks for the advise about the thundering herd problem. {code} + if (numAllocated < maxAllocated) { + notify(); + } {code} The < above should be <=. When numAllocated == maxAllocated, we definitely should call notify(). How about simply including the change in HDFS-7358 and resolving this? > Prevent thundering herd problem in ByteArrayManager by using notify not > notifyAll > --------------------------------------------------------------------------------- > > Key: HDFS-7325 > URL: https://issues.apache.org/jira/browse/HDFS-7325 > Project: Hadoop HDFS > Issue Type: Bug > Affects Versions: 2.6.0 > Reporter: Colin Patrick McCabe > Assignee: Colin Patrick McCabe > Attachments: HDFS-7325.001.patch > > > Currently ByteArrayManager wakes all waiting threads whenever a byte array is > released and count == limit. However, only one thread can proceed. With a > large number of waiters, this will cause a thundering herd problem. (See > http://en.wikipedia.org/wiki/Thundering_herd_problem.) We should avoid this > by only waking a single thread. -- This message was sent by Atlassian JIRA (v6.3.4#6332)