Improve CheckPoint node GC performance
--------------------------------------

                 Key: HDFS-2555
                 URL: https://issues.apache.org/jira/browse/HDFS-2555
             Project: Hadoop HDFS
          Issue Type: Improvement
          Components: name-node
            Reporter: Bochun Bai


CheckPoint NameNode uses a lot of memory to merge the edits to the fsimage.
And the previous checkpoint data cannot easily be GCed.

It is running with jdk-sun-1.6 with different GC parameters, JProfiler 
calculated heap size shown below:
  For 1MB sized fsimage, -XX:-UseConcMarkSweepGC, heap size increases 10MB 
every checking period.
  For 1MB sized fsimage, -XX:-UseParallelGC, heap size increases and back to 
10M every checking period.
  For 1.2GB sized fsimage, both GC mode, heap size increases 2.5GB every 
checking period.

I have two workaround, both of them are tested work fine. But I want discuss 
more about the CheckPoint design.
  Workaround 1: set the check period to a very long time, and restart the java 
process every hour. 
    Pro: solves full GC problem immediately.
    Con: Cannot merge edits when it increased suddenly.

  Workaround 2: also reset the INode tree structure when reset the root node.
    Pro: both CMS and Parallel mode works
    Con: This may be a JDK-specific problem.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to