DBMS-Parallelitätskontrolle: Zeitstempel- und sperrenbasierte Protokolle

Was ist Parallelitätskontrolle?

Gleichzeitigkeitskontrolle Im Datenbankverwaltungssystem handelt es sich um ein Verfahren zur gleichzeitigen VerwaltungneoWir arbeiten ohne Konflikte miteinander. Es stellt sicher, dass Datenbanktransaktionen gleichzeitig und genau ausgeführt werden, um korrekte Ergebnisse zu erzielen, ohne die Datenintegrität der jeweiligen Datenbank zu verletzen.

Der gleichzeitige Zugriff ist recht einfach, wenn alle Benutzer nur Daten lesen. Es gibt keine Möglichkeit, dass sie sich gegenseitig stören. Allerdings würde jede praktische Datenbank eine Mischung aus READ- und WRITE-Vorgängen haben und daher ist die Parallelität eine Herausforderung.

Zur Bewältigung solcher Konflikte, die meist bei Mehrbenutzersystemen auftreten, wird DBMS Concurrency Control eingesetzt. Daher ist die Parallelitätskontrolle das wichtigste Element für das ordnungsgemäße Funktionieren eines Datenbankverwaltungssystems, in dem zwei oder mehr Datenbanktransaktionen gleichzeitig ausgeführt werdenneoin der Regel, die den Zugriff auf dieselben Daten erfordern.

Mögliche Probleme der Parallelität

Hier sind einige Probleme, die bei der Verwendung der DBMS-Parallelitätskontrollmethode wahrscheinlich auftreten werden:

  • Verlorene Updates treten auf, wenn mehrere Transaktionen dieselbe Zeile auswählen und die Zeile basierend auf dem ausgewählten Wert aktualisieren
  • Probleme mit nicht festgeschriebenen Abhängigkeiten treten auf, wenn die zweite Transaktion eine Zeile auswählt, die von einer anderen Transaktion aktualisiert wird (schmutzig lesen)
  • Nicht wiederholbares Lesen tritt auf, wenn eine zweite Transaktion mehrmals versucht, auf dieselbe Zeile zuzugreifen und jedes Mal andere Daten liest.
  • Problem mit der falschen Zusammenfassung tritt auf, wenn eine Transaktion den Wert aller Instanzen eines wiederholten Datenelements zusammenfasst und die zweite Transaktion einige Instanzen dieses bestimmten Datenelements aktualisiert. In diesem Fall spiegelt die resultierende Zusammenfassung kein korrektes Ergebnis wider.

Warum die Parallelitätsmethode verwenden?

Gründe für die Verwendung der Parallelitätskontrollmethode sind DBMS:

  • Anwendung der Isolation durch gegenseitigen Ausschluss zwischen widersprüchlichen Transaktionen
  • Zur Lösung von Lese-Schreib- und Schreib-Schreib-Konfliktproblemen
  • Wahrung der Datenbankkonsistenz durch ständige Beibehaltung von Ausführungshindernissen
  • Das System muss die Interaktion zwischen den gleichzeitigen Transaktionen steuern. Diese Steuerung wird mithilfe von Parallelsteuerungsschemata erreicht.
  • Die Parallelitätskontrolle trägt dazu bei, die Serialisierbarkeit sicherzustellen

Beispiel

Nehmen Sie an, dass zwei Personen gleichzeitig elektronische Kioske aufsuchen, um eine Kinokarte für denselben Film und dieselbe Vorführungsdauer zu kaufen.

Für die Filmvorführung in diesem Kino ist jedoch nur noch ein Platz frei. Ohne Parallelitätskontrolle im DBMS ist es möglich, dass am Ende beide Kinobesucher eine Eintrittskarte kaufen. Die Parallelitätskontrollmethode lässt dies jedoch nicht zu. Beide Kinobesucher können weiterhin auf die in der Kinositzdatenbank enthaltenen Informationen zugreifen. Die Parallelitätskontrolle stellt jedoch nur dem Käufer ein Ticket zur Verfügung, der den Transaktionsprozess zuerst abgeschlossen hat.

Parallelitätskontrollprotokolle

