www.wikidata.de-de.nina.az
Die Konsistenzerhaltung engl consistency control dient in der Informatik der Erhaltung der Konsistenz bei der Ausfuhrung von Operationen in verteilten Systemen Die Konsistenzerhaltung ist Teil der Synchronisation im Fachbereich Computer Supported Cooperative Work wird sie durch Late Join erganzt Inhaltsverzeichnis 1 Das Problem 2 Formalisierung 3 Realisierung 4 Erweiterung auf kontinuierliche Vorgange 5 Sinnlose ZustandeDas Problem BearbeitenZwei Teilsysteme A und B eines verteilten Systems besitzen identische Anfangszustande d h ihre Zustande sind konsistent Nun andert A ein Datum x seines Zustands man nennt dies Operation und schickt die Anderung an B Fast gleichzeitig andert auch B das Datum x seines Zustandes und schickt eine Mitteilung an A Da die beiden Anderungen dasselbe Datum x betreffen man sagt sie seien konfliktar haben A und B nach Empfang der Mitteilungen des jeweils anderen am Ende verschiedene Zustande Ein Beispiel Hans und Peter spielen ein Strategiespiel uber das Internet verteiltes System Die Spielfiguren stehen sich gegenuber und jeder sieht auf seinem Bildschirm den jeweils anderen Spieler konsistenter Anfangszustand Nun schiesst Hans auf Peter Operation 1 wahrend gleichzeitig Peter ausweicht Operation 2 Hans sieht auf seinem Bildschirm Peters Spielfigur zusammenbrechen denn durch die Netzwerk Verzogerung kommt die Meldung uber Peters Flucht bei Hans erst Sekundenbruchteile an nachdem der Schuss getroffen hat Auf Peters Bildschirm ist seine Spielfigur aber noch putzmunter denn durch die Netzwerkverzogerung kommt Hans Schuss bei Peter erst Sekundenbruchteile nach seinem erfolgreichen Ausweichmanover an Bei Hans wurde erst Operation 1 und dann Operation 2 ausgefuhrt wahrend die Reihenfolge der Ausfuhrung bei Peter genau andersherum war Durch zwei gleichzeitige Operationen ist der Zustand des verteilten Systems inkonsistent geworden Das Beispiel zeigt dass sowohl die Reihenfolge der Ausfuhrung von Operationen als auch der Ausfuhrungszeitpunkt einer Operation kritisch ist Formalisierung BearbeitenFur eine Operation ist nicht nur wichtig wann sie erzeugt wurde sondern auch wann sie ausgefuhrt wird Man nennt eine Operation abhangig von einer anderen Operation wenn sie logisch gesehen nach dieser ausgefuhrt werden muss Operationen die nicht abhangig voneinander sind sind nebenlaufig Mit diesen Begriffen lassen sich nun die folgenden Kriterien definieren deren Erfullung zur Konsistenzerhaltung beitragt Kausalitat Wird eine abhangige Operation bei allen Instanzen des verteilten Systems nach der Operation ausgefuhrt von der sie abhangt so spricht man von Kausalitat Kausalitat alleine garantiert noch keine Konsistenzerhaltung denn uber nebenlaufige Operationen ist hiermit noch nichts ausgesagt Konvergenz Fuhren alle Instanzen des verteilten Systems dieselbe Menge von Operationen aus und haben am Ende alle denselben Zustand so spricht man von Konvergenz Konvergenz ist ein starkeres Kriterium als Kausalitat garantiert aber lediglich dass der Endzustand der Instanzen gleich ist ubergangsweise eingenommene Zwischenzustande konnen durchaus voneinander abweichen Korrektheit Angenommen es gebe eine perfekte Instanz innerhalb des verteilten Systems die alle Operationen zum Zeitpunkt ihrer Erzeugung ausfuhrt Haben nach dem Ausfuhren einer Menge von Operationen alle Instanzen denselben Endzustand wie diese perfekte Instanz so spricht man von Korrektheit Absolut gleichzeitig erzeugte Operationen werden mit Hilfe eines Tie Break Kriteriums zeitlich hintereinander angeordnet Korrektheit ist das starkste Kriterium es erfullt gleichzeitig auch das Kriterium Konvergenz Realisierung BearbeitenZur Einhaltung der Kriterien der Konsistenzerhaltung werden Zustandsvektoren verwendet Wird eine Operation erzeugt so wird ihr ein Zustandsvektor zugewiesen Dieser enthalt fur alle Instanzen je eine Sequenznummer Die Sequenznummer einer Instanz gibt an welche Operationen diese Instanz bis zu diesem Zeitpunkt bereits ausgefuhrt hat Der Zustandsvektor einer Operation gibt also die Zustande aller Instanzen zu dem Zeitpunkt an als die Operation erzeugt wurde Gemeinsam mit der Operation wird nun auch deren Zustandsvektor verschickt Zusatzlich zu den Operationen fuhrt auch jede Instanz einen Zustandsvektor mit sich Der Empfanger kann das Kriterium Kausalitat auf einfache Weise uberprufen indem er den empfangenen Zustandsvektor mit seinem eigenen Zustandsvektor vergleicht Ist die Sequenznummer der Instanz die die Operation erzeugt hat genau um 1 grosser als die Sequenznummer dieser Instanz im eigenen Vektor und sind alle anderen Sequenznummern des Zustandsvektors der Operation kleiner oder gleich der entsprechenden Sequenznummern im eigenen Vektor so ist die Operation kausal ausfuhrbar d h die Kausalitat bleibt bei ihrer Ausfuhrung gewahrt Auch die Korrektheit kann mit Hilfe der Zustandsvektoren uberpruft werden Dazu wird eine Relation kleiner als eingefuhrt die die Summe aller Sequenznummern zweier Zustandsvektoren miteinander vergleicht Ist diese Summe einer Operation kleiner als die einer anderen so ist die Operation kleiner als die andere Ist die Summe gleich so wird wiederum ein Tie Break Kriterium angewandt um die Operationen kunstlich voneinander zu unterscheiden es konnten z B Identifikationsnummern der beteiligten Instanzen verglichen werden Die Kleiner als Relation umfasst automatisch auch die kausale Abhangigkeit ist also eine Operation kleiner als eine andere so ist letztere auch von ersterer abhangig Die Kleiner als Relation ordnet eine Menge von Operationen so an wie sie von einer perfekten Instanz ausgefuhrt werden wurde Um die Korrektheit zu wahren muss eine Instanz also alle bisherigen Operationen so ausfuhren dass sie den Endzustand einnimmt den sie hatte wenn sie alle Operationen in der Reihenfolge der Kleiner als Relation ausgefuhrt hatte Erweiterung auf kontinuierliche Vorgange BearbeitenDie bisher beschriebene Realisierung ist auf diskrete Anwendungen zugeschnitten also solche die keine zeitlichen Vorgange beinhalten Liegen jedoch kontinuierliche Vorgange vor d h ist auch der zeitliche Ablauf von Bedeutung so werden die folgenden Kriterien der Konsistenzerhaltung verwendet Konsistenz Haben alle Instanzen eines verteilten Systems zu einem Zeitpunkt den gleichen Endzustand nachdem sie alle Operationen empfangen haben deren Ausfuhrungszeitpunkt vor diesem Zeitpunkt liegt so spricht man von Konsistenz Konsistenz ist ein schwaches Kriterium denn es erlaubt vorubergehend unterschiedliche Zwischenzustande und macht keine Angaben dazu in welcher Reihenfolge oder zu welchem Zeitpunkt die Operationen nun tatsachlich ausgefuhrt werden mussen Korrektheit Angenommen es gebe eine perfekte Instanz innerhalb des verteilten Systems die alle Operationen zu ihrem Ausfuhrungszeitpunkt ausfuhrte Haben zu einem Zeitpunkt nach dem Empfang aller Operationen mit fruherem Ausfuhrungszeitpunkt alle Instanzen denselben Endzustand wie diese perfekte Instanz so spricht man von Korrektheit Korrektheit ist das starkste Kriterium es erfullt auch hier gleichzeitig das Kriterium Konvergenz Absolut gleichzeitig erzeugte Operationen sollten bei guten Uhren nicht auftreten konnen aber auch hier mit Hilfe eines Tie Break Kriteriums zeitlich hintereinander angeordnet werden Die Kausalitat spielt hier eine deutlich untergeordnete Rolle und wird nur zusatzlich eingesetzt um grobe Fehler zu vermeiden etwa das Verandern eines Objektes bevor es erzeugt wurde Sinnlose Zustande BearbeitenDie bisher beschriebenen formalisierten Verfahren der Konsistenzerhaltung scheitern jedoch alle an einer Hurde Sie konnen den Sinn von Operationen nicht erkennen Dementsprechend fuhrt auch die sorgfaltige Einhaltung aller Konsistenzerhaltungs Kriterien noch zu unangenehmen Effekten Eine Instanz kann zeitweise einen Zustand aufweisen der inkonsistent ist man nennt dies temporare Inkonsistenz Wird diese temporare Inkonsistenz vom Benutzer wahrgenommen so spricht man von Artefakten Artefakte aussern sich z B in springenden Spielfiguren in Computerspielen wenn zu spat eingetroffene Operationen nachtraglich in den Spielablauf eingepflegt werden Weist eine Instanz Artefakte auf so kann der Benutzer aufgrund der fehlerhaften Informationen Entscheidungen fallen die er sonst nicht gefallt hatte man spricht hier von sekundaren Inkonsistenzen Sie aussern sich z B darin dass der Spieler eines Computerspiels anders reagiert hatte wenn er gewusst hatte dass sein Gegner bereits vor ihm steht Abgerufen von https de wikipedia org w index php title Konsistenzerhaltung amp oldid 238587502