Subsurface: Git-Objects statt XML als Datenspeicher
Die Anwendung Subsurface für Taucher ist ein Hobbyprojekt von Intels Open-Source-Chef Dirk Hohndel, sie wurde von Linus Torvalds initiiert. Statt des bisher verwendeten XML bekommt die Software künftig wohl einen Datenspeicher mittels Git.

Er hacke glücklich ein neues Speicherformat für die Tauchdaten in Subsurface zusammen, schreibt Linux-Erfinder Linus Torvalds, 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. In der Erklärung zu dem Code-Commit 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 zur Verfügung.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Erstmal muss man sagen, das XML so gut oder schlecht ist, wie der der es einsetzt. Wenn...
Ein Object in git ist content und header mit dem deflate Algorithmus (zlib) komprimiert...