SanbilaSanbila
Glossaire

Cache LRU

Le caching LRU (Least Recently Used) est une des techniques les plus anciennes en informatique. Quand un nouvel élément doit être stocké mais que le cache est plein, l'élément accédé le plus longtemps auparavant est retiré. Résultat : les éléments fréquents restent en cache, les éléments froids partent tout seuls.

Sous le capot, un cache LRU suit l'ordre dans lequel les éléments ont été touchés pour la dernière fois. Chaque lecture ou écriture déplace l'élément en tête d'une liste de récence ; quand il faut de la place, l'élément en queue, celui resté intact le plus longtemps, est retiré. Une bonne implémentation fait cela en temps constant avec une table de hachage et une liste chaînée, donc suivre la récence n'ajoute aucun surcoût réel. LRU est une politique parmi d'autres : LFU évince le moins fréquemment utilisé, FIFO évince le plus anciennement écrit quel que soit l'usage, et chacune convient à un motif d'accès différent. LRU gagne quand l'usage récent prédit l'usage proche, exactement la façon dont un monteur revient aux mêmes plans au fil d'une session.

Pour les monteurs vidéo, LRU veut dire que votre cache ne se remplit jamais manuellement et ne bloque pas. Vous fixez un budget (par exemple 50 Go), et le système gère le nettoyage. Les éléments épinglés sont exclus de l'éviction, donc les fichiers critiques peuvent être protégés manuellement.

Ce qui rend LRU idéal ici, c'est que l'éviction est bon marché et totalement réversible. Les proxys sur votre SSD sont des copies jetables ; les originaux de référence vivent dans le cloud. Donc quand le cache évince un proxy que vous n'avez pas touché depuis des semaines, rien n'est perdu : dès que vous rouvrez ce projet, le proxy est régénéré ou l'original streamé à la demande. Ce filet de sécurité explique qu'un cache automatique et agressif marche pour le montage : vous avez la vitesse du média local sans jamais surveiller l'espace disque ni craindre une perte de données.

Exemples

  • •Fixez un budget cache de 100 Go, les plus vieux proxys non utilisés sont retirés à l'approche de la limite
  • •Épinglez le projet client en cours pour que ses proxys ne soient jamais évincés
  • •Déclenchez un nettoyage manuel pour libérer de l'espace immédiatement sans attendre l'éviction auto

Dans Sanbila

Le cache SSD local de Sanbila tourne en LRU avec taille configurable de 5 Go à 500 Go. Les projets épinglés sont protégés. Les originaux restent dans le cloud, donc un proxy évincé se re-streame à la demande.

Questions fréquentes

En quoi LRU diffère-t-il des autres politiques d'éviction ?+

LRU évince ce qui a été utilisé le moins récemment, en pariant que l'usage récent prédit l'usage futur. LFU (le moins fréquemment utilisé) compte plutôt combien de fois chaque élément est touché et garde les populaires, tandis que FIFO retire simplement le plus anciennement écrit quel que soit l'usage. Pour le montage, LRU convient le mieux : vous revenez sans cesse aux plans touchés dans la session, donc la récence est un bon indicateur de ce dont vous aurez besoin ensuite.

LRU va-t-il supprimer un proxy dont j'ai encore besoin ?+

Seulement un que vous n'avez pas touché depuis longtemps, et même là rien n'est réellement perdu. Les proxys évincés ne sont que des copies locales ; l'original reste en sécurité dans le cloud, donc rouvrir le projet régénère le proxy ou streame l'original à la demande. Et vous pouvez épingler un projet pour exclure totalement ses proxys de l'éviction pendant que vous travaillez dessus.

Comment Sanbila utilise-t-il un cache LRU ?+

Le cache SSD local de Sanbila applique une politique LRU avec un budget de taille que vous définissez (de quelques Go à plusieurs centaines). À l'approche de la limite, les proxys non épinglés les moins récemment utilisés sont effacés automatiquement, et vous pouvez aussi déclencher un nettoyage manuel. Comme les originaux restent dans le cloud, tout proxy évincé est re-streamé ou reconstruit à la demande, donc le cache reste rapide et auto-géré.

Termes liés

Sources

Écrit par Lassana Toure, fondateur de Sanbila.

Dernière mise à jour :