Ich lese etwas über die Vorteile / Nachteile der Verwendung von Zeitstempeln für die Steuerung des gemeinsamen Zugriffs in einer verteilten Datenbank. Das Material, das ich lese, erwähnt, dass obwohl Zeitstempel traditionelle Deadlock-Probleme überwinden, die das Sperren beeinflussen können, es immer noch das Problem des "globalen Deadlocks" gibt, für das es anfällig ist.
Das Material beschreibt den globalen Deadlock als eine Situation, in der in den Warte-Graphen von lokalen Graphen kein Zyklus existiert, sondern in dem globalen Graphen ein Zyklus existiert.
Ich frage mich, wie das passieren könnte? Könnte jemand eine Situation beschreiben, in der ein Timestamp-System dieses Problem verursachen könnte?
Hier ist ein Beispiel, das wahrscheinlich einfachste. Wir haben Maschinen A
und B
. Maschine A hat die Sperren T1
und T2
mit der Beziehung T1 < T2
. Maschine B
hat T3
und T4
mit T3 > T4
.
Nun, die lokalen Graphen sind nur, dass T2 auf T1 warten muss und T3 auf T4 warten muss. Es gibt also keine lokalen Zyklen. Aber nehmen wir an, wir haben T4 < T1
, also muss T1 auf T4 warten. Und gleichzeitig T2 < T3
, also muss T3 auf T2 warten. In diesem Fall gibt es global einen Zyklus.
Wie läuft dieser Zyklus ab? Der Schlüssel hier ist, dass Sie nie die vollständigen Informationen in einem verteilten System haben. So können wir später lernen, dass die Abhängigkeiten zwischen den Maschinen vorhanden sind. Und dann haben wir ein Problem.
Der Zeitstempel wird verwendet, um die Konfliktlösung zwischen lokalen Prozessen auf einer Maschine zu bestimmen. Es gibt ein Mittel, um Deadlocks auf dieser Ebene zu lösen. Für verteilte Prozesse besteht die Möglichkeit, dass zwei Prozesse auf unterschiedlichen Maschinen aufeinander warten. Das ist in der Tat eine normale Deadlock, aber auf Maschinen. Dies wird als "globaler" Deadlock bezeichnet. Imho Timestamping könnte dort auch verwendet werden, ist aber offensichtlich unpraktisch.
Einige Informationen dazu finden Sie auf Ссылка
Tags und Links database distributed-computing concurrency timestamp