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

Reply via email to