From b252faea132e42ebffa86104d4969a4ec7822a3c Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Mon, 25 Oct 2021 18:51:01 +0200 Subject: start redaction of intro + add biblio had too update some .gitignore and Makefiles --- .gitignore | 1 + TODO.md | 3 ++- pdf/.gitignore | 2 ++ pdf/Makefile | 10 ++++------ pdf/doc.bib | 28 +++++++++++++++++++++++++++ pdf/doc.tex | 60 +++++++++++++++++++++++++++++++++++++++++++--------------- 6 files changed, 82 insertions(+), 22 deletions(-) create mode 100644 pdf/doc.bib diff --git a/.gitignore b/.gitignore index d840683..aebb6a3 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ dna-backup ## IDE files .vscode +.*.swp .*~ diff --git a/TODO.md b/TODO.md index 6369fa3..a4d9a0d 100644 --- a/TODO.md +++ b/TODO.md @@ -19,8 +19,9 @@ priority 1 CR-ROM) (we used git storage for an approximation) - [x] make multiple repo versions with multiple parameters - smaller block size - - [ ] use export in bench to compare the performance when all chunks are + - [x] use export in bench to compare the performance when all chunks are compressed at once. + - [ ] also align other candidate to track size. - [ ] `init` command to initialize repo - [ ] remove `chunkSize` parameter from all commands, keep it only on `init` - [ ] `init` would save the important parameters of the repo, such as: diff --git a/pdf/.gitignore b/pdf/.gitignore index ea850a7..49e4738 100644 --- a/pdf/.gitignore +++ b/pdf/.gitignore @@ -1,5 +1,7 @@ # Latex files *.aux +*.bbl +*.blg *.fdb_latexmk *.fls *.out diff --git a/pdf/Makefile b/pdf/Makefile index 72c81fe..1472f07 100644 --- a/pdf/Makefile +++ b/pdf/Makefile @@ -1,22 +1,20 @@ FILES = doc -TEX = $(FILES:%=%.tex) PDF = $(FILES:%=%.pdf) # Debug flags -ifdef DEBUG -LATEXMK_FLAGS += -verbose -else +ifndef DEBUG LATEXMK_FLAGS += -quiet endif all pdf: $(PDF) -%.pdf: %.tex assets/*.tex +.SECONDEXPANSION: +%.pdf: %.tex $$(wildcard $$*.bib) assets/*.tex latexmk $(LATEXMK_FLAGS) -pdf -f $< mostlyclean: latexmk $(LATEXMK_FLAGS) -c - rm -f $(FILES:%=%.synctex.*) + rm -f $(FILES:%=%.synctex.*) $(FILES:%=%.bbl) rm -f assets/*.aux clean: mostlyclean diff --git a/pdf/doc.bib b/pdf/doc.bib new file mode 100644 index 0000000..36883f5 --- /dev/null +++ b/pdf/doc.bib @@ -0,0 +1,28 @@ +@inproceedings{pease2010linear, + title={The linear tape file system}, + author={Pease, David and Amir, Arnon and Real, Lucas Villa and Biskeborn, Brian and Richmond, Michael and Abe, Atsushi}, + booktitle={2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST)}, + pages={1--8}, + year={2010}, + organization={IEEE} +} + +@misc{optical2003universal, + title={Universal Disk Format Specification, Revision 2.50}, + author={Optical Storage Technology Association and others}, + year={2003}, + publisher={Apr} +} + +# the main article +@article{shilane2012wan, + title={WAN-optimized replication of backup datasets using stream-informed delta compression}, + author={Shilane, Phlip and Huang, Mark and Wallace, Grant and Hsu, Windsor}, + journal={ACM Transactions on Storage (ToS)}, + volume={8}, + number={4}, + pages={1--26}, + year={2012}, + publisher={ACM New York, NY, USA} +} + diff --git a/pdf/doc.tex b/pdf/doc.tex index e7d1831..938cc1f 100644 --- a/pdf/doc.tex +++ b/pdf/doc.tex @@ -7,7 +7,7 @@ \usepackage[french]{babel} % latex rules for french words \usepackage[utf8]{inputenc} % UTF-8 encoding for special chars \usepackage[T1]{fontenc} % T1 font for smooth render of special chars -\DeclareUnicodeCharacter{202F}{~} +\DeclareUnicodeCharacter{202F}{\thinspace} % Define some colors \usepackage{color} @@ -34,6 +34,9 @@ \usepackage[hyphens]{url} \usepackage[hidelinks]{hyperref} +% Bibliography +\usepackage[nottoc]{tocbibind} % add link to table of contents + % Graphics \usepackage{graphicx} % images and figures \graphicspath{ {assets} } % path containing images @@ -66,16 +69,39 @@ \tableofcontents -\section{Situation} +\section{Introduction} + +\subsection{Situation} + +Il existe un certain nombre de techniques permettant de stocker des données arbitraires via des molécules d'ADN. +Différents encodages et techniques de conservation sont utilisés, mais elles ont en commun quelques spécificités : + +\begin{enumerate} + \item Elles ne permettent pas de supprimer des données une fois écrites. + \item Les lectures sont lentes et coûteuses. + \item Les écritures le sont encore plus. +\end{enumerate} + +\subsection{Problématique} -Le DNA-drive et les techniques de stockages sur ADN dans leur ensemble ne permettent pas de supprimer des données une fois écrites. +Une des fonctionnalités que le système devait supporter était la possibilité de mettre à jour des fichiers déjà écrits. +Or le médium de stockage utilisé ne permet ni de supprimer des données écrites, ni même de les modifier. +Cette problématique se retrouve sur d'autres médiums de stockages, comme par exemple les bandes magnétiques ou les disques optiques. +Elle est résolue par leur système de fichiers respectif, LTFS \cite{pease2010linear} pour les bandes magnétiques et UDF \cite{optical2003universal} pour les CDs et DVD non-RW. +Dans les deux cas le système est basé sur la réécriture complète des blocs modifiés des fichiers ainsi que de l'index dans le cas de LFTS ou de la Virtual Allocation Table dans le cas d'UDF. -Les lectures sont lentes et coûteuse, mais les écritures le sont encore plus. +% ajouter un § par rapport aux coùt des écritures -\section{Problématique} -\section{Réponse} +La difficulté principale était donc de réussir à implémenter cette fonctionnalité sur un médium de stockage qui n'a pas la capacité de modifier les données existantes, tout en limitant les écritures au strict nécessaire. -\subsection{Présentation générale} + +\subsection{Réponse} + + + +La solution proposée se base sur une technique de \cite{shilane2012wan}. + +\section{Présentation générale} Le système part du principe qu'on a une copie des données stockées en @@ -170,11 +196,11 @@ On imagine le \emph{DNA-Drive} comme un segment de \emph{pools} (Figure \ref{fig Box/.style={draw, minimum width=2em, minimum height=2em, outer sep=0, on chain}, Brace/.style={decorate,decoration={brace, amplitude=1em, raise=.5em, mirror}} ] - \node[Box] (p0) {$0$}; - \node[Box] (p1) {$1$}; - \node[Box] (p2) {$2$}; - \node[Box] (p3) {$3$}; - \node[Box] (p4) {$4$}; +\node[Box] (p0) {$0$}; +\node[Box] (p1) {$1$}; +\node[Box] (p2) {$2$}; +\node[Box] (p3) {$3$}; +\node[Box] (p4) {$4$}; \node[Box,minimum width=6em] (ellipsis) {$\cdots$}; \node[Box] (p93) {$93$}; \node[Box] (p94) {$94$}; @@ -322,7 +348,7 @@ comparaison : \item \textbf{Git objects} \item - \textbf{Targz} + \textbf{Tar.gz} \item \textbf{Taille réelle} \end{itemize} @@ -355,7 +381,7 @@ modification d'un fichier entrainera donc l'ajout de nouveaux fichier. C'est de cette manière que Git est capable de créer un système de fichiers modifiable à partir d'objets immuables. -\subsubsection{Targz} +\subsubsection{Tar.gz} Une technique d'archivage assez classique à laquelle il peut être intéressant de nous comparer est de stocker chaque version en tant @@ -386,7 +412,7 @@ aucune déduplication ou compression. \textbf{DNA-Backup} & \textbf{Git diffs} & \textbf{Git objects} & -\textbf{Targz} & +\textbf{Tar.gz} & \textbf{Taille réelle} \\ \hline @@ -531,4 +557,8 @@ Lecture de la zone correspondant à la dernière version \\ \end{table*} +% Bibliography +\bibliographystyle{plain} +\bibliography{doc.bib} + \end{document} -- cgit v1.2.3