Heim >Web-Frontend >js-Tutorial >Konsistenzmodelle und Replicache

Konsistenzmodelle und Replicache

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-06 02:57:42664Durchsuche

Konsistenzmodell

Das Konsistenzmodell ist eine Reihe von Vorschriften darüber, wie viel Konsistenz in einem verteilten System bereitgestellt wird. In den vorherigen Beiträgen gibt es Informationen zum Kompromiss zwischen Latenz und Konsistenz in der PACELC-Theorie und es geht darum, wie viel Konsistenz gemäß diesem Kompromiss bereitgestellt wird.

Replicache, das im vorherigen Beitrag besprochen wurde, ist ebenfalls eine Art verteiltes System. Replicache soll der kausalen Konsistenz folgen.

Consistency Models and Replicache
Quelle

Strikte Konsistenz

Konsistenz, die es Ihnen ermöglicht, Werte immer in chronologischer Reihenfolge abzulesen. Alle Lesevorgänge, die nach dem Schreiben des Werts erfolgen, lesen immer diesen Wert. Um dies zu erfüllen, sind zwei Bedingungen notwendig. Es gibt eine globale Uhr, die von allen Knoten gemeinsam genutzt wird und mit dieser synchronisiert werden muss, und der Schreibvorgang muss sofort ausgeführt werden.

w(x)a: Schreiben Sie den Wert a in x, r(x)a: Lesen Sie den Wert a aus x

Wenn w(x)a zum Zeitpunkt t in Knoten 1 auftritt und r(x) nach t Delta (0,0000000000000001s) in Knoten 2 auftritt, muss Knoten 2 den Wert a lesen.

Eine globale Uhr muss vorhanden sein, um die Operation zu serialisieren, damit die Operation nicht zur gleichen Zeit t ausgeführt wird, und das Schreiben muss sofort durchgeführt werden, damit der geschriebene Wert zur Zeit t Delta gelesen werden muss.

Aber das ist eigentlich unmöglich. Daher existiert die strikte Konsistenz als Theorie.

Wenn in den folgenden Situationen die strenge Konsistenz eingehalten wird
Consistency Models and Replicache

Die richtige Antwort lautet wie folgt.
Consistency Models and Replicache

Sequentielle Konsistenz

Das Kernschlüsselwort der sequentiellen Konsistenz ist „Globale Ordnung“. Alle Schreib-/Lesevorgänge müssen sich so verhalten, als ob es eine einzige einheitliche Sequenz gäbe. Außerdem müssen die von jedem Prozess (Client) ausgeführten Vorgänge in dieser Reihenfolge ausgeführt werden.

Welche Werte können im folgenden Fall p3 und p4 lesen?
Consistency Models and Replicache

Das Folgende ist dasselbe wie die strikte Konsistenz, sodass auch die sequentielle Konsistenz erfüllt ist.
Consistency Models and Replicache

Sie finden unten die globale Reihenfolge, daher ist die sequentielle Konsistenz korrekt.
Consistency Models and Replicache

Globale Reihenfolge: w(x)a, r(x)a, w(x)b, r(x)b

Im folgenden Fall wird a jedoch vor b geschrieben, aber später gelesen. In diesem Fall ist die sequentielle Konsistenz nicht erfüllt.

Consistency Models and Replicache

Kausale Konsistenz

Kausal bedeutet Ursache-Wirkungs-Beziehung. "Passiert-bevor (→)" Es ist wichtig zu verstehen, dass es sich um eine Beziehung handelt.

A → B gilt in den folgenden Fällen.

  1. A kommt vor B im selben Prozess (Client) vor
  2. Nach A wird die Nachricht gesendet und die Partei, die die Nachricht erhalten hat, führt B aus.
  3. Wenn A → B und B → C, dann A → C.

Kausale Konsistenz ist eine Regel, bei der diese Ursache-Wirkungs-Beziehung in allen Knoten sichtbar ist.

Der folgende Fall ist kausale Konsistenz.

Consistency Models and Replicache

Die einzigen „Passiert-vorher“-Beziehungen, die hier gefunden werden können, sind w(x)a → r(x)a und w(x)b → r(x)b, die von allen Prozessen erfüllt werden. Es ist in Ordnung, dass P3 zuerst b liest. Dies liegt daran, dass die beiden Schreibvorgänge unabhängig voneinander sind und daher keine Ursache-Wirkungs-Beziehung von w(x)a → w(x)b besteht.

Das Folgende stellt keine kausale Konsistenz dar. Der Grund dafür ist, dass es eine Ursache-Wirkungs-Beziehung von w(x)a → w(x)c gibt und c in P3 vor a gelesen wird.

Consistency Models and Replicache

Endgültige Konsistenz

Eventuell Es ist eine Regel, die (irgendwann) konsistent wird. Irgendwann, wenn keine Schreibvorgänge mehr stattfinden und sich das Netzwerk stabilisiert, werden schließlich alle Knoten denselben Wert sehen. Es handelt sich um eine sehr endliche Konvention.

Konsistenz in der Replik

Replicache soll der kausalen Konsistenz folgen. Dies ist eine etwas stärkere kausale Konsistenz, also finden wir es später heraus.

Das obige ist der detaillierte Inhalt vonKonsistenzmodelle und Replicache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn