[ 
https://issues.apache.org/jira/browse/HADOOP-17833?focusedWorklogId=782982&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-782982
 ]

ASF GitHub Bot logged work on HADOOP-17833:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 20/Jun/22 13:33
            Start Date: 20/Jun/22 13:33
    Worklog Time Spent: 10m 
      Work Description: steveloughran opened a new pull request, #4470:
URL: https://github.com/apache/hadoop/pull/4470

   
   Speed up the magic committer with key changes being
   
   * Writes under __magic always retain directory markers
   
   * File creation under __magic skips all overwrite checks,
     including the LIST call intended to stop files being
           created over dirs.
   * mkdirs under __magic probes the path for existence
     but does not look any further.
   
   Extra parallelism in task and job commit directory scanning
   Use of createFile and openFile with parameters which all for
   HEAD checks to be skipped.
   
   The committer can write the summary _SUCCESS file to the path
   `fs.s3a.committer.summary.report.directory`, which can be in a
   different file system/bucket if desired, using the job id as
   the filename.
   
   Also: HADOOP-15460. S3A FS to add `fs.s3a.create.performance`
   
   Application code can set the createFile() option
   fs.s3a.create.performance to true to disable the same
   safety checks when writing under magic directories.
   Use with care.
   
   The createFile option prefix `fs.s3a.create.header.`
   can be used to add custom headers to S3 objects when
   created.
   
   Contributed by Steve Loughran.
   
   Change-Id: I9e086423f02eb25b6e70fc1c12a13e0a5afe9cb9
   
   <!--
     Thanks for sending a pull request!
       1. If this is your first time, please read our contributor guidelines: 
https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute
       2. Make sure your PR title starts with JIRA issue id, e.g., 
'HADOOP-17799. Your PR title ...'.
   -->
   
   ### Description of PR
   
   
   ### How was this patch tested?
   
   
   ### For code changes:
   
   - [ ] Does the title or this PR starts with the corresponding JIRA issue id 
(e.g. 'HADOOP-17799. Your PR title ...')?
   - [ ] Object storage: have the integration tests been executed and the 
endpoint declared according to the connector-specific documentation?
   - [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)?
   - [ ] If applicable, have you updated the `LICENSE`, `LICENSE-binary`, 
`NOTICE-binary` files?
   
   




Issue Time Tracking
-------------------

    Worklog Id:     (was: 782982)
    Time Spent: 13h 20m  (was: 13h 10m)

> Improve Magic Committer Performance
> -----------------------------------
>
>                 Key: HADOOP-17833
>                 URL: https://issues.apache.org/jira/browse/HADOOP-17833
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs/s3
>    Affects Versions: 3.3.1
>            Reporter: Steve Loughran
>            Assignee: Steve Loughran
>            Priority: Minor
>              Labels: pull-request-available
>          Time Spent: 13h 20m
>  Remaining Estimate: 0h
>
> Magic committer tasks can be slow because every file created with 
> overwrite=false triggers a HEAD (verify there's no file) and a LIST (that 
> there's no dir). And because of delayed manifestations, it may not behave as 
> expected.
> ParquetOutputFormat is one example of a library which does this.
> we could fix parquet to use overwrite=true, but (a) there may be surprises in 
> other uses (b) it'd still leave the list and (c) do nothing for other formats 
> call
> Proposed: createFile() under a magic path to skip all probes for file/dir at 
> end of path
> Only a single task attempt Will be writing to that directory and it should 
> know what it is doing. If there is conflicting file names and parts across 
> tasks that won't even get picked up at this point. Oh and none of the 
> committers ever check for this: you'll get the last file manifested (s3a) or 
> renamed (file)
> If we skip the checks we will save 2 HTTP requests/file.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to