Verschiedene Parallelitätskontrollprotokolle bieten unterschiedliche Vorteile hinsichtlich des Umfangs der Parallelität, den sie zulassen, und des Umfangs des Overheads, den sie verursachen. Following sind die Parallelitätskontrolltechniken im DBMS:

  • Sperrbasierte Protokolle
  • Zwei-Phasen-Verriegelungsprotokoll
  • Zeitstempelbasierte Protokolle
  • Validierungsbasierte Protokolle

Sperrbasierte Protokolle

Sperrbasierte Protokolle Im DBMS handelt es sich um einen Mechanismus, bei dem eine Transaktion die Daten nicht lesen oder schreiben kann, bis sie eine entsprechende Sperre erhält. Sperrbasierte Protokolle helfen dabei, das Parallelitätsproblem im DBMS gleichzeitig zu beseitigenneoUS-Transaktionen durch Sperren oder Isolieren einer bestimmten Transaktion für einen einzelnen Benutzer.

A lock is a data variable which is associated with a data item. This lock signifies that operations that can be performed on the data item. Locks in DBMS help synchronize access to the database items by concurrent transactions.

Alle Sperranforderungen werden an den Concurrency-Control-Manager gestellt. Transaktionen werden erst fortgesetzt, wenn der Sperranforderung stattgegeben wird.

Binäre Schlösser: Eine binäre Sperre für ein Datenelement kann entweder den Status „gesperrt“ oder „entsperrt“ haben.

Geteilt/exklusiv: Diese Art von Sperrmechanismus trennt die Sperren im DBMS nach ihrer Verwendung. Wenn eine Sperre für ein Datenelement erworben wird, um einen Schreibvorgang auszuführen, wird dies als exklusive Sperre bezeichnet.

1. Gemeinsame Sperre (S):

Eine gemeinsame Sperre wird auch als schreibgeschützte Sperre bezeichnet. Mit der gemeinsamen Sperre kann das Datenelement zwischen Transaktionen gemeinsam genutzt werden. Dies liegt daran, dass Sie niemals die Berechtigung haben, Daten für das Datenelement zu aktualisieren.

Stellen Sie sich beispielsweise einen Fall vor, in dem zwei Transaktionen den Kontostand einer Person ermitteln. Der Datenbank lässt sie lesen, indem eine gemeinsame Sperre eingerichtet wird. Wenn jedoch eine andere Transaktion den Kontostand aktualisieren möchte, verhindert die gemeinsame Sperre dies, bis der Lesevorgang abgeschlossen ist.

2. Exklusive Sperre (X):

Mit dem Exclusive Lock kann ein Datenelement sowohl gelesen als auch geschrieben werden. Dies ist exklusiv und kann nicht gleichzeitig für dasselbe Datenelement erfolgen. X-Lock wird mit der Lock-x-Anweisung angefordert. Transaktionen können das Datenelement nach Abschluss des Schreibvorgangs entsperren.

Zum Beispiel, wenn eine Transaktion den Kontostand einer Person aktualisieren muss. Sie können diese Transaktion zulassen, indem Sie eine X-Sperre darauf setzen. Wenn daher die zweite Transaktion lesen oder schreiben möchte, wird dieser Vorgang durch eine exklusive Sperre verhindert.

3. Vereinfachtes Sperrprotokoll

Diese Art von sperrenbasierten Protokollen ermöglicht es Transaktionen, vor Beginn der Operation eine Sperre für jedes Objekt zu erhalten. Transaktionen können das Datenelement nach Abschluss des Schreibvorgangs entsperren.

4. Vorläufige Sperrung

Das Voranfordern des Sperrprotokolls hilft dabei, Vorgänge auszuwerten und eine Liste der erforderlichen Datenelemente zu erstellen, die zum Einleiten eines Ausführungsprozesses erforderlich sind. Wenn alle Sperren gewährt sind, wird die Transaktion ausgeführt. Danach werden alle Sperren freigegeben, wenn alle Vorgänge abgeschlossen sind.

Verhungern

Unter Hunger versteht man die Situation, wenn eine Transaktion auf unbestimmte Zeit warten muss, um eine Sperre zu erhalten.

Following sind die Gründe für Hunger:

  • Wenn das Warteschema für gesperrte Elemente nicht ordnungsgemäß verwaltet wird
  • Im Falle eines Ressourcenlecks
  • Die gleiche Transaktion wird wiederholt als Opfer ausgewählt

