Two ideas pop into my head about how it might be possible for clients to reduce the load placed on the caching servers:
if every cache server published a periodically-updating bloom filter of all the derivation hashes it contains, you could query that locally to avoid sending any traffic to all but one of the cache servers. You'd still have to query all of them in the event that none of your local bloom filters says the server has the file you need. You could just update the bloom filter for each server in the background occasionally and implement etags for it so you'll get 304 responses for most requests.
silly option: take all the inputs to each derivation and train a very small neural network to guess which server is most likely to have each derivation.
I made the age old mistake of writing and publishing the post after midnight with insufficient caffeine in my system. The link has been fixed, though, I have no idea why Github didn't (and still doesn't) redirect it properly...
there should exist MassQuery / want-mass-query, which i think is meant to collapse this into one request per substituter so long as you aren't using IFD, but I can't find where it's actually implemented, so don't know the details
0x2ba22e11 | 11 hours ago
Two ideas pop into my head about how it might be possible for clients to reduce the load placed on the caching servers:
if every cache server published a periodically-updating bloom filter of all the derivation hashes it contains, you could query that locally to avoid sending any traffic to all but one of the cache servers. You'd still have to query all of them in the event that none of your local bloom filters says the server has the file you need. You could just update the bloom filter for each server in the background occasionally and implement etags for it so you'll get 304 responses for most requests.
silly option: take all the inputs to each derivation and train a very small neural network to guess which server is most likely to have each derivation.
stapelberg | a day ago
https://github.com/notashelf/ncro is a 404? No longer online / not yet?
polywolf | a day ago
Seems like the correct repository URL is https://github.com/feel-co/ncro now (found via "architecture diagram" link)
notashelf | a day ago
notashelf | 9 hours ago
I made the age old mistake of writing and publishing the post after midnight with insufficient caffeine in my system. The link has been fixed, though, I have no idea why Github didn't (and still doesn't) redirect it properly...
ariaaaa | 8 hours ago
there should exist
MassQuery/want-mass-query, which i think is meant to collapse this into one request per substituter so long as you aren't using IFD, but I can't find where it's actually implemented, so don't know the detailsmight run this in my homelab, thanks