Snappy 1.2 : la bibliotheque de compression de Google, un monstre de debit a 250MB par seconde
Résumé
Snappy ne court pas apres la plus petite sortie mais apres la vitesse: plus de 250MB par seconde en compression et plus de 500MB par seconde en decompression sur un coeur ordinaire, au prix d'une sortie vingt pour cent a deux fois plus grosse. Cet echange explique sa place sous les bases de donnees, les grands systemes de donnees et les conduites de journaux.
Recommander- Nom
- Snappy
- Version
- 1.2.2
- Open source
- Open source
- Système
- WindowsmacOSLinux
- Mis à jour
- 2026-10-05 09:46
Ce qu'il vise n'est pas le plus petit fichier mais une vitesse deraisonnable
La compression suppose generalement un echange: plus la sortie est petite, plus le travail est grand. Snappy, la bibliotheque libre publiee par Google sous une licence de style BSD, prend deliberement le chemin inverse. Elle ne court pas apres le meilleur taux de compression, elle court apres un debit presque deraisonnable: sur un seul coeur d'un processeur de bureau ordinaire, elle compresse a plus de 250MB par seconde et decompresse a plus de 500MB par seconde, soit environ un ordre de grandeur plus vite que le mode le plus rapide d'une bibliotheque classique, au prix d'une sortie vingt pour cent a deux fois plus grosse. Cet echange la fait briller partout ou la compression ne doit pas ralentir l'activite: stockage de bases de donnees, grands systemes de donnees, conduites de journaux, et la couche de compression sous un bon nombre de systemes distribues connus. En septembre 2026, elle en est a 1.2.2.
D'ou vient la vitesse
La vitesse n'est pas le produit d'une magie d'assembleur ecrite a la main, mais de deux echanges deliberes, l'un dans l'algorithme et l'autre dans la mise en oeuvre. La strategie de compression est simple et directe: elle ne cherche des fragments repetes que dans les donnees voisines, ce qui evite le cout de calcul d'une modelisation compliquee. La mise en oeuvre, elle, est optimisee a fond pour les processeurs 64 bits courants et traite davantage de donnees par operation. Atteindre un haut debit sans une ligne d'assembleur signifie aussi que portabilite et maintenabilite sont preservees, ce qui explique la stabilite du comportement d'une plateforme a l'autre. Un outil de mesure accompagne le projet: un passage sur vos propres donnees avant de l'integrer dit quelle vitesse et quel taux attendre.
Une stabilite gagnee en production
La fiabilite a un vrai passe derriere elle: depuis des annees, la bibliotheque compresse chez Google des donnees a l'echelle du petaoctet, le format de flux de bits est reste stable, et la compatibilite entre versions n'est pas quelque chose dont les utilisateurs doivent craindre la rupture. Le decompresseur est construit avec soin et ne s'effondre pas meme face a une entree abimee ou volontairement malformee, ce qui compte beaucoup pour un service qui traite des donnees auxquelles il ne peut pas se fier. La bibliotheque est libre sous une licence de style BSD, l'usage commercial ne coute donc rien; elle est ecrite en C++ et expose une interface C, et des liaisons tierces matures existent pour la plupart des langages, si bien que l'ajout a un projet n'est pas difficile.
Qui l'utilise, et pourquoi celle-la
Elle apparait comme choix de compression par defaut ou optionnel dans un bon nombre de bases de donnees et de composants de donnees massives: les moteurs de stockage en colonnes l'appliquent aux blocs de donnees, les systemes de messagerie au trafic reseau, les stockages embarques aux fichiers ecrits sur disque. Ce que ces systemes partagent, c'est une lecture et une ecriture frequentes et une sensibilite a la latence, ou chaque milliseconde passee a compresser est amplifiee en probleme de performance; c'est cette exigence d'une compression qui soit aussi rapide qui a faconne la conception. Pour un developpeur isole qui ajoute une couche de compression a un projet de stockage, a un outil de journal ou a un protocole reseau, c'est aussi le choix dont l'entree coute le moins et dont la documentation est la plus claire, source et notes de format etant publiques.
Quand la prendre, et quand non
L'epreuve est simple. La ou le volume est grand, ou le debit fait mal et ou le cout de stockage reste acceptable, elle fait partie des meilleures reponses, avec des taux typiques autour de 1,5 a 1,7 pour du texte et de 2 a 4 pour des contenus de type web; des donnees deja compressees, images et video, ne sont pas retraitees. La ou l'objectif est au contraire la plus petite taille possible, comme en archivage ou sur une bande passante chere, c'est un algorithme a taux plus eleve qu'il faut choisir. Les dependances de construction sont assez simples pour une chaine d'outils standard, et le projet livre des outils de mesure et de correction, ce qui rend le reglage et la verification commodes. Pour une equipe qui construit son propre chemin de stockage et de transport, cette petite bibliotheque assez dure vaut une place.