Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallelize download of dependencies #28893

Closed
LouisCAD opened this issue Apr 20, 2024 · 2 comments
Closed

Parallelize download of dependencies #28893

LouisCAD opened this issue Apr 20, 2024 · 2 comments
Labels
a:feature A new functionality closed:missing-feedback Feedback was requested but not provided in time

Comments

@LouisCAD
Copy link
Contributor

Expected Behavior

All dependencies are downloaded in parallel, as much as my connection can handle (possibly with a way to define a cap at maximum parallel connections for when using a constrained connection).

They are all available within a few seconds thanks to my 1GBps optic fiber connection, or in a few seconds thanks to LTE/5G, whatever.

Current Behavior (optional)

All dependencies are downloaded sequentially, wasting developer time, and CI time.

Context

I was updating a bunch of dependencies, and Gradle sync took more than 2 minutes, on a powerful computer, with a powerful connection.

Screenshot 2024-04-20 at 02 21 46

That's barely 1MB/s, or 8Mbps, when my connection could do hundreds of time more! Optic fibers and Maven repos can handle parallel connections! 469 requests is very little per today standards.

I think we can do better in 2024 :)

We have coroutines in Kotlin, we have async APIs, we have project Loom in Java, with have 10 CPU cores in many laptops, we have high bandwidth, SSDs…
Those can handle Billions of things every second if used right.

That's all I had to say.
Thank you and have a great day!
Belle journée :)

Louis CAD

@LouisCAD LouisCAD added a:feature A new functionality to-triage labels Apr 20, 2024
@ov7a
Copy link
Member

ov7a commented Apr 22, 2024

We have many layers of parallelism around dependency resolution. One current limitation is the configuration phase, where we resolve configurations one by one with a parallelism for downloads.
This will be addressed by Isolated Projects.

Can you provide a small reproducer with a build scan that showcases your scenario/build setup, please?

@ov7a ov7a added the pending:feedback Indicates that changes or additional info are required, and the issue will be closed without them label Apr 22, 2024
Copy link

While we asked for feedback, none was provided. If you provide the requested feedback, we will consider this issue again. In the meantime, closing as missing feedback.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Apr 29, 2024
@github-actions github-actions bot added closed:missing-feedback Feedback was requested but not provided in time and removed to-triage pending:feedback Indicates that changes or additional info are required, and the issue will be closed without them labels Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:feature A new functionality closed:missing-feedback Feedback was requested but not provided in time
Projects
None yet
Development

No branches or pull requests

2 participants