[
https://issues.apache.org/jira/browse/PIG-2812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13412459#comment-13412459
]
Haitao Yao commented on PIG-2812:
---------------------------------
Oh God, this is really a big change. It relates the Iterator of the data bags.
If we use 1 spill file, and every time we call the next(), we have to skip all
the read bytes, and this will be a big performance penalty. I think we can
consider change the iterator interface with a method free() added, so we can
hold an InputStream and make sure the free method is called when the iterator
finish its job.
Without the free method , we can not assure that somebody call break in an
iterator's loop. This will cause InputStream leak.
> Spill InternalCachedBag into only 1 file
> ----------------------------------------
>
> Key: PIG-2812
> URL: https://issues.apache.org/jira/browse/PIG-2812
> Project: Pig
> Issue Type: Bug
> Components: data
> Reporter: Haitao Yao
> Fix For: 0.11
>
> Attachments: aa.jpg
>
>
> I encountered a reducer's OOM because of java.io.DeleteOnExitHook. And I
> found out that the InternalCachedBag creates a seperate tmp file, and the tmp
> files is deleted on exit. So the file delete hook caused the OOM.
> Why not just hold the tmp file handle and spill only one tmp file?
> Too many tmp files may block the tasktracker start process, if the tmp files
> are not cleaned on time and the tasktracker restarts at this specific time.
--
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