Aller au contenu

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.