Subsurface: Git-Objects statt XML als Datenspeicher

Er hacke glücklich ein neues Speicherformat für die Tauchdaten in Subsurface(öffnet im neuen Fenster) zusammen, schreibt Linux-Erfinder Linus Torvalds(öffnet im neuen Fenster) , der auch Initiator der Software für Taucher ist, auf Google+. Statt des bisher verwendeten XML will Torvalds die Git-Object-Datenbank benutzen. Damit kombiniere er Teile zweier sehr verschiedener Projekte, die er gestartet habe, so Torvalds.
Git-Objekt-Baum
Die Versionsverwaltung Git speichert Inhalte in einer Key-Value-Datenbank - in den sogenannten Git Objects(öffnet im neuen Fenster) . In der Erklärung zu dem Code-Commit(öffnet im neuen Fenster) schreibt Torvalds, dass Subsurface Tauchdaten statt in einer XML-Datei nun eben in einem Git-Object-Repository speichert.
Dabei werden die einzelnen Objekte in einem Baum gespeichert, in dem " die einzelnen Tauchgänge als eigene Datei " repräsentiert sind. Diese werden hierarchisch nach Trip und Datum sortiert. Diese Vorgehensweise dupliziert den XML-Code zum Speichern größtenteils, erklärt Torvalds. Die Logik sei zwar sehr ähnlich, es gebe aber " tonnenweise triviale Unterschiede ".
XML ist "ein Desaster"
Ursprünglich nutzte Torvalds XML als Speicher, da das auch viele andere Projekte so machten, und " Subsurface war ursprünglich nicht in der Lage dazu, etwas Eigenes zu machen ". Doch XML sei das schlechteste jemals designte Dateiformat, skaliere nicht gut und sei " im Allgemeinen ein komplettes Desaster ".
So suchten Torvalds und Intels Open-Source-Chef Dirk Hohndel, der Subsurface seit einiger Zeit pflegt, eine Alternative. Doch binäre Formate seien " böse und nicht erweiterbar ", außerdem wollten die Entwickler " Replikation, Netzwerktransparenz und die Möglichkeit, mehrere Tauchgänge aus verschiedenen Quellen zu kombinieren ".
Die Git-Objektdatenbank sei dagegen gut designt, biete effiziente Deduplikation und Kompression. Zusätzlich bekommen Nutzer Backups und eine Historie dank Git einfach dazu. Ebenso lassen sich die Dateien mit vielen Werkzeugen ansehen, um etwa Diffs der Dateien anzusehen oder einfach verschiedene Tauchgänge.
Für die Überlegungen zu dem tatsächlichen Code ließ sich Torvalds einige Monate Zeit, um ein komplettes Bild davon zu haben, wie er die Idee umsetzen möchte. Der Quellcode der Erweiterung von Subsurface durch Git-Objekte steht via Git(öffnet im neuen Fenster) zur Verfügung.



