hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Allen Wittenauer (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HDFS-1104) Fsck triggers full GC on NameNode
Date Thu, 22 Apr 2010 20:20:02 GMT

    [ https://issues.apache.org/jira/browse/HDFS-1104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12859993#action_12859993

Allen Wittenauer commented on HDFS-1104:

#1: atime is important from an operations perspective for random usage file systems, such
as tmp directories.  Defaulting it off would make it counter to almost every file system that
I can think of.  [In fact, I can't think of -any- that default it off, but I'm sure there
is one out there somewhere.]  So a -1 on that idea.

#2 was done to mirror what we saw with posix, when fsck specifically hits a file (since fsck
mainly works on files, not blocks, like 'real' fsck).  I'm slightly concerned about changing
this functionality, as I could see it being used during debugging (the only time lots of files
are accessed at all is during a nightly fsck).   But I recognize this is an extreme edge case.

#3 defeats the point of having atime at all.

#4 that just seems like a good idea in general. why hold it in memory if it isn't getting
used? +1

> 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.

View raw message