Deadlock

Deadlock bezieht sich auf eine bestimmte Situation, in der zwei oder mehr Prozesse darauf warten, dass der andere eine Ressource freigibt, oder mehr als zwei Prozesse in einer zirkulären Kette auf die Ressource warten.

Zwei-Phasen-Verriegelungsprotokoll

Zwei-Phasen-Verriegelungsprotokoll Auch als 2PL-Protokoll bekannt, handelt es sich um eine Methode zur Parallelitätskontrolle in DBMS, die die Serialisierbarkeit gewährleistet, indem eine Sperre auf die Transaktionsdaten angewendet wird, die andere Transaktionen daran hindert, gleichzeitig auf dieselben Daten zuzugreifenneonormalerweise. Das Two Phase Locking-Protokoll hilft, das Parallelitätsproblem im DBMS zu beseitigen.

Dieses Sperrprotokoll unterteilt die Ausführungsphase einer Transaktion in drei verschiedene Teile.

  • In der ersten Phase, wenn die Transaktion ausgeführt wird, benötigt sie die Erlaubnis für die benötigten Sperren.
  • Im zweiten Teil erhält die Transaktion alle Sperren. Wenn eine Transaktion ihre erste Sperre aufhebt, beginnt die dritte Phase.
  • In dieser dritten Phase kann die Transaktion keine neuen Sperren verlangen. Stattdessen werden nur die erworbenen Sperren freigegeben.

Zwei-Phasen-Verriegelungsprotokoll

Das Two-Phase Locking-Protokoll ermöglicht es jeder Transaktion, in zwei Schritten eine Sperr- oder Entsperranforderung zu stellen:

  • Growing Phase: In dieser Phase kann die Transaktion Sperren erhalten, aber keine Sperren freigeben.
  • Schrumpfungsphase: In dieser Phase kann eine Transaktion Sperren freigeben, aber keine neue Sperre erhalten

Es stimmt, dass das 2PL-Protokoll Serialisierbarkeit bietet. Es stellt jedoch nicht sicher, dass deadlocks passieren nicht.

Im oben angegebenen Diagramm können Sie die lokale und globale De sehenadlock detectors are searching for deadlocks und lösen Sie sie, indem Sie die Transaktionen in ihren ursprünglichen Zustand zurückversetzen.

Strenge Zweiphasen-Verriegelungsmethode

Das Strict-Two-Phase-Locking-System ähnelt fast dem 2PL. Der einzige Unterschied besteht darin, dass Strict-2PL nach der Verwendung niemals eine Sperre aufhebt. Es hält alle Sperren bis zum Commit-Punkt und gibt alle Sperren auf einmal frei, wenn der Prozess beendet ist.

Zentralisiertes 2PL

Bei Centralized 2 PL ist ein einzelner Standort für den Sperrverwaltungsprozess verantwortlich. Es gibt nur einen Sperrmanager für das gesamte DBMS.

Primäre Kopie 2PL

Primärer 2PL-Kopiermechanismus, viele Sperrmanager werden auf verschiedene Standorte verteilt. Danach ist ein bestimmter Sperrmanager für die Verwaltung der Sperre für eine Reihe von Datenelementen verantwortlich. Wenn die primäre Kopie aktualisiert wurde, wird die Änderung an die Slaves weitergegeben.

Verteiltes 2PL

Bei diesem zweistufigen Sperrmechanismus werden Sperrmanager an alle Standorte verteilt. Sie sind für die Verwaltung der Datensperren an diesem Standort verantwortlich. Wenn keine Daten repliziert werden, entspricht dies der primären Kopie 2PL. Die Kommunikationskosten von Distributed 2PL sind deutlich höher als die von primärer Kopie 2PL

Zeitstempelbasierte Protokolle

Zeitstempelbasiertes Protokoll in DBMS ist ein Algorithmus, der die Systemzeit oder den logischen Zähler als Zeitstempel verwendet, um die Ausführung gleichzeitiger Transaktionen zu serialisieren. Das auf Zeitstempeln basierende Protokoll stellt sicher, dass alle widersprüchlichen Lese- und Schreibvorgänge in einer Zeitstempelreihenfolge ausgeführt werden.

