Zweiphasige Blockierung

In Datenbanken und Transaktionsverarbeitung ist zweiphasige Blockierung (2PL) eine Parallelitätskontrollmethode, die serializability versichert.

Es ist auch der Name des resultierenden Satzes von Datenbanktransaktionstermin(Geschichten). Das Protokoll verwertet Schlösser, die durch eine Transaktion auf Daten angewandt sind, die (interpretiert als Signale blockieren können anzuhalten) andere Transaktionen davon, auf dieselben Daten während des Lebens der Transaktion zuzugreifen.

Durch 2PL werden Protokoll-Schlösser angewandt und in zwei Phasen entfernt:

  1. Erweiterung der Phase: Schlösser werden erworben, und keine Schlösser werden veröffentlicht.
  2. Das Schrumpfen der Phase: Schlösser werden veröffentlicht, und keine Schlösser werden erworben.

Zwei Typen von Schlössern werden durch das grundlegende Protokoll verwertet: Geteilte und Exklusive Schlösser. Verbesserungen des grundlegenden Protokolls können mehr Schloss-Typen verwerten. Das Verwenden von Schlössern, die Prozesse, 2PL blockieren, kann toten Punkten unterworfen sein, die sich aus dem gegenseitigen Blockieren von zwei oder mehr Transaktionen ergeben.

2PL ist eine Obermenge der starken strengen zweiphasigen Blockierung (SS2PL), auch genannt Strengkeit, die für die Parallelitätskontrolle in Mehrzweckdatenbanksystemen seit den 1970er Jahren weit verwertet worden ist. SS2PL Durchführungen haben viele Varianten. SS2PL wurde streng 2PL genannt, aber dieser Namengebrauch wird jetzt nicht empfohlen. Jetzt streng 2PL (S2PL) ist die Kreuzung der Strenge und 2PL, der von SS2PL verschieden ist. SS2PL ist auch ein spezieller Fall der Engagement-Einrichtung, und erbt viele nützliche Eigenschaften von CO. SS2PL umfasst wirklich nur eine Phase: Phase 2 besteht nicht, und alle Schlösser werden nur nach dem Transaktionsende veröffentlicht. So wird dieser nützliche Typ 2PL überhaupt nicht zwei aufeinander abgestimmt.

Weder 2PL noch S2PL in ihren allgemeinen Formen sind bekannt, in der Praxis verwendet zu werden. So 2PL scheint allein nicht, viel praktische Wichtigkeit zu haben, und wann auch immer 2PL oder S2PL Anwendung in der Literatur erwähnt worden ist, ist die Absicht SS2PL gewesen. Was SS2PL gemacht hat, so populär (wahrscheinlich der am meisten verwertete serializability Mechanismus) ist die wirksame und effiziente Blockierungsbasierte Kombination von zwei Zutaten (das erste besteht sowohl in allgemeinem 2PL als auch in S2PL nicht; das zweite besteht im Allgemeinen 2PL nicht):

  1. Engagement-Einrichtung, die sowohl serializability, als auch wirksam zur Verfügung stellt, hat serializability und globalen serializability und verteilt
  2. Strenge, die cascadelessness (ACA, Kaskadewenigerwerthaltigkeit) zur Verfügung stellt und (unabhängig) effiziente Datenbankwiederherstellung vom Misserfolg erlaubt.

Zusätzlich ist SS2PL mit dem weniger oberirdischen leichter, um durchzuführen, sowohl als 2PL als auch als S2PL, stellt genau dieselbe Blockierung zur Verfügung, aber veröffentlicht manchmal Schlösser später. Jedoch praktisch (obwohl nicht vereinfacht theoretisch) kommt solche spätere Schloss-Ausgabe nur ein bisschen später vor, und dieser offenbare Nachteil ist unbedeutend und verschwindet neben den Vorteilen von SS2PL.

So ist die Wichtigkeit von der allgemeinen Zweiphasigen Blockierung (2PL) nur historisch, während Starke strenge zweiphasige Blockierung (SS2PL) praktisch der wichtige Mechanismus und das resultierende Termineigentum ist.

