BELUGA BEHR created HDFS-13978: ---------------------------------- Summary: Review of DiskBalancer Key: HDFS-13978 URL: https://issues.apache.org/jira/browse/HDFS-13978 Project: Hadoop HDFS Issue Type: Improvement Components: datanode, hdfs Affects Versions: 3.2.0 Environment: * Use ArrayList instead of LinkedList. Especially because this code here uses the {{List#get()}} method, which is very slow for the LinkedList since it has to traverse every node to get to the offset: O(N^2)
{code} ExtendedBlock getNextBlock(List<FsVolumeSpi.BlockIterator> poolIters, DiskBalancerWorkItem item) { Preconditions.checkNotNull(poolIters); int currentCount = 0; ExtendedBlock block = null; while (block == null && currentCount < poolIters.size()) { currentCount++; int index = poolIndex++ % poolIters.size(); FsVolumeSpi.BlockIterator currentPoolIter = poolIters.get(index); block = getBlockToCopy(currentPoolIter, item); } {code} * Do not "log and throw" errors. This is an anti-pattern and should be avoided. Log or throw, but don't do both. Removed some logging * Improved other logging statements * Improved the {{hashcode}} method of one of the inner classes. It was instantiating a List and performing iteration for every call. Replace with Eclipse-generated hashcode method. * Fixed compiler warnings for deprecated code or code that was not parameterized * Fix check style issue Reporter: BELUGA BEHR Attachments: HDFS-13978.1.patch -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org