[ 
https://issues.apache.org/jira/browse/CRUNCH-256?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13748251#comment-13748251
 ] 

Josh Wills commented on CRUNCH-256:
-----------------------------------

IIRC, it had to deal w/handling the output of a union operation, i.e., I could 
have multiple jobs in a pipeline that were all writing to the same output 
directory for subsequent processing. If a target output directory already 
existed and had files in it, we wanted to first write the output of the MR job 
to a temp directory, and then move the output of the job to the target 
directory for further processing. I suspect that to make the logic easier, we 
just implemented things so that the move was always done, since it didn't seem 
to cost that much most of the time.

Obviously this patch is just a bandaid to fix one of the more pernicious 
problems with this approach, and we should still see about tackling CRUNCH-252 
so that we can eliminate the move entirely when it's not necessary.
                
> SequentialFileNamingScheme should cache the # of files in the target 
> directory after the first read
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CRUNCH-256
>                 URL: https://issues.apache.org/jira/browse/CRUNCH-256
>             Project: Crunch
>          Issue Type: Bug
>    Affects Versions: 0.7.0
>            Reporter: Josh Wills
>            Assignee: Josh Wills
>             Fix For: 0.8.0
>
>         Attachments: CRUNCH-256.patch
>
>
> After a job finishes running, the post-job hooks rename the files from a temp 
> output directory to the target output directory. When we have lots of files, 
> this move can take a long time, and I traced the performance issue to the 
> fact that SequentialFileNamingScheme does a listStatus() on the output 
> directory for every file that gets moved. If SequentialFileNamingScheme just 
> does this check once and then increments an internal counter, we can 
> significantly decrease the performance overhead involved with the move.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to