https://kotlinlang.org logo
#graviton-browser
Title
# graviton-browser
m

mikehearn

04/03/2018, 9:37 AM
i'm not sure pipelining will help that much. to know what the next dependency set to fetch is, you have to wait for the first one. so you're exploring the graph and each level adds another round-trip
o

orangy

04/03/2018, 9:58 AM
Not really, first pom you get gives you a number of next level poms, which you can pipeline.
m

mikehearn

04/03/2018, 10:18 AM
right. i wonder to what extent aether is thread-bottlenecked. i had a quick rummage to try and figure out how much parallelism it was using but no luck. it looks like it's doing at least some downloads in parallel but the question is, how many
o

orangy

04/03/2018, 10:21 AM
Pipelining is not about parallelism… It’s when you sent N http requests to the same keep-alive connection without waiting for a response, and then receive responses (in the same order). It very much reduces effect of latency.
Especially for many small files
Basically, if you resolve POMs one by one as you discover, you pay latency N (number of poms) times, and if you pipeline, it’s only ~ log N (in fact tree depth)
m

mikehearn

04/03/2018, 10:41 AM
yes i know. but if you have 10 files and you know their URLs, you can also open 10 connections and make non pipelined requests.
i'm assuming that's what aether is doing, but i'm not sure.
you're totally right though that it's the lowest hanging fruit for latency optimisations
5 Views