[
https://issues.apache.org/jira/browse/HDFS-1104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12859554#action_12859554
]
Hairong Kuang commented on HDFS-1104:
-------------------------------------
A few ideas coming up:
1. Access time updates should turn off by default.
2. Fsck should not update a file's access time.
3. A file's access time should not be updated on every open. Ideally it could
be collected once a day or a week. This could greatly reduce the edit log size.
4. Edit log buffer should be automatically flushed when buffer get full or
certain amount of time is elapsed without any sync call.
I'd like to focus on 1 & 2 for 0.20. We probably should address 3 or 4 in the
trunk.
> Fsck triggers full GC on NameNode
> ---------------------------------
>
> Key: HDFS-1104
> URL: https://issues.apache.org/jira/browse/HDFS-1104
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: name-node
> Reporter: Hairong Kuang
> Assignee: Hairong Kuang
> Priority: Blocker
> Fix For: 0.20.3, 0.21.0, 0.22.0
>
>
> A NameNode at one of our clusters fell into full GC while fsck was performed.
> Digging into the problem shows that it is caused by how NameNode handles the
> access time of a file.
> Fsck calls open on every file in the checked directory to get the file's
> block locations. Each open changes the file's access time and then leads to
> writing a transaction entry to the edit log. The current code optimizes open
> so that it returns without issuing synchronizing the edit log to the disk. It
> happened that in our cluster no other jobs were running while fsck was
> performed. No edit log sync was ever called. So all open transactions were
> kept in memory. When the edit log buffer got full, it automatically doubled
> its space by allocating a new buffer. Full GC happened when no contiguous
> space were found when allocating a new bigger buffer.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.