lagori | Voir ce message dans le sujet non filtré Bonjour et merci à l'initiateur du topic ainsi qu'aux différents participants.
Je n'ai pas encore tout lu (je ne fais que commencer), toutefois j'aurais une question :
Kortex@HFR a écrit :
- garbage collector : dixit HFR himself, c'est un mécanisme visant à réorganiser la table d’allocation à la volée, ce qui permet de conserver un bon niveau lors d’écritures séquentielles sur une zone précédemment écrite de manière aléatoire.
|
Sur la page Wikipédia consacrée à l'amplification d'écriture, le garbage collection est définit comme suit :
Citation :
If the data in some of the pages of the block are no longer needed (also called stale pages), only the pages with good data in that block are read and re-written into another previously erased empty block. Then the free pages left by not moving the stale data are available for new data. This is a process called garbage collection (GC).
|
En illustration on voit un diagramme divisé en 3 étapes, montrant respectivement :
- un bloc X constitué de 16 pages dont 4 pages de données A, B, C, D + un bloc Y vide.
- le même bloc X après que l'on ait écrit 4 nouvelles pages E, F, G, H ainsi que 4 pages A', B', C', D' versions modifiées des pages A, B, C, D. Ces dernières ne sont pas effacées mais les données qu'elles contiennent ne sont plus valides. X est donc plein, plus aucune page ne peut être écrite + le bloc Y toujours vide.
- le bloc Y dans lequel seules les pages valides du bloc X ont été écrites, soit A', B', C', D' et E, F, G, H, ainsi que le bloc X totalement effacé. Y, contrairement à X dans l'étape précédente, contient encore 4 pages libres (puisque les données non valides A, B, C, D n'ont pas été copiées).
Certes tout ce processus (celui décrit dans la 3e étape pour être précis) induit probablement une réorganisation de la table d'allocation mais son but premier n'est pas celui-ci mais plutôt de libérer de l'espace mémoire (en l'occurrence des pages stockant des données qui ne sont plus valides car elles ont été modifiées dans le système de fichiers), non ?
Le lien externe sur lequel s'appuie ce passage est ce pdf dans lequel on peut lire entre autre :
Citation :
Garbage collection is the process of freeing up partially valid blocks to make room for more data. This must be done
with all drives at some point after the equivalent of their capacity has been written to the drive.. When new data
needs to be written, there will be a consolidation process that frees up space. When this begins to occur, it slows
down the writes. This is because the drive has to wait for space to clear before data can be written. This is the typical
cause of write performance degradation as a drive is used.
|
Là encore, pour définir le garbage collection l'accent n'est pas mis sur une réorganisation de la table d'allocation, qui a sans doute lieu, mais sur la libération d'espace mémoire.
De plus ils ne parlent pas d'améliorer les performances d'écritures séquentielles sur une zone précédemment écrite de manière aléatoire, ils disent qu'à un moment, après avoir écrit une quantité de données équivalente à la taille du SSD, un processus qu'ils qualifient de "consolidation" a lieu (le garbage collection) qui va libérer de l'espace comme décrit dans le précédent diagramme afin de faire de la place pour plus de données.
D'où mes questions, est-ce une erreur de Wikipédia et de sa source ? Ai-je mal interprété ces paragraphes ? Ou s'agit-il plus simplement de 2 définitions complémentaires ?
Merci d'avance pour vos éclaircissements. Message édité par lagori le 22-12-2011 à 20:54:43
|