hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Konstantin Shvachko (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HDFS-1112) Edit log buffer should not grow unboundedly
Date Wed, 19 May 2010 00:18:55 GMT

    [ https://issues.apache.org/jira/browse/HDFS-1112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12868928#action_12868928
] 

Konstantin Shvachko commented on HDFS-1112:
-------------------------------------------

A couple of somments.
#  {{FSEditLog.isTimeToSync()}} should be {{shouldForceSync()}} with reversed boolean return
value, to make it consistent with the EditLogOutputStream method.
# Is it possible to reuse the flag {{isSyncRunning}} instead of new {{isAutoSyncScheduled}}?
The problem is that we {{waitForSyncToFinish()}} in many operations, which makes sure that
{{isSyncRunning == false}}. We should probably do the same with {{isAutoSyncScheduled}} if
there is no way to use one flag for both conditions.
# This is the main concern. If {{logSync()}} fails, then {{isAutoSyncScheduled}} will remain
set. Nobody will be able to unset it, and everybody will be waiting for the sync to finish
when nobody is syncing.
# I see you had to add throwing IOException in a bunch of methods. The reason is that {{logSync()}}
throws IOEception, and therefore now the {{logEdit()}} should do it too. I think we should
fix {{logSync()}}, because it should not throw IOException. The only reason {{logSync()}}
throws is {{setReadyToFlush()}}. But call to {{setReadyToFlush()}} should be treated the same
way as the call to {{flush()}}, that is it should catch the exception and {{processIOError()}}.
I think current treatment of {{setReadyToFlush()}} is incorrect.


> Edit log buffer should not grow unboundedly
> -------------------------------------------
>
>                 Key: HDFS-1112
>                 URL: https://issues.apache.org/jira/browse/HDFS-1112
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: name-node
>    Affects Versions: 0.22.0
>            Reporter: Hairong Kuang
>            Assignee: Hairong Kuang
>             Fix For: 0.22.0
>
>         Attachments: editLogBuf.patch, editLogBuf1.patch
>
>
> Currently HDFS does not impose an upper limit on the edit log buffer. In case there are
a large number of open operations coming in with access time update on, since open does not
call sync automatically, there is a possibility that the buffer grow to a large size, therefore
causes memory leak and full GC in extreme cases as described in HDFS-1104. 
> The edit log buffer should be automatically flushed when the buffer becomes full.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message