It seems like Nix's current strategy for finding if things are in the cache is to fire off hundreds of HTTP requests asking for each hash. What if binary caches could hand out periodically updated bloom filters of their contents? Clients would fetch them every so often and query the bloom filter before hitting the cache. False positives could result in the occasional unnecessary HTTP request, but otherwise it seems like it could be helpful.
Or is the blast of HTTP requests for binary cache presence really not that bad? My understanding is that Nix first queries the cache to see if a hash is there, then separately requests the full nar if it is there.
It seems like Nix's current strategy for finding if things are in the cache is to fire off hundreds of HTTP requests asking for each hash. What if binary caches could hand out periodically updated bloom filters of their contents? Clients would fetch them every so often and query the bloom filter before hitting the cache. False positives could result in the occasional unnecessary HTTP request, but otherwise it seems like it could be helpful.
Or is the blast of HTTP requests for binary cache presence really not that bad? My understanding is that Nix first queries the cache to see if a hash is there, then separately requests the full nar if it is there.