Je n'ai pas le détail de fonctionnement des serveurs de Google, mais oui, dans une fonctionnement d'une messagerie chez au moins un grand opérateur, on ne recompresse pas tout à chaque modification. Ça génère de la latence et ça crame du CPU pour rien. Je ne vois pas quoi se lancerait là dedans, le stockage coûte bien moins cher que le CPU.
On peut envisager un mécanisme de compression (et de déduplication) des messages, mais toujours au niveau du message, jamais à l'échelle de la boite entière. Les systèmes de fichier qui font de la compression font pareil.
Il y a 40 ans, effectivement, on enregistrait les messages d'un utilisateur tous à la suite dans un fichier (format mbox) et pour supprimer un message, il faut ré-écrire toute la suite. Mais ce n'est pas envisageable pour de l'hébergement en masse, la purge d'un vieux message dans une grosse boite entraînerait de grosses latences.
Les messages sont indexés (d'une façon générale, dans un fichier d'index, dans une base de donnée, dans un filesystem ou par tout autre mécanisme) et lorsqu'on supprime un message, on se contente de l'oublier ou même juste de le marquer comme tel.
Selon le mécanisme, il peut y avoir des mécanismes de récupération de l'espace (le garbage collector, le vacuum, la ré-indexation...) mais dont le coût est sans commune mesure avec la re-compression de toute une boite aux lettres.
[^] # Re: the shift == megabullshit
Posté par Sébastien Koechlin . En réponse au journal Les vidéos de Devoxx fr sont disponibles. Évalué à 8.
Je n'ai pas le détail de fonctionnement des serveurs de Google, mais oui, dans une fonctionnement d'une messagerie chez au moins un grand opérateur, on ne recompresse pas tout à chaque modification. Ça génère de la latence et ça crame du CPU pour rien. Je ne vois pas quoi se lancerait là dedans, le stockage coûte bien moins cher que le CPU.
On peut envisager un mécanisme de compression (et de déduplication) des messages, mais toujours au niveau du message, jamais à l'échelle de la boite entière. Les systèmes de fichier qui font de la compression font pareil.
Il y a 40 ans, effectivement, on enregistrait les messages d'un utilisateur tous à la suite dans un fichier (format mbox) et pour supprimer un message, il faut ré-écrire toute la suite. Mais ce n'est pas envisageable pour de l'hébergement en masse, la purge d'un vieux message dans une grosse boite entraînerait de grosses latences.
Les messages sont indexés (d'une façon générale, dans un fichier d'index, dans une base de donnée, dans un filesystem ou par tout autre mécanisme) et lorsqu'on supprime un message, on se contente de l'oublier ou même juste de le marquer comme tel.
Selon le mécanisme, il peut y avoir des mécanismes de récupération de l'espace (le garbage collector, le vacuum, la ré-indexation...) mais dont le coût est sans commune mesure avec la re-compression de toute une boite aux lettres.