Datenzugang-Schlösser

Ein Schloss ist ein Systemgegenstand, der mit einer geteilten Quelle wie ein Datenartikel eines elementaren Typs, einer Reihe in einer Datenbank oder einer Seite des Gedächtnisses vereinigt ist. In einer Datenbank muss ein Schloss auf einem Datenbankgegenstand (ein Datenzugang-Schloss) eventuell durch eine Transaktion vor dem Zugreifen auf den Gegenstand erworben werden. Der richtige Gebrauch von Schlössern verhindert unerwünschte, falsche oder inkonsequente Operationen auf geteilten Mitteln durch andere gleichzeitige Transaktionen. Wenn auf einen Datenbankgegenstand mit einem vorhandenen durch eine Transaktion erworbenen Schloss durch eine andere Transaktion zugegriffen werden muss, wird das vorhandene Schloss für den Gegenstand und den Typ des beabsichtigten Zugangs durch das System überprüft. Wenn der vorhandene Schloss-Typ diesen spezifischen versuchten gleichzeitigen Zugriffstyp nicht erlaubt, wird der Transaktionsversuch-Zugang (gemäß einer vorherbestimmten Abmachung/Schema) blockiert. In der Praxis blockiert ein Schloss auf einem Gegenstand eine Operation einer Transaktion auf den Gegenstand nicht direkt, aber blockiert eher diese Transaktion davon, ein anderes Schloss auf demselben Gegenstand zu erwerben, musste durch die Transaktion vor dem Durchführen dieser Operation gehalten/besessen werden. So, mit einem sich schließen lassenden Mechanismus, wird das erforderliche Operationsblockieren von einem richtigen Schloss-Blockieren-Schema kontrolliert, das anzeigt, welche Schloss-Typ-Blöcke, die Typ schließen.

Zwei Haupttypen von Schlössern werden verwertet:

  • Schreibsperre (exklusives Schloss) wird mit einem Datenbankgegenstand durch eine Transaktion vereinigt (Fachsprache: "Die Transaktion schließt den Gegenstand," oder "erwirbt Schloss dafür") vor dem Schreiben diesen Gegenstand (einzufügen zu/modifizieren/Löschen).
  • Lasen Schloss (geteiltes Schloss) wird mit einem Datenbankgegenstand durch eine Transaktion vor dem Lesen vereinigt (den Staat wiederbekommend), dieser Gegenstand.

Die allgemeinen Wechselwirkungen zwischen diesen Schloss-Typen werden durch das Blockieren des Verhaltens wie folgt definiert:

  • Eine vorhandene Schreibsperre auf einem Datenbankgegenstand blockiert ein beabsichtigter schreiben auf denselben Gegenstand (bereits hat gebeten/ausgegeben) durch eine andere Transaktion durch das Blockieren einer jeweiligen Schreibsperre davon, durch die andere Transaktion erworben zu werden. Die zweite Schreibsperre wird erworben, und die gebetenen schreiben über den Gegenstand wird stattfinden (verwirklichen sich), nachdem die vorhandene Schreibsperre veröffentlicht wird.
  • Eine Schreibsperre blockiert ein beabsichtigter (hat bereits gebeten/ausgegeben) gelesen durch eine andere Transaktion durch das Blockieren des jeweiligen läset Schlosses.
  • Ein lesen Schloss blockiert ein beabsichtigter schreiben durch eine andere Transaktion durch das Blockieren der jeweiligen Schreibsperre.
  • Ein lesen Schloss blockiert nicht ein beabsichtigter hat durch eine andere Transaktion gelesen. Das jeweilige läsen Schloss für das gelesene beabsichtigte wird (geteilt mit dem vorherigen gelesen) sofort erworben, nachdem das gelesene beabsichtigte gebeten wird, und dann die beabsichtigten sich lesen, findet statt.

