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

ASF GitHub Bot commented on MRESOLVER-7:
----------------------------------------

cstamas commented on code in PR #178:
URL: https://github.com/apache/maven-resolver/pull/178#discussion_r983504722


##########
maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/bf/BfDependencyCollector.java:
##########
@@ -365,6 +477,64 @@ else if ( descriptorResult == DataPool.NO_DESCRIPTOR )
         return descriptorResult;
     }
 
+    static class ParallelDescriptorResolver
+    {
+        final ExecutorService executorService;

Review Comment:
   the executor exists in connector, this is impl module, connector does not 
depend on impl nor impl depend on connector, see 
https://maven.apache.org/resolver/index.html
   
   Now, not only that, but also it is quite possible that execution does not 
"even get to" connector (ie. all is present locally), so this would require 
major undertake, probably to move executor providing component to SPI (as util 
is not quite the place for this), then change both uses (so BF collector and 
connector), but in connector module we'd need to provide some "stub" 
implementation (as again, it does not depend on impl), and finally that would 
become one whole.
   
   Am currently totally not concerned about sharing executor, but more that 
executor is created per invocation of collect merhd...





> Download dependency POMs in parallel
> ------------------------------------
>
>                 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: Tamás Cservenák
>            Priority: Major
>             Fix For: resolver-next
>
>         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