Persistente Datenstrukturen – Temporale Datenstrukturen – Persistenz (Zeitreisen)

Das Ziel der Persistenz ist es, alles zu speichern. Die Datenstruktur kann geändert werden, aber für die Persistenz werden alle Versionen der Datenstruktur (durch ihre Änderungen) gespeichert, alle alten Versionen werden behalten, nicht zerstört. Alle Operationen der Datenstruktur (wie Programmierbefehle an den Daten) beziehen sich auf die angegebene Version. Ein Update erstellt und gibt eine neue Version zurück. Zum Beispiel gibt ein Einfügen in die Datenstruktur eine Version an, und die Ausgabe ist eine neue Version. Daher ist es möglich, zur alten Version zurückzukehren und diese dann zu ändern, wobei erneut eine neue Version ausgegeben würde. Es gibt 4 Ebenen der Persistenz: 1. Partielle Persistenz (am einfachsten) – es ist nur erlaubt, die neueste Version zu aktualisieren (Versionen sind linear geordnet, die alten Versionen werden nie aktualisiert, sodass sie abgefragt werden können). 2. Volle Persistenz – Aktualisierung jeder Version. Die Versionen bilden einen Baum, da jede der alten Versionen, wenn sie aktualisiert wird, abzweigt und eine neue Reihe von Versionen beginnt, sobald die nächsten aktualisiert werden. Dies kann rekursiv sein. 3. Konfluente Persistenz: Zwei Versionen können kombiniert werden, um eine neue Version zu erstellen. Die neuen Versionen bilden einen DAG (Directed Acyclic Graph). Wenn Zweige erstellt wurden, können Versionen an den Zweigen rekombiniert werden, um die Zweige zu einem einzigen Zweig zusammenzuführen. Schwer umzusetzen. 4. Funktionale Persistenz: Nichts kann geändert werden (Knoten). Die einzige mögliche Operation ist die Erstellung neuer Knoten.



Zurück zum Blog

Hinterlasse einen Kommentar

Bitte beachte, dass Kommentare vor der Veröffentlichung freigegeben werden müssen.