Mehrere Schwankungen und Verbesserungen dieser Hauptschloss-Typen bestehen mit jeweiligen Schwankungen des blockierenden Verhaltens. Wenn ein erstes Schloss ein anderes Schloss blockiert, werden die zwei Schlösser unvereinbar genannt; sonst sind die Schlösser vereinbar. Häufig werden Schloss-Typen, die Wechselwirkungen blockieren, in der technischen Literatur durch einen Schloss-Vereinbarkeitstisch präsentiert. Der folgende ist ein Beispiel mit den allgemeinen, größeren Schloss-Typen:

:

:X zeigt Inkompatibilität, d. h., ein Fall an, wenn ein Schloss des ersten Typs (in der linken Säule) auf einem Gegenstand ein Schloss des zweiten Typs (in der Spitzenreihe) davon blockiert, auf demselben Gegenstand (durch eine andere Transaktion) erworben zu werden. Ein Gegenstand hat normalerweise eine Warteschlange, gebeten (durch Transaktionen) Operationen mit jeweiligen Schlössern zu warten. Das erste blockierte Schloss für die Operation in der Warteschlange wird erworben, sobald das vorhandene blockierende Schloss vom Gegenstand entfernt wird, und dann seine jeweilige Operation durchgeführt wird. Wenn ein Schloss für die Operation in der Warteschlange durch kein vorhandenes Schloss blockiert wird (die Existenz von vielfachen vereinbaren Schlössern auf demselben Gegenstand ist gleichzeitig möglich) es wird sofort erworben.

:Comment: In einigen Veröffentlichungen werden die Tabelleneinträge einfach "vereinbar" oder "unvereinbar", oder beziehungsweise "ja" oder "nein" gekennzeichnet.

Zweiphasige Blockierung und seine speziellen Fälle

Zweiphasige Blockierung

Gemäß dem zweiphasigen sich schließen lassenden Protokoll behandelt eine Transaktion seine Schlösser in zwei verschiedenen, aufeinander folgenden Phasen während der Ausführung der Transaktion:

  1. Die Erweiterung der Phase (auch bekannt als das Wachsen der Phase): Schlösser werden erworben, und keine Schlösser werden veröffentlicht (die Zahl von Schlössern kann nur zunehmen).
Das Schrumpfen der Phase: Schlösser werden veröffentlicht, und keine Schlösser werden erworben.

Das serializability Eigentum wird für eine Liste mit Transaktionen versichert, die dem Protokoll folgen. 2PL wird Terminklasse als die Klasse aller Listen definiert, die Transaktionen mit Datenzugriffsordnungen umfassen, die durch 2PL Protokoll erzeugt werden konnten (oder mit anderen Worten, alle Listen, die 2PL Protokoll erzeugen kann).

Gewöhnlich ohne ausführliche Kenntnisse in einer Transaktion auf dem Ende der Phase 1 wird es nur sicher bestimmt, als eine Transaktion in seinen bereiten Staat in allen seinen Prozessen eingegangen ist (Verarbeitung hat geendet, und es ist bereit begangen zu werden; kein zusätzlicher Datenzugang und Blockierung sind erforderlich und können geschehen). In diesem Fall kann Phase 2 sofort enden (keine zusätzliche Verarbeitung ist erforderlich), und wirklich ist keine Phase 2 erforderlich. Außerdem, wenn mehrere Prozesse (zwei oder mehr) beteiligt werden, dann ist ein Synchronisationspunkt (ähnlich dem Atomengagement) unter ihnen erforderlich, um Ende der Phase 1 für sie alle (d. h., in der kompletten verteilten Transaktion) zu bestimmen, anzufangen, Schlösser in der Phase 2 zu veröffentlichen (sonst es ist sehr wahrscheinlich, dass sowohl 2PL als auch Serializability schnell verletzt werden). Solcher Synchronisationspunkt ist gewöhnlich (das Beteiligen eines verteilten Protokolls zu kostspielig, das dem Atomengagement ähnlich ist), und das Ende der Phase 1 wird gewöhnlich verschoben, um mit dem Transaktionsende (Atomengagement-Protokoll für eine Mehrprozess-Transaktion) verschmolzen zu werden, und wieder ist Phase 2 nicht erforderlich. Das dreht sich 2PL zu SS2PL (sieh unten). Alle bekannten Durchführungen 2PL in Produkten sind SS2PL gestützt, und wann auch immer 2PL (oder Streng 2PL, S2PL) praktische Anwendung in der Fachliteratur erwähnt worden ist, ist die Absicht SS2PL gewesen.

