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.