ingénierie
Construire un cache CI qui ne limite pas
Comment nous servons les restaurations de cache à 1 Go/s et pourquoi la bande passante est plus importante que la capacité.
{auteur} · {rôle} · 2026-04-23 · 9 min de lecture
Les discussions sur le cache se concentrent sur la capacité : le plafond de 10 Go, la politique d'expulsion et le taux de réussite. Dans la pratique, la bande passante est une contrainte que les gens ressentent et qu’ils nomment rarement.
Pourquoi la vitesse de restauration domine
Une entrée de cache n'est utile que si sa restauration est plus rapide que sa recréation. À un taux de transfert suffisamment bas, chaque cache devient une perte nette et il affichera un taux de réussite parfait à tout moment.
Ce que nous avons construit
- Cache stocké sur NVMe dans la même zone de disponibilité que le pool d'exécution
- Morceaux adressés par le contenu afin que les parties inchangées ne soient pas retransférées
- compression zstd, choisie pour la vitesse de décompression plutôt que pour le rapport
- Récupération de morceaux parallèles saturant le lien plutôt qu'un seul flux
Le résultat est une restauration soutenue d’environ 1 Go/s. Cela change les choses qui valent la peine d'être mises en cache - à ce rythme, la mise en cache d'un répertoire de chaîne d'outils de 6 Go devient évidemment correcte plutôt que marginale.
Votre prochain build pourrait être deux fois plus rapide, pour moitié prix
Commencez gratuitement. Repartir tient à la même ligne, et nous publions ce diff aussi.