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
contentAddressedByDefault = true;
is very slow to start building packages, blocked on many .doi
fetches
#5367
Comments
Yes, that bit is utterly inefficient. I was kinda hoping that merely leveraging the sqlite “binary-cache cache” would be enough to make this OK, but it indeed isn’t in practice.
Yes. I don’t know whether the work of #5324 directly applies to the fetching of the doi files (but if it doesn’t, it should be extended for that).
Unfortunately that’s not really possible, both because the doi depend on each other (we can’t fetch one until we’ve resolved all of its dependencies) and because the binary cache can be (and is in most instances) a “dumb” static server |
Not directly unfortunately. Substituter querying is done ahead of the actual build in a single function specifically so it can be done efficiently in parallel, my PR merely makes the thread pool size for that configurable. But from your description it sounds like this approach is not applicable here. |
I've opened #5472 which makes this slightly better (unfortunately, it’s still far from being as fast as it sould be imho, but that was the lowest hanging fruit I could find) |
I marked this as stale due to inactivity. → More info |
#5472 (and maybe something on top of it) sped things up for me from 3-4 minutes of query time down to 7 seconds. Let's declare it good enough. |
When I change a bootstrap package (say,
bash
) it takes minutes before any package gets built. Probably due to two things:Here is my benchmark:
I would expect
bash
to start building within seconds (that's what happens incontentAddressedByDefault = false;
) case.What actually happens is a long queue of polls:
Note: each subsequent
verify TLS
/finished
takes about10ms
(it's the the distance to closest CDN for me). Beforebash
starts a build it looks likenix
fetched ~2000.doi
files. That takes about 3-4 minutes. I suspect it's a lot worse for people who are further away from cache.As I understand once
bash
is built none of them are needed anyway asnix
notices thatbash
's content would be unchanged and existing paths could be reused. But it also makes sense that some of.doi
substitutions could make need for a newbash
irrelevant.Given that we need to download so many
.doi
files it would be nice to have higher parallelism fetching those. Or maybe have a batch API to be able to query available.doi
in larger batches?CC @regnat
The text was updated successfully, but these errors were encountered: