Issue Details (XML | Word | Printable)

Key: HADOOP-4583
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Suresh Srinivas
Reporter: Suresh Srinivas
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Hadoop Common

Code optimization/cleanup in HDFS

Created: 04/Nov/08 12:39 AM   Updated: 08/Jul/09 04:43 PM
Return to search
Component/s: None
Affects Version/s: 0.20.0
Fix Version/s: 0.20.0

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works 4583.patch 2008-11-07 04:00 AM Suresh Srinivas 5 kB
Text File Licensed for inclusion in ASF works 4583.patch 2008-11-06 06:52 PM Suresh Srinivas 6 kB

Hadoop Flags: Reviewed
Resolution Date: 08/Nov/08 02:25 AM


 Description  « Hide
Some of the changes needed:
  • FSNameSystem.allocateBlock creates a lot of object unnecessarily to find a blockID that is unused. It should reuse the Block object created by changing the blockID and reusing the GenerationStamp.
  • InodeFile.addBlock should use System.arrayCopy instead of copying 1 at a time.
  • Some of the for loops in FSEditLog.java can be optimized. Instead of getting the edit stream length in termination condition, a local variable should be used to do the same.


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Suresh Srinivas added a comment - 04/Nov/08 12:45 AM
Thanks Nicholas for pointing out, GenerationStamp cannot be reused. But the Block object can be reused.

dhruba borthakur added a comment - 04/Nov/08 07:08 AM
>Instead of getting the edit stream length in termination condition, a local variable should be used to do the same

Won't the Java compiler do this on its own?


Suresh Srinivas added a comment - 04/Nov/08 07:07 PM
I am not sure if the method call in termination condition is optimized. I know that loops may be optimized from condition < len to condition <= 0. Based on the tests I ran, moving the method call out of terminating condition improves the performance.

Tsz Wo (Nicholas), SZE added a comment - 07/Nov/08 01:57 AM
Codes look good but the patch is out dated. Need sync with trunk.

Suresh Srinivas added a comment - 07/Nov/08 04:00 AM
New patch uploaded. Here are the results of testing the patch. No tests included as the functionality is tested by existing tests.

[exec] -1 overall.

[exec] +1 @author. The patch does not contain any @author tags.

[exec] -1 tests included. The patch doesn't appear to include any new or modified tests.
[exec] Please justify why no tests are needed for this patch.

[exec] +1 javadoc. The javadoc tool did not generate any warning messages.

[exec] +1 javac. The applied patch does not increase the total number of javac compiler warnings.

[exec] +1 findbugs. The patch does not introduce any new Findbugs warnings.

[exec] +1 Eclipse classpath. The patch retains Eclipse classpath integrity.


Hadoop QA added a comment - 08/Nov/08 02:10 AM
-1 overall. Here are the results of testing the latest attachment
http://issues.apache.org/jira/secure/attachment/12393485/4583.patch
against trunk revision 712305.

+1 @author. The patch does not contain any @author tags.

-1 tests included. The patch doesn't appear to include any new or modified tests.
Please justify why no tests are needed for this patch.

-1 javadoc. The javadoc tool appears to have generated 1 warning messages.

+1 javac. The applied patch does not increase the total number of javac compiler warnings.

+1 findbugs. The patch does not introduce any new Findbugs warnings.

+1 Eclipse classpath. The patch retains Eclipse classpath integrity.

+1 core tests. The patch passed core unit tests.

+1 contrib tests. The patch passed contrib unit tests.

Test results: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/3552/testReport/
Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/3552/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/3552/artifact/trunk/build/test/checkstyle-errors.html
Console output: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/3552/console

This message is automatically generated.


Tsz Wo (Nicholas), SZE added a comment - 08/Nov/08 02:14 AM
The javadoc warning is unrelated. See HADOOP-4621.

Tsz Wo (Nicholas), SZE added a comment - 08/Nov/08 02:25 AM
I just committed this. Thanks, Suresh!

Hudson added a comment - 08/Nov/08 04:47 PM
Integrated in Hadoop-trunk #655 (See http://hudson.zones.apache.org/hudson/job/Hadoop-trunk/655/)
. Several code optimizations in HDFS. (Suresh Srinivas via szetszwo)