Strenge zweiphasige Blockierung

Die strenge zweiphasige Blockierung (S2PL) Klasse von Listen ist die Kreuzung 2PL Klasse mit der Klasse von Listen, die das Strenge-Eigentum besitzen.

Um das S2PL Protokoll zu erfüllen, muss eine Transaktion 2PL erfüllen, und seinen veröffentlichen, schr (exklusive) Schlösser nur, nachdem es geendet, d. h., entweder begangen oder abgebrochen hat. Lesen Sie andererseits (geteilte) Schlösser werden regelmäßig während der Phase 2 veröffentlicht. Das Einführen allgemeinen S2PL verlangt ausführliche Unterstützung des Endes der Phase 1, das vom Transaktionsende getrennt ist, und keine solche weit verwertete Produktdurchführung ist bekannt.

S2PL ist ein spezieller Fall 2PL, d. h. die S2PL Klasse ist eine richtige Unterklasse 2PL

Starke strenge zweiphasige Blockierung

oder Strengkeit, oder Strenge Terminplanung oder Strenge zweiphasige Blockierung

Um starke strenge zweiphasige Blockierung (SS2PL) zu erfüllen, veröffentlicht das sich schließen lassende Protokoll sowohl schreiben Sie (exklusiv) als auch lesen Sie (geteilte) Schlösser, die durch eine Transaktion nur angewandt sind, nachdem die Transaktion, d. h., nur nach beider Vollendungsdurchführung geendet hat (bereit seiend) und entweder begangen oder abgebrochen werdend. Dieses Protokoll erfüllt auch die S2PL-Regeln. Eine Transaktion, SS2PL folgend, kann angesehen werden als, Phase 1 zu haben, die die komplette Ausführungsdauer der Transaktion, und keine Phase 2 (oder eine degenerierte Phase 2) dauert. So wird nur eine Phase wirklich verlassen, und im Namen "zweiphasig" scheint, noch wegen der historischen Entwicklung des Konzepts von 2PL, und 2PL verwertet zu werden, eine Superklasse zu sein. Das SS2PL Eigentum einer Liste wird auch Strengkeit genannt. Es ist auch der Name der Klasse von Listen, die dieses Eigentum haben, und eine SS2PL-Liste wird auch eine "strenge Liste" genannt. Der Begriff "Strengkeit" ist frei vom unnötigen Vermächtnis von "zweiphasigen", sowie unabhängig jedes (sich schließen lassenden) Mechanismus zu sein (im Prinzip andere blockierende Mechanismen können verwertet werden). Der jeweilige sich schließen lassende Mechanismus des Eigentums wird manchmal Streng 2PL genannt.

SS2PL ist ein spezieller Fall von S2PL, d. h. die SS2PL Klasse von Listen ist eine richtige Unterklasse von S2PL (jede SS2PL-Liste ist auch eine S2PL-Liste, aber S2PL-Listen bestehen, die nicht SS2PL sind).

