CRDTs zur Synchronisation von Netzwerkanwendungen
CRDTs sind schon seit Längerem im Gespräch, da die Datenstrukturen ohne vorherige Synchronisation von mehreren Rechnern eines Netzwerks repliziert und unabhängig aktualisiert werden können. Inkonsistenzen lassen sich durch Verschmelzen ihrer jeweiligen Aktualisierungen verhindern. Kritische Anwendungen wie virtuelle Geldbörsen, Werbeplattformen, soziale Netzwerke oder Online-Games arbeiten allerdings noch immer mit Synchronisation. "Synchronisation behindert schnelle Reaktionen und Verfügbarkeit", sagt SYNCFREE-Koordinator Marc Shapiro, Informatiker bei UPMC-LIP6 und Inria. "Das Warten auf die Erlaubnis für Updates von einem anderen Computer verschwendet Zeit und Ressourcen, und dann reagiert der Computer nicht einmal auf den Nutzer. Beim Absturz des Netzwerks kann das Warten sogar unbestimmt lange dauern, und die Anwendung hängt sich auf." Mit CRDTs können beide Computer ihre Updates gleichzeitig und unabhängig voneinander durchführen: ein Computer sendet seine Updates an den anderen, die dann mit den jeweils eigenen abgeglichen werden. "Dies bedarf einer sorgfältigen Programmierung, und es funktioniert auch nicht mit allen Datentypen, aber in der Praxis hat es sich bereits bewährt. Und schließlich ein weiteres Plus: CRDT-basierte Programme sind AP - Available under Partition (verfügbar unter Partition), d.h. jeder Computer kann weiterarbeiten, auch wenn das Netzwerk abstürzt. Da ein Computer mit CRDTs keine Erlaubnis einholen muss, kann er immer sofort reagieren, was auch Kosten spart", erklärt Shapiro. Im Gegensatz zu früheren AP-Ansätzen, die für Softwareentwickler sehr komplex waren, hat ein CRDT eine klare Semantik und führt Details der Fernkommunikation und Verschmelzung in einer intuitiven Benutzeroberfläche zusammen. Eine Hürde stand der richtigen kommerziellen Nutzung von CRDTs jedoch noch im Weg: bislang existierten kaum Anwendungen und Systeme, die vollständig auf dieser Technologie basieren. Dies bereitete in verschiedener Hinsicht Probleme, vor allem bei der Erstellung eines CRDT-basierten Kommunikations- und Speichersystems, dem Erhalt gewünschter Eigenschaften bei der Aktualisierung verschiedener Informationen in einem AP-System, der effektiven Programmierung CRDT-basierter Anwendungen und dem Aufrüsten geo-verteilter Cloud-Computing-Systeme mit Hunderten von Computern. Diese Hindernisse sind genau das, was SYNCFREE überwinden wollte. "Das Projekt lieferte in allen Bereichen positive Ergebnisse", erklärt Shapiro. "Unter anderem erstellten wir die effektive Open-Source-Cloud-Datenbank Antidote, die auf Hunderten weltweit verteilter Geräte demonstriert wurde. Wir entwickelten neue skalierbare Ansätze für die Speicherung von CRDTs und die Übertragung von Updates sowie große Programme, insbesondere eine anspruchsvolle, verteilte Benchmark namens FMKe (nach Vorbild des dänischen Gesundheitsnetzwerks FMK). Wir demonstrierten eine verteilte Programmiersprache namens LASP und entwickelten schließlich die Methodik "Just-Right Consistency", damit die in diesem System gespeicherten Daten sich tatsächlich so verhalten, wie es die Anwendung vorsieht." Bereits vor Projektbeginn wurden einige der Konzepte von Unternehmen genutzt, u.a. von vier SYNCFREE-Industriepartnern, die in großem Umfang Anwendungsanforderungen, Entwicklungsvorschläge und Daten aus realen Cloud-fähigen, bereits installierten Anwendungen beitrugen. Ein Unternehmen verwendet in einem seiner Produkte Antidote. "Nachdem SYNCFREE nun abgeschlossen ist, soll das gerade begonnene H2020- Nachfolgerprojekt LIGHTKONE mehr Industriepartner ins Boot holen, um vor allem ein massives, verteiltes Allzweck-Computing auf höchstem technischen Stand zu etablieren. Während SYNCFREE noch stark auf das Rechenzentrum fokussierte, soll LIGHTKONE die Daten und Berechnungen so nah wie möglich beim Nutzer lassen. So tun sich einige spannende Herausforderungen auf, wenn etwa die Größenordnung von ein paar hundert Computern in gut kontrollierter Umgebung auf Millionen Computer in unvorhersehbaren Umgebungen erweitert wird", sagt Shapiro. "Unabhängig davon verwendet ein Unternehmen LASP in der Produktion, und wir hoffen sehr auf die Einführung von Antidote. Wir diskutieren sogar Pläne für ein Start-up-Unternehmen zur weiteren Kommerzialisierung der Projektergebnisse." Mittlerweile sind die meisten Projektresultate wie Antidote, LASP, FMKe und die Just-Right-Consistency-Tools bereits bei GitHub unter der Apache-Lizenz erhältlich.
Schlüsselbegriffe
SYNCFREE, Antidote, CRDT, Synchronisation, GitHub, Computer, Anwendung