Datenkonsistenz

Das connect-Gateway stellt die Konsistenz aller Daten im Dataspace nach bestimmten Regeln sicher. Ziel ist es, dass zusammengehörige Daten immer gemeinsam aktualisiert werden, so dass niemals ein Datenbestand vorliegen kann, bei dem ein Teil der Daten neuer ist als ein anderer.

Im Gateway kann für jeden Producer ein so genannter Trigger definiert werden, der die Aktualisierung der Datenpunkte anstößt. Der Trigger kann eine Uhr sein oder ein Ereignis. Bei vielen Protokollen werden die Daten aktualisiert, wenn neue Daten empfangen werden. Dieser Push-Trigger löst also eine Aktualisierung der Datenpunkte aus.

Bei Aktualisierung der Datenpunkte, werden die relevanten Daten aus dem Protokoll extrahiert und je nach Konfiguration in unterschiedliche Datenpunkte geschrieben. Entscheidend ist nun, dass alle Datenpunkte, die zu diesem Trigger-Ereignis gehören, immer gemeinsam aktualisiert werden. Es ist garantiert, dass bei dieser Aktualisierung die neuen Werte erst im Dataspace für Abfragen bereitstehen, nachdem alle Werte gesetzt wurden.

Das Setzen von Datenpunkten erfolgt atomar und erzeugt einen neuen Snapshot das Dataspace

Intern realisiert das Gateway dieses Verhalten, indem bei jeder Aktualisierung von Werten ein neuer Snapshot des Dataspace gebildet wird. Dabei ist das Setzen von Werten und das Erzeugen des neuen Snapshots eine atomare Operation, so dass während dieses Vorgangs keine falschen Daten gelesen werden können.

Beim Lesen von Daten durch einen Consumer wird immer der aktuelle Snapshot des Dataspace verwendet. Versucht ein Consumer Daten zu lesen während diese aktualisiert werden, so wird der Consumer noch die alten Werte erhalten, denn die Aktualisierung ist noch nicht abgeschlossen und noch kein neuer Snapshot erzeugt. Erst wenn der neue Snapshot vorliegt, wird der Consumer diesen beim nächsten Lese-Zyklus verwenden und bekommt so immer konsistente Daten.