SS2PL ist das Parallelitätskontrollprotokoll der Wahl für die meisten Datenbanksysteme gewesen und hat seit ihren frühen Tagen in den 1970er Jahren verwertet. Wie man beweist, ist es ein wirksamer Mechanismus in vielen Situationen, und stellt außer Serializability auch Strenge zur Verfügung (ein spezieller Fall der cascadeless Werthaltigkeit), der für die effiziente Datenbankwiederherstellung und auch Engagement-Einrichtung (CO) instrumental ist, um an verteilten Umgebungen teilzunehmen, wo ein CO verteilten serializability gestützt hat und globale serializability Lösungen verwendet werden. Eine Teilmenge von CO seiend, besteht eine effiziente Durchführung von verteiltem SS2PL ohne einen verteilten Schloss-Betriebsleiter (DLM), während verteilte tote Punkte (sieh unten) automatisch aufgelöst werden. Die Tatsache, dass in Vieldatenbanksystemen verwendeter SS2PL globalen serializability sichert, ist seit Jahren bekannt gewesen, bevor die Entdeckung von CO, aber nur mit CO das Verstehen der Rolle eines Atomengagement-Protokolls im Aufrechterhalten von globalem serializability, sowie der Beobachtung der automatischen verteilten Entschlossenheit des toten Punktes gekommen ist (sieh ein ausführliches Beispiel von Verteiltem SS2PL). Eigentlich, SS2PL Übernehmen-Eigenschaften von Recoverability and CO ist bedeutender als, eine Teilmenge 2PL zu sein, der allein in seiner allgemeinen Form, außer dem Enthalten eines einfachen serializability Mechanismus (jedoch wird serializability auch durch CO einbezogen), in nicht bekannt, SS2PL mit irgendwelchen anderen bedeutenden Qualitäten zu versorgen. 2PL in seiner allgemeinen Form, sowie wenn verbunden, mit der Strenge, d. h., Streng 2PL (S2PL), sind nicht bekannt, in der Praxis verwertet zu werden. Der populäre SS2PL verlangt nicht, um "Ende der Phase 1" als 2PL zu kennzeichnen, und S2PL tun, und ist so einfacher durchzuführen. Auch verschieden vom General 2PL stellt SS2PL, wie oben erwähnt, die nützlichen Strenge- und Engagement-Einrichtungseigenschaften zur Verfügung.

Viele Varianten von SS2PL bestehen, die verschiedene Schloss-Typen mit der verschiedenen Semantik in verschiedenen Situationen einschließlich Fälle der Änderung des Schloss-Typs während einer Transaktion verwerten. Bemerkenswert sind Varianten, die Vielfache Körnungsblockierung verwenden.

Anmerkungen:

  1. SS2PL Dagegen. S2PL: Beide stellen Serializability und Strictness zur Verfügung. Da S2PL eine Superklasse von SS2PL ist, den er im Prinzip mehr Parallelität zur Verfügung stellen kann. Jedoch wird kein Parallelitätsvorteil normalerweise praktisch bemerkt (genau dieselbe Blockierung besteht für beide, damit schließen praktisch nicht viel früher Ausgabe für S2PL), und die Gemeinkosten, sich mit einem Ende des Mechanismus der Phase 1 in S2PL zu befassen, der vom Transaktionsende getrennt ist, werden nicht gerechtfertigt. Außerdem, während SS2PL Engagement-Einrichtung zur Verfügung stellt, tut S2PL nicht. Das erklärt die Vorliebe von SS2PL über S2PL.
  2. Besonders vor 1990, sondern auch danach, in vielen Artikeln und Büchern, z.B, (Bernstein u. a. 1987, p. 59), der Begriff "Strenger 2PL" (S2PL) ist oft durch das sich schließen lassende Protokoll definiert worden "Veröffentlichen alle Schlösser nur nach dem Transaktionsende," der das Protokoll von SS2PL ist. So, "Streng 2PL" konnte nicht dort der Name der Kreuzung der Strenge und 2PL sein, der größer ist als die durch das SS2PL Protokoll erzeugte Klasse. Das hat Verwirrung verursacht. Mit einer ausführlichen Definition von S2PL als die Kreuzung der Strenge und 2PL, ein neuer Name für SS2PL und eine ausführliche Unterscheidung zwischen den Klassen S2PL und SS2PL, die Artikel (Breitbart u. a. 1991), und (Raz 1992) haben vorgehabt, die Verwirrung zu klären: Das erste Verwenden des Namens "Strengkeit" und der zweite "SS2PL".
  3. Ein allgemeineres Eigentum als SS2PL besteht (eine Terminsuperklasse), Strenges Engagement, das bestellt (Strict CO oder SCO), der ebenso sowohl serializability, Strenge als auch CO zur Verfügung stellt, und ähnliche Blockierung oben hat. Verschieden von SS2PL blockiert SCO auf einen gelesenen nicht - schreiben Konflikt (ein lesen Schloss blockiert das Erwerben einer Schreibsperre nicht; sowohl SCO als auch SS2PL haben dasselbe Verhalten dafür schreiben - gelesen und schreiben - schreiben Konflikte) auf Kosten eines verzögerten möglichen begehen, und auf solchen Konflikt hat Typ SCO kürzere durchschnittliche Transaktionsvollziehungszeit und bessere Leistung als SS2PL. Während SS2PL dem Schloss-Vereinbarkeitstisch oben folgt, hat SCO den folgenden Tisch:
