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

Tamas Cservenak commented on MRESOLVER-7:
-----------------------------------------

Also, have to remark that in case of collection "POM downloads" happens in two 
distinct cases (but interleaved during collection):
 * a) when downloading the dependency POM (for example D depends on D1, D2, D3, 
then corresponding D1.pom, D2.pom, D3.pom will be downloaded) – these can and 
are downloaded in parallel with provided PR for BF collector.
 * b) but, when D1.pom is being built (in model builder), and IF D1.pom has 
D1-parent.pom, amd parent has D1-parent-parent.pom (and so on, but similar for 
POM  imports, etc), these are still sequentially downloaded, as model bullder 
processes/builds the D1.pom. Model builder was not altered by PR.

The PR implements case a) in BF collector only. DF collector and model builder 
is unchanged.

> Download dependency POMs in parallel in BF collector
> ----------------------------------------------------
>
>                 Key: MRESOLVER-7
>                 URL: https://issues.apache.org/jira/browse/MRESOLVER-7
>             Project: Maven Resolver
>          Issue Type: Improvement
>          Components: Resolver
>    Affects Versions: Aether 1.0.2
>            Reporter: Harald Wellmann
>            Assignee: Tamas Cservenak
>            Priority: Major
>             Fix For: 1.9.0
>
>         Attachments: resolve_deps.png, resolver.log
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> h3. Background
> When building a project with dependencies not yet available in the local 
> repository, I noticed that Maven 3.3.9/Aether 1.0.2 first downloads the 
> dependency POMs _sequentially_ and then proceeds downloading the dependency 
> JARs with up to 5 threads _in parallel_.
> Due to this, when first building a project with a large number of 
> dependencies, downloading a large number of small POMs may take a lot longer 
> than downloading the much larger JARs, or even longer than building the 
> project itself, especially when a repository manager is used which increases 
> the download latency.
> h3. Enhancement
> Download POMs of (transitive) dependencies in parallel to significantly speed 
> up initial builds of large projects.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to