aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md52
-rw-r--r--TODO.md4
-rw-r--r--exp/.gitignore1
-rw-r--r--exp/README.md14
-rwxr-xr-xexp/exp.sh5
5 files changed, 74 insertions, 2 deletions
diff --git a/README.md b/README.md
index 42c5348..e43c327 100644
--- a/README.md
+++ b/README.md
@@ -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
diff --git a/TODO.md b/TODO.md
index 0e31070..2ee7c6f 100644
--- a/TODO.md
+++ b/TODO.md
@@ -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
+```
diff --git a/exp/exp.sh b/exp/exp.sh
index 0213b2f..c031b94 100755
--- a/exp/exp.sh
+++ b/exp/exp.sh
@@ -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 ]]