Open Source im professionellen Einsatz

Mono im Datenbank-Backend: Sones Graph DB

Im Gegensatz zu MySQL & Co. speichert Graph DB keine Tabellen, sondern komplexe Graphen (Abbildung 1). Die bestehen wiederum aus Knoten (den Informationsträgern) und Kanten (den Beziehungen zwischen den Informationen). Ein Graph repräsentiert so je nach Anwendungsgebiet eine Straßenkarte, eine Netzwerktopologie oder die Beziehungen zwischen Mitarbeitern in einer Firma.

Abbildung 1: Ein kleines Beispiel für einen Graphen: Hier zeigt er die Beziehungen zwischen verschiedenen Personen.

Bei solchen Daten liefert die spezialisierte Graph DB zusammen mit der eigenen Abfragesprache GQL wesentlich schneller ein Abfrage-Ergebnis als herkömmliche relationale Datenbanken. Es entfallen insbesondere die zeitfressenden Joins und Lookups.

Graph DB ist vollständig in C# geschrieben und ließ sich 2010 mit Mono auf Linux und Mac OS X portieren. "Das lief erstaunlich gut: Schon nach wenigen Stunden kompilierte alles, nach einigen Tagen lief die Datenbank unter Mono", erläutert Daniel Kirstenpfad, CTO von Sones. Probleme konnten die Entwickler schnell zusammen mit den Mono-Machern klären: "Wir konnten bei Fragen und Anregungen schnell den eigentlichen Autor kontaktieren und haben immer zügig Feedback erhalten. Mit der Gründung von Xamarin haben sich aus unserer Sicht Austausch und Unterstützung noch einmal verbessert."

Die derzeit rund um Graph DB entstehenden Hilfswerkzeuge sind allerdings im Moment nur unter Windows verfügbar. Das noch nicht freigegebene Graph-DB-Visualization-Tool, das die gespeicherten Graphen übersichtlich auf den Bildschirm zeichnet, nutzt bislang die WPF [13].

Entwickelt in Dotnet, aber schneller dank Mono

Der bereits erhältliche Sones Assembly Merger verwendet hingegen die Windows Forms, wäre somit prinzipiell auch auf Mono portierbar [14]. Offiziell gibt es aber nur eine Windows-Version, der Quellcode liegt jedoch offen [15]. In Zukunft will Sones Benutzeroberflächen mit plattformunabhängigen Webtechniken programmieren, namentlich mit HTML 5 und Javascript.

Mit Version 2.8 erhielt Mono einen neuen Garbage Collector, also die integrierte automatische Speicherverwaltung. Die sorgt in vielen Fällen für einen solchen Geschwindigkeitsschub, dass Graph DB unter Mono heute schneller läuft als unter Microsofts Dotnet (Abbildung 2). Genaue Zahlen liefert das Sones-Entwickler-Blog auf der Webseite der Firma.

Abbildung 2: Wie Sones Messungen belegen, liefert die Graph DB Anfragen unter aktuellen Mono-Versionen wesentlich schneller aus als unter Dotnet.

Abbildung 2: Wie Sones Messungen belegen, liefert die Graph DB Anfragen unter aktuellen Mono-Versionen wesentlich schneller aus als unter Dotnet.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook