hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-13600) S3a rename() to copy files in a directory in parallel
Date Sat, 09 Sep 2017 17:48:00 GMT

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

ASF GitHub Bot commented on HADOOP-13600:
-----------------------------------------

Github user steveloughran commented on a diff in the pull request:

    https://github.com/apache/hadoop/pull/157#discussion_r137931539
  
    --- Diff: hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java
---
    @@ -306,6 +311,58 @@ public StorageStatistics provide() {
     
       }
     
    +  private TransferManager createUploadTransferManager(Configuration conf) {
    +    int maxThreads = conf.getInt(UPLOAD_MAX_THREADS, DEFAULT_UPLOAD_MAX_THREADS);
    +    if (maxThreads < 2) {
    +      LOG.warn(UPLOAD_MAX_THREADS + " must be at least 2: forcing to 2.");
    +      maxThreads = 2;
    +    }
    +    long keepAliveTime = longOption(conf, KEEPALIVE_TIME,
    +            DEFAULT_KEEPALIVE_TIME, 0);
    +
    +    uploadUnboundedThreadPool = new ThreadPoolExecutor(
    +            maxThreads, Integer.MAX_VALUE,
    +            keepAliveTime, TimeUnit.SECONDS,
    +            new LinkedBlockingQueue<Runnable>(),
    +            BlockingThreadPoolExecutorService.newDaemonThreadFactory(
    +                    "s3a-upload-unbounded"));
    +
    +    TransferManagerConfiguration transferConfiguration =
    +            new TransferManagerConfiguration();
    +    transferConfiguration.setMinimumUploadPartSize(partSize);
    +    transferConfiguration.setMultipartUploadThreshold(multiPartThreshold);
    +
    +    TransferManager uploads = new TransferManager(s3, uploadUnboundedThreadPool);
    +    uploads.setConfiguration(transferConfiguration);
    +    return uploads;
    +  }
    +
    +  private TransferManager createCopyTransferManager(Configuration conf) {
    --- End diff --
    
    this is almost the same as the previous one apart from the conf fields and names; should
be a common method


> S3a rename() to copy files in a directory in parallel
> -----------------------------------------------------
>
>                 Key: HADOOP-13600
>                 URL: https://issues.apache.org/jira/browse/HADOOP-13600
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>    Affects Versions: 2.7.3
>            Reporter: Steve Loughran
>            Assignee: Sahil Takiar
>
> Currently a directory rename does a one-by-one copy, making the request O(files * data).
If the copy operations were launched in parallel, the duration of the copy may be reducable
to the duration of the longest copy. For a directory with many files, this will be significant



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org


Mime
View raw message