cache.nixos.org, now more local!
posted on July 11 2018
I’m delighted to be able to announce that users all around the world will now have a great experience when fetching from the NixOS cache.
I heard several times from users in Hong Kong and Singapore that the cache was “slow”, but I didn’t know it was this slow! After working closely with a team of Nix users in Bangalore, I experienced first-hand just how eye-wateringly slow it could be.
The NixOS cache is now being served from all of AWS CloudFront edge locations, significantly reducing latency for users in Asia, Africa, South America, and Oceania.
By expanding the cache’s distribution settings to include all of the edge locations, performance has been substantially improved build time:
Sydney | ||
---|---|---|
GHC 117.06 MiB | Before | 178.491s |
After Cold Cache | 73.612s | |
After Hot Cache | 15.707s | |
Graphical ISO closure 1,660.95 MiB | Before | 2,326.957s |
After Cold Cache | 376.014s | |
After Hot Cache | 25.328s |
Experiments in Tokyo and Hong Kong produced similar results.
NixOS’s cache is stored in AWS S3, and distributed using AWS CloudFront. This combination gives us the excellent durability guarantees of S3 combined with the large geographical distribution of CloudFront.
Until today, the NixOS cache was only served through edge nodes in the United States, Canada, and Europe.
A big thank-you to Amine Chikhaoui, and Eelco Dolstra for their help in researching this change and turning on such a massive improvement.