A secure and flexible backup system in Haskell

Specialeforsvar ved Johan Sejr Brinch Nielsen & Morten Brøns-Pedersen


External Examiner: Philippe Bonnet, ITU

Supervisor: Ken Friis Larsen, DIKU


Hindsight is a backup system providing guaranteed safe backup to untrusted sources such as SSH, Amazon S3 or DropBox.

We employ concurrent b-tree for storing log data, as opposed to the more common transactional database. This choice has two beneficial side effects: a) more flexible handling of program crashes (which allows resuming progress); and b) compression and lazy retrieval of log data (which allows efficient snapshot inspection).

We present the design and a prototype implementation written in Haskell. Our prototype implements conservative garbage collection, but we give a comprehensive discussion of other techniques as well. We compare our prototype to several other systems and present benchmarks.