Das amerikanische Unternehmen Expensify offeriert eigentlich Software zur Reisekostenabrechnung. Die Entwickler werkeln allerdings auch an einer quelloffenen und komplett kostenlosen Datenbank namens Bedrock [1]. Die lockt mit gleich mehreren spannenden Eigenschaften: Sie ist extrem einfach einzurichten, repliziert sich auf Wunsch über mehrere Server und nutzt zur Synchronisation eine Blockchain. Bedrock stellt dabei eine relationale Datenbank bereit, die das ACID-Prinzip erfüllt und SQL-Befehle entgegennimmt. Sie ist von Haus aus kompatibel mit SQLite und MySQL, entsprechende Clientprogramme lassen sich weiterverwenden. Dank ihres modularen Aufbaus dient sie zudem als Basis für andere Speicheranwendungen. Unter anderem lässt sich mit Bedrock eine verteilte Job Queue oder ein verteilter Cache implementieren.
Im Idealfall muss der Administrator auf jedem Server nur Bedrock starten und dabei die Hostnamen der Kollegen mit auf den Weg geben. Bedrock sorgt dann automatisch dafür, dass der Inhalt der Datenbank auf allen Servern zur Verfügung steht. Clientanwendungen können sich mit jedem beteiligten Bedrock-Server verbinden und auf den kompletten Datenbestand zugreifen. Dies macht Bedrock vor allem für Unternehmen interessant, die weltweit mehrere Geschäftsstellen oder Rechenzentren betreiben. Die verteilte Datenbank kommt sogar explizit mit Verbindungen zurecht, die unzuverlässig arbeiten oder nur eine geringe Bandbreite aufweisen.
Bedrock selbst kümmert sich lediglich um die Synchronisation und den Datenaustausch zwischen den eingespannten Servern. Dort schiebt Bedrock einfach sämtliche zu speichernden Daten in eine SQLite-Datenbank (Bild 1). Dies geschieht transparent, um das genaue Vorgehen muss sich der Administrator nicht weiter kümmern. Da SQLite als Bibliothek implementiert ist, läuft der Code direkt im Bedrock-Prozess und somit im
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.