diff options
author | n-peugnet <n.peugnet@free.fr> | 2021-11-10 17:31:21 +0100 |
---|---|---|
committer | n-peugnet <n.peugnet@free.fr> | 2021-11-10 17:31:21 +0100 |
commit | b662137a2e0829a6fb09577c82c0ecd9e51e20ea (patch) | |
tree | 5cee46a39d6f272ef5c64ca995de371437c4182f | |
parent | d613103ba1f9d04a486896a55dea1445d5d534c2 (diff) | |
download | dna-backup-b662137a2e0829a6fb09577c82c0ecd9e51e20ea.tar.gz dna-backup-b662137a2e0829a6fb09577c82c0ecd9e51e20ea.zip |
export, reorga + ajout par compression en commun
-rw-r--r-- | pdf/doc.tex | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/pdf/doc.tex b/pdf/doc.tex index 26e3253..bbae228 100644 --- a/pdf/doc.tex +++ b/pdf/doc.tex @@ -692,6 +692,17 @@ on fait démarrer ces deux segments chacun à une extrémité du DNA-Drive et on les laisse grandir l'un vers l'autre, à la manière de la \emph{pile} et du \emph{tas} d'un processus. +Contrairement à la manière dont ils sont stockés dans le repo, +lors de l'export, les chunks ne sont pas compressés indépendamment, +mais tous ensembles, par version. +De cette manière on réduit encore l'espace occupé par les chunks, +car l'algorithme de compression n'a pas à réécrire plusieurs fois son header +et peut réutiliser les motifs de répétition trouvés dans un chunk +à travers l'ensemble des chunks d'une version. +Cette technique a pour inconvénient d'avoir besoin de décompresser (et donc lire) +la totalité des chunks d'une version même si on ne veut en lire qu'un seul. + + \begin{figure}[ht] \centering @@ -734,6 +745,11 @@ De la même manière qu'il serait impossible de savoir à quel fichier appartient une donnée sans la liste de fichiers, il serait impossible sans ces informations, de savoir à quelle version et à quel segment de données appartient une track. +Le header d'une version ne comptant que trois valeurs numériques, il ne remplira jamais une track. +Pour éviter de gâcher l'espace restant des tracks de version, +DNA-Backup le remplit avec le contenu des segments de métadonnées (\verb|recipe| + \verb|files|) +jusqu'à ce qu'il soit plein ou que toutes les métadonnées aient été écrites. +S'il reste encore des métadonnées, elles sont écrites à l'endroit prévu initialement. En ce qui concerne les métadonnées du repo, un \emph{superblock} serait ajouté dans la toute première track du premier pool. @@ -741,12 +757,6 @@ Celui-ci contiendrait les valeurs des paramètres de DNA-Backup, à savoir principalement la taille des chunks, mais aussi les paramètres de la fonction de sketch, l'algorithme utilisé pour la compression utilisé, celui pour les deltas,~etc. -Le header d'une version ne comptant que trois valeurs numériques, il ne remplira jamais une track. -Pour éviter de gâcher l'espace restant des tracks de version, -DNA-Backup le remplit avec le contenu des segments de métadonnées (\verb|recipe| + \verb|files|) -jusqu'à ce qu'il soit plein ou que toutes les métadonnées aient été écrites. -S'il reste encore des métadonnées, elles sont écrites à l'endroit prévu initialement. - L'export est actuellement réalisé dans un dossier, dans lequel 96~fichiers représentant chacun un pool sont créés et remplis avec les données du repo. Les écritures sont alignées sur la taille du track, laquelle est configurable. |