From b662137a2e0829a6fb09577c82c0ecd9e51e20ea Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Wed, 10 Nov 2021 17:31:21 +0100 Subject: export, reorga + ajout par compression en commun --- pdf/doc.tex | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'pdf') 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. -- cgit v1.2.3