2PL, Rigorous vs Strict Model, gibt es einen Vorteil?

8

Welche Vorteile hat das strenge Modell in 2PL (zweiphasige Verriegelung) gegenüber dem strengen Modell?

I) Es gibt keinen Vorteil gegenüber dem strikten Modell.

II) Im Gegensatz zu dem strikten Modell garantiert es, dass Hunger nicht auftreten kann.

III) Im Gegensatz zum strikten Modell garantiert es, dass keine Deadlocks auftreten können.

IV) Im Gegensatz zum strikten Modell ist es nicht notwendig, zukünftig benötigte Daten vorherzusagen.

Meine Notiz sagt, dass alles oben genannte falsch ist. Ich bin etwas verwirrt. Kann jemand für mich klären, warum das alles falsch ist?

    
Anjela Minoeu 18.04.2015, 21:09
quelle

3 Antworten

3

Was ist das Protokoll der zweiphasigen Verriegelung (2PL)?

%Vor%

Nun, was ist Strict phase locking?

Hier muss eine Transaktion alle ihre exklusiven Sperren halten, bis sie commit / abbricht.

Aber was ist rigoros 2PL?

Rigorose zweiphasige Verriegelung ist noch strenger: hier werden alle Schlösser bis zum Festhalten gehalten. In diesem Protokoll können Transaktionen in der Reihenfolge, in der sie festgeschrieben werden, serialisiert werden.

Viel tiefer:

Strikte 2PL:

Wie 2PL, aber alle exklusiven Sperren halten, bis die Transaktion erfolgreich ausgeführt oder abgebrochen wurde. -Es garantiert kaskadenlose Wiederherstellbarkeit

Rigorous 2PL:

Wie Strict 2PL, aber alle Sperren halten, bis die Transaktion erfolgreich abgeschlossen oder abgebrochen wurde. -Es wird in dynamischen Umgebungen verwendet wo Datenzugriffsmuster vorher nicht bekannt sind.

Es gibt kein Deadlock, auch eine jüngere Transaktion, die einen von einem gehaltenen Artikel anfordert ältere Transaktion wird abgebrochen und mit demselben Zeitstempel neu gestartet, Verhungern wird vermieden.

  

Ich hoffe das oben   Klare Erklärungen mit Diagramm müssen dir klar gemacht haben   Konzept und Vorteile von Rigoros gegenüber dem anderen.

Danke

    
tharif 05.05.2015 10:01
quelle
2

I - es gibt einen Vorteil

Sehen Sie sich diese Vorlesungsnotiz von UCLA an :

  

Rigorous Zwei-Phasen-Verriegelung hat die Vorteile der strengen 2PL. In Ergänzung   Es hat die Eigenschaft, dass für zwei widersprüchliche Transaktionen ihre Commit-Reihenfolge   ist ihre Reihenfolge der Serialisierbarkeit. In einigen Systemen können Benutzer dieses Verhalten erwarten.

Diese Vorlesungsnotizen haben ein Beispiel (das Modell im Beispiel) ist streng - nicht streng):

  

Betrachte zwei Transaktionen, die am gleichen Standort durchgeführt werden, in denen eine lang laufende Transaktion T1, die x liest, vor einer kurzen Transaktion T2 angeordnet wird, die x schreibt. T2 kehrt zuerst zurück und zeigt eine Aktualisierungsversion von x, lange bevor T1 abgeschlossen ist, basierend auf der alten Version.

II und III - hat keinen Einfluss auf Deadlocks / Verhungern

Rigorous 2PL bedeutet, dass alle Sperren nach Abschluss der Transaktion freigegeben sind, im Gegensatz zu strict, bei denen schreibgeschützte Sperren möglicherweise früher freigegeben werden. Dies wirkt sich nicht auf Deadlocks oder Verhungern aus, die in der Phase expanding auftreten (eine Transaktion kann die erforderliche Sperre nicht erhalten). In einem Deadlock sind beide Prozesse immer in der expandierenden Phase.

IV - beide müssen die benötigten Daten zum Sperren in der expandierenden Phase kennen - die Schrumpfphase variiert

Strict: Ich kenne die üblichen Implementierungsdetails von strict 2PL nicht, aber wenn eine Lesesperre ausgelöst wird, bevor eine Transaktion endet, muss es ein Wissen geben (100% sichere Vorhersage, wenn Sie möchten) dass die Sperre später in der Transaktion nicht benötigt wird.
Rigoros: Alle gelesenen Sperren werden am Ende einer Transaktion freigegeben und die Transaktion muss nie auswerten, ob sie eine Lesesperre freigeben soll oder behalte es für spätere Lesevorgänge in der Transaktion.

Wird streng oder streng mehr / bevorzugt?

Welches dieser beiden Modelle verwendet wird, hängt von der Situation ab. Moderne DBMS verwenden komplexere Concurrency-Handhabung als einfache strenge oder strikte 2PL. Nach dem Wikipedia-Artikel über zweiphasiges Sperren ist das rigorose (SS2PL) -Modell mehr weit verbreitet:

  

SS2PL [rigoros] ist seit den Anfängen in den 1970er Jahren das Protokoll der Wahl des Nebenläufigkeitskontrollsystems der meisten Datenbanksysteme. [...]

     2PL in seiner allgemeinen Form sowie in Kombination mit der Strenge, d. h. Strict 2PL (S2PL), sind in der Praxis nicht bekannt. Der populäre SS2PL erfordert keine Markierung "Ende von Phase 1" wie 2PL und S2PL und ist somit einfacher zu implementieren. Im Gegensatz zu dem allgemeinen 2PL stellt SS2PL, wie oben erwähnt, die nützlichen Ordnungseigenschaften Strenge und Commitment bereit. [...]

     

SS2PL vs. S2PL: Beide bieten Serialisierbarkeit und Strenge. Da S2PL eine Superklasse von SS2PL ist, kann es im Prinzip mehr Nebenläufigkeit bereitstellen. In der Praxis wird jedoch praktisch kein Parallelitätsvorteil bemerkt (für beide existiert genau dasselbe Locking mit praktisch nicht sehr viel früherer Lock-Release für S2PL) und der Aufwand für die Behandlung eines Phasenende-1-Mechanismus in S2PL, getrennt von Transaktions- Ende, ist nicht gerechtfertigt. Während SS2PL Commitment-Bestellungen bereitstellt, ist dies bei S2PL nicht der Fall. Dies erklärt die Bevorzugung von SS2PL gegenüber S2PL. [...]

    
Simo Kivistö 20.04.2015 13:52
quelle
1

Die Transaktion T2 in dem obigen Beispiel folgt nicht 2PL und S2PL, da eine Sperranforderung (Sperre B) nach dem Entriegeln der Sperre (A) erfolgt ist - und daher das Protokoll verletzt.

    
user5332534 14.09.2015 05:19
quelle