Bei dieser Methode erhält die ältere Transaktion immer Vorrang. Es verwendet die Systemzeit, um den Zeitstempel der Transaktion zu ermitteln. Dies ist das am häufigsten verwendete Parallelitätsprotokoll.

Sperrbasierte Protokolle helfen Ihnen, die Reihenfolge zwischen den widersprüchlichen Transaktionen zu verwalten, wenn sie ausgeführt werden. Zeitstempelbasierte Protokolle verwalten Konflikte, sobald eine Operation erstellt wird.

Beispiel:

Suppose there are there transactions T1, T2, and T3. 
T1 has entered the system at time 0010 
T2 has entered the system at 0020
T3 has entered the system at 0030
Priority will be given to transaction T1, then transaction T2 and lastly Transaction T3.

Vorteile:

  • Zeitpläne sind genau wie 2PL-Protokolle serialisierbar
  • Kein Warten auf die Transaktion, wodurch die Möglichkeit einer De-Transaktion ausgeschlossen istadlocks!

Nachteile:

Ein Verhungern ist möglich, wenn dieselbe Transaktion neu gestartet und immer wieder abgebrochen wird

Validierungsbasiertes Protokoll

Validierungsbasiertes Protokoll In DBMS, auch als Optimistic Concurrency Control Technique bekannt, handelt es sich um eine Methode zur Vermeidung von Parallelität bei Transaktionen. Bei diesem Protokoll werden die lokalen Kopien der Transaktionsdaten und nicht die Daten selbst aktualisiert, was zu weniger Störungen bei der Ausführung der Transaktion führt.

Das validierungsbasierte Protokoll wird im Folgenden ausgeführtwing drei Phasen:

  1. Lesephase
  2. Validierungsphase
  3. Schreibphase

Lesephase

In der Lesephase können die Datenwerte aus der Datenbank von einer Transaktion gelesen werden, der Schreibvorgang oder die Aktualisierungen werden jedoch nur auf die lokalen Datenkopien angewendet, nicht auf die eigentliche Datenbank.

Validierungsphase

In der Validierungsphase werden die Daten überprüft, um sicherzustellen, dass beim Anwenden der Transaktionsaktualisierungen auf die Datenbank keine Verletzung der Serialisierbarkeit vorliegt.

Schreibphase

In der Schreibphase werden die Aktualisierungen auf die Datenbank angewendet, wenn die Validierung erfolgreich ist, andernfalls; Die Aktualisierungen werden nicht angewendet und die Transaktion wird zurückgesetzt.

Merkmale eines guten Parallelitätsprotokolls

Ein idealer DBMS-Mechanismus zur Parallelitätskontrolle hat den folgendenwing Ziele:

  • Muss gegenüber Standort- und Kommunikationsausfällen widerstandsfähig sein.
  • Es ermöglicht die parallele Ausführung von Transaktionen, um maximale Parallelität zu erreichen.
  • Seine Speichermechanismen und Rechenmethoden sollten bescheiden sein, um den Overhead zu minimieren.
  • Es müssen einige Einschränkungen für die Struktur von erzwungen werden atomIC-Aktionen von Transaktionen.

Zusammenfassung

  • Parallelitätskontrolle ist das Verfahren in DBMS für die gleichzeitige VerwaltungneoWir arbeiten ohne Konflikte miteinander.
  • Verlorene Updates, Dirty Read, Non-Repeatable Read und Incorrect Summary Issue sind Probleme, die aufgrund mangelnder Parallelitätskontrolle auftreten.
  • Lock-Based, Two-Phase, Timestamp-Based, Validation-Based sind Arten von Parallelitätsverarbeitungsprotokollen
  • Die Sperre kann „Gemeinsam“ (S) oder „Exklusiv“ (X) sein.
  • Das Zwei-Phasen-Sperrprotokoll, das auch als 2PL-Protokoll bekannt ist, erfordert, dass die Transaktion eine Sperre erhält, nachdem sie eine ihrer Sperren freigegeben hat. Es hat 2 Phasen growing und schrumpft.
  • Der zeitstempelbasierte Algorithmus verwendet einen Zeitstempel, um die Ausführung gleichzeitiger Transaktionen zu serialisieren. Das Protokoll verwendet die Systemzeit oder logische Anzahl als ein Zeitstempel.