diff options
-rw-r--r-- | README.md | 52 | ||||
-rw-r--r-- | TODO.md | 4 | ||||
-rw-r--r-- | exp/.gitignore | 1 | ||||
-rw-r--r-- | exp/README.md | 14 | ||||
-rwxr-xr-x | exp/exp.sh | 5 |
5 files changed, 74 insertions, 2 deletions
@@ -75,7 +75,7 @@ On imagine le _DNA-Drive_ comme un segment de _pools_ : (recipe+files) ``` -### Commit algorithme +### Algorithme du commit 1. Chargement des métadonnées du _repo_ afin de reconstruire en mémoire l'état de la dernière version : @@ -102,7 +102,7 @@ On imagine le _DNA-Drive_ comme un segment de _pools_ : 6. Calcul des différences entre la nouvelle version et la précédente pour les métadonnées (_files_ et _recipe_) et stockage des deltas ainsi obtenus. -### Restore algorithme +### Algorithme du restore 1. Chargement des métadonnées du _repo_ afin de reconstruire en mémoire l'état de la dernière version : @@ -139,6 +139,54 @@ Pour cela, il faudrait en plus stocker en ADN un mapping _chunk_ décompressé â _pool_ contenant ce _chunk_ et ainsi n'avoir à lire que les _pools_ contenant des _chunks_ de ce fichier. +### Évaluation de performances + +Le dossier `exp` contient les scripts permettant de reproduire les expériences. +Les scripts ne sont prévus pour fonctionner que sur des systèmes Unix. + +#### Légende + +`backups` : le système dna-backup +`diffs` : des diffs git minimales gzippées + +### Nombre d'octets par version + +``` +============== SUMMARY ============== +backup diffs +19552 1451 +3365 638 +3557 4737 +3779 7321 +6208 2665 +6826 1496 +3655 11129 +9953 6004 +7825 2815 +3009 7551 +9052 5804 +9415 2449 +10386 3397 +7536 2143 +8521 13301 +12488 3274 +13314 2162 +13476 9681 +30227 4631 +18880 10147 +27057 4983 +23634 11488 +26857 867 +30352 1768 +20086 4373 +23713 9698 +12258 869 +5255 4188 +16356 23257 +============== TOTAL ============== +386592 164287 +``` + <!-- LTeX: language=en --> ## Build instructions @@ -18,6 +18,10 @@ priority 1 - [ ] **TODO: Priority 3** add superblock logic. - [ ] **TODO: Priority 2** add version blocks or journal logic. - [x] command line with subcommands (like, hmm... git ? for instance). +- experiences: + - [ ] compare against UDF + - [ ] make multiple repo versions with multiple parameters + - smaller block size priority 2 ---------- diff --git a/exp/.gitignore b/exp/.gitignore index a29a67a..8267a55 100644 --- a/exp/.gitignore +++ b/exp/.gitignore @@ -2,3 +2,4 @@ !.gitignore !exp.sh !Makefile +!README.md diff --git a/exp/README.md b/exp/README.md new file mode 100644 index 0000000..21ae41f --- /dev/null +++ b/exp/README.md @@ -0,0 +1,14 @@ +# Performance evaluation experiences + +## Help + +```bash +# run experiences +make [MAX_VERSION=<count>] + +# clean results +make mostlyclean + +# clean all +make clean +``` @@ -17,8 +17,13 @@ cat "$commits" | while read line do hash=$(echo "$line" | cut -f1) git -C "$repo" checkout "$hash" + + # create diff for this version git -C "$repo" diff --minimal --binary --unified=0 "$prev" | gzip > "$diffs/$i.diff.gz" + + # create backup for this version ../dna-backup commit -v 2 "$repo" "$backup" + prev="$hash" let i++ if [[ $i == $max_count ]] |