::

:: Bemerken Sie, dass, obwohl SCO alle Schlösser am Transaktionsende veröffentlicht und 2PL sich schließen lassende Regeln erfüllt, SCO nicht eine Teilmenge 2PL wegen seines verschiedenen Schloss-Vereinbarkeitstisches ist. SCO erlaubt verwirklicht gelesen - schreiben Konflikte zwischen zwei Transaktionen in ihren Phasen 1, der 2PL in der Phase 1 nicht erlaubt (kümmern Sie sich um verwirklichte Konflikte in Serializability). Andererseits 2PL erlaubt andere verwirklichte Konflikttypen in der Phase 2, die SCO überhaupt nicht erlaubt. Zusammen deutet das an, dass die Terminklassen 2PL und SCO unvergleichbar sind (d. h. keine Klasse enthält die andere Klasse).

Zusammenfassung - Beziehungen unter Klassen

Ein Eigentum blockiert von Natur aus, wenn es nur durch das Blockieren der Datenzugriffsoperationen der Transaktion beachtet werden kann, bis bestimmte Ereignisse in anderen Transaktionen vorkommen. (Raz 1992)]]

Zwischen irgendwelchen zwei Terminklassen (definieren durch die jeweiligen Eigenschaften ihrer Listen), die allgemeine Listen haben, enthält jede den anderen (ausschließlich enthält, wenn sie nicht gleich sind), oder sie unvergleichbar sind. Die Eindämmungsbeziehungen unter 2PL Klassen und andere Hauptterminklassen werden im folgenden Diagramm zusammengefasst. 2PL und seine Unterklassen blockieren von Natur aus, was bedeutet, dass keine optimistischen Durchführungen für sie bestehen (und wann auch immer "Optimistisch 2PL" erwähnt wird, bezieht es sich auf einen verschiedenen Mechanismus mit einer Klasse, die auch Listen nicht in 2PL Klasse einschließt).

Tote Punkte in 2PL

Schlösser blockieren Datenzugang-Operationen. Das gegenseitige Blockieren zwischen Transaktionen läuft auf einen toten Punkt hinaus, wo die Ausführung dieser Transaktionen eingestellt wird, und keine Vollziehung erreicht werden kann. So müssen tote Punkte aufgelöst werden, um die Ausführungen dieser Transaktionen zu vollenden, und Ausgabe hat Rechenmittel verbunden. Ein toter Punkt ist ein Nachdenken eines potenziellen Zyklus im Prioritätsgraphen, der ohne das Blockieren vorkommen würde. Ein toter Punkt wird durch den Abbruch einer Transaktion aufgelöst, die mit solchem potenziellem Zyklus und das Brechen des Zyklus beteiligt ist. Es wird häufig mit einem Warten - für den Graphen entdeckt (ein Graph von Konflikten, die durch Schlösser davon blockiert sind, verwirklicht zu werden; Konflikte, die nicht in der Datenbank wegen blockierter Operationen verwirklicht sind, werden im Prioritätsgraphen nicht widerspiegelt und betreffen serializability nicht), der anzeigt, welche Transaktion auf die" Schloss-Ausgabe "wartet, durch die Transaktion und ein Zyklus einen toten Punkt bedeuten. Der Abbruch einer Transaktion pro Zyklus ist genügend, um den Zyklus zu brechen. Transaktionen haben erwartet abgebrochen sich festzufahren Entschlossenheit werden wieder sofort durchgeführt.

