You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Liang Xie (JIRA)" <ji...@apache.org> on 2013/11/07 04:21:17 UTC
[jira] [Updated] (HDFS-5461) fallback to non-ssr(local short
circuit reads) while oom detected
[ https://issues.apache.org/jira/browse/HDFS-5461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Liang Xie updated HDFS-5461:
----------------------------
Attachment: HDFS-5461.txt
bq. It's because each open stream holds a buffer, and we have hundreds of open streams?
i am not 100% sure, but in my mind, i agree with you, this oom is easy to repro while we have lots of opened storefiles to be read(e.g. compaction can't catch up sometimes)
Oh, i see, seems the fallback only meaningful for some config like mine: big Xmx and small MaxDirectMemorySize :)
I attached a patch with more logging about using/pooled direct buffer size. In my option, it could be useful probably while online resetting the log level to "trace" during OOM occur. And add a simple try/catch fallback handle for OOM without introducing any config value, per me, seems this way is more reasonable:)
> fallback to non-ssr(local short circuit reads) while oom detected
> -----------------------------------------------------------------
>
> Key: HDFS-5461
> URL: https://issues.apache.org/jira/browse/HDFS-5461
> Project: Hadoop HDFS
> Issue Type: Improvement
> Affects Versions: 3.0.0, 2.2.0
> Reporter: Liang Xie
> Attachments: HDFS-5461.txt
>
>
> Currently, the DirectBufferPool used by ssr feature seems doesn't have a upper-bound limit except DirectMemory VM option. So there's a risk to encounter direct memory oom. see HBASE-8143 for example.
> IMHO, maybe we could improve it a bit:
> 1) detect OOM or reach a setting up-limit from caller, then fallback to non-ssr
> 2) add a new metric about current raw consumed direct memory size.
--
This message was sent by Atlassian JIRA
(v6.1#6144)