In einer verteilten Umgebung ein Atomengagement-Protokoll normalerweise begehen die Zweiphasigen (2PC) Protokoll, wird für atomicity verwertet. Wenn wiedergutzumachende Daten (Daten unter der Transaktionskontrolle) unter 2PC Teilnehmer verteilt werden (d. h. jeder Datengegenstand wird von einer Single 2PC Teilnehmer kontrolliert), dann hat (globale) tote Punkte verteilt, tote Punkte, die zwei oder mehr Teilnehmer in 2PC einbeziehen, werden automatisch wie folgt aufgelöst:

Wenn SS2PL in einer verteilten Umgebung effektiv verwertet wird, dann erzeugen globale tote Punkte wegen der Blockierung tote Punkte des Wahl-in 2PC, und werden automatisch durch 2PC aufgelöst (sieh Engagement-Einrichtung (CO) in der Genauen Charakterisierung von toten Punkten des Wahl-durch globale Zyklen; wie man bekannt, bemerkt keine Verweisung außer den Artikeln CO das). Für den allgemeinen Fall 2PL werden globale tote Punkte automatisch durch das Synchronisationspunkt-Protokoll des Endes der Phase 1 in einer verteilten Transaktion ähnlich aufgelöst (Synchronisationspunkt wird durch "die Abstimmung" (das Mitteilen lokalen Endes der Phase 1) erreicht, und den Teilnehmern in einer verteilten Transaktion derselbe Weg wie ein Entscheidungspunkt im Atomengagement fortgepflanzt zu werden; in der Analogie zum Entscheidungspunkt in CO kann eine widerstreitende Operation in 2PL nicht vor dem Endsynchronisationspunkt der Phase 1 mit demselben resultierenden toten Punkt des Wahl-im Fall von einem globalen toten Datenzugang-Punkt geschehen; der tote Punkt des Wahl-(der auch eine Blockierung ist, hat globalen toten Punkt gestützt), wird durch das Protokoll automatisch aufgelöst, das eine Transaktion beteiligt, mit einer fehlenden Stimme, normalerweise mit einer Pause abbricht).

Anmerkung:

:When-Daten werden unter dem Atomengagement-Protokoll (z.B, 2PC) Teilnehmer verteilt, automatische globale Entschlossenheit des toten Punktes ist in der Datenbankforschungsliteratur überblickt worden, obwohl tote Punkte in solchen Systemen ein ziemlich intensives Forschungsgebiet gewesen sind:

::*For CO und sein spezieller Fall SS2PL, die automatische Entschlossenheit durch das Atomengagement-Protokoll ist nur in den Artikeln CO bemerkt worden. Jedoch ist es in der Praxis bemerkt worden, dass in vielen Fällen globale tote Punkte durch die hingebungsvollen Entschlossenheitsmechanismen weniger sehr selten entdeckt werden, als es erwartet werden konnte ("Warum sehen wir so wenige globale tote Punkte?"). Der Grund ist wahrscheinlich die toten Punkte, die automatisch aufgelöst und so nicht behandelt und durch die Mechanismen ungezählt werden;

::*For 2PL im Allgemeinen, die automatische Entschlossenheit bis zum (obligatorischen) Ende der Phase ein Synchronisationspunkt-Protokoll (der denselben stimmenden Mechanismus wie Atomengagement-Protokoll und dieselbe fehlende Stimme hat, die auf den stimmenden toten Punkt behandelt, auf globale Entschlossenheit des toten Punktes hinauslaufend) ist bis heute (2009) nicht erwähnt worden. Praktisch nur der spezielle Fall SS2PL wird verwertet, wo kein Ende der Phase eine Synchronisation zusätzlich zum atomaren erforderlich ist, begeht Protokoll.

:In, besteht eine verteilte Umgebung, wo wiedergutzumachende Daten unter Atomengagement-Protokoll-Teilnehmern, keine solche automatische Entschlossenheit nicht verteilt werden, und verteilte tote Punkte, muss durch hingebungsvolle Techniken aufgelöst werden.

Siehe auch


Effekten von Kernexplosionen / Spinlock
Impressum & Datenschutz