Optimistische Parallelitätskontrolle

Im Feld von Verwandtschaftsdatenbankverwaltungssystemen ist optimistische Parallelitätskontrolle (OCC) eine Parallelitätskontrollmethode, die annimmt, dass vielfache Transaktionen vollenden können, ohne einander zu betreffen, und dass deshalb Transaktionen weitergehen können, ohne die Datenmittel zu schließen, die sie betreffen. Vor der Begehung prüft jede Transaktion nach, dass keine andere Transaktion seine Daten modifiziert hat. Wenn die Kontrolle widerstreitende Modifizierungen offenbart, wiederholt die Begehungstransaktion. Optimistische Parallelitätskontrolle wurde zuerst von H.T. Kung vorgeschlagen.

OCC wird allgemein in Umgebungen mit dem niedrigen Datenstreit verwendet. Wenn Konflikte selten sind, können Transaktionen ohne den Aufwand vollenden, Schlösser zu führen, und ohne Transaktionen zu haben, warten auf die Schlösser anderer Transaktionen, um sich zu klären, zu höherem Durchfluss führend, als andere Parallelitätskontrollmethoden. Jedoch, wenn Konflikte häufig, die Kosten der wiederholt Wiederstarttransaktionsschmerz-Leistung bedeutsam geschehen; andere Parallelitätskontrollmethoden haben bessere Leistung unter diesen Bedingungen.

OCC Phasen

Mehr spezifisch schließen OCC Transaktionen diese Phasen ein:

  • Beginnen Sie: Registrieren Sie einen Zeitstempel, der den Anfang der Transaktion kennzeichnet.
  • Modifizieren Sie: Lesen Sie und schreiben Sie Datenbankwerte.
  • Machen Sie gültig: Überprüfen Sie, ob andere Transaktionen Daten modifiziert haben, die diese Transaktion verwendet hat (lesen Sie, oder hat geschrieben). Überprüfen Sie immer Transaktionen, die nach der Anfang-Zeit dieser Transaktion vollendet haben. Überprüfen Sie fakultativ Transaktionen, die noch in der Gültigkeitserklärungszeit aktiv sind.
  • Commit/Rollback: Wenn es keinen Konflikt gibt, machen Sie den ganzen Änderungsteil des offiziellen Staates der Datenbank. Wenn es einen Konflikt gibt, lösen Sie es normalerweise auf indem Sie die Transaktion abbrechen, obwohl andere Entschlossenheitsschemas möglich sind.

Webgebrauch

Die staatenlose Natur von HTTP macht Blockierung unausführbar für Webbenutzerschnittstellen. Es ist für einen Benutzer üblich anzufangen, eine Aufzeichnung zu editieren, dann ohne folgenden eine "Annullieren-" oder "Abmeldungs"-Verbindung zu verlassen. Wenn Blockierung verwendet wird, müssen andere Benutzer, die versuchen, dieselbe Aufzeichnung zu editieren, bis zu den Aussperrungszeiten des ersten Benutzers warten.

HTTP stellt wirklich eine Form von integriertem OCC, mit dem ETag und den Wenn-Match-Kopfbällen zur Verfügung.

Einige Datenbankverwaltungssysteme bieten OCC heimisch an - ohne speziellen Anwendungscode zu verlangen. Für andere kann die Anwendung eine OCC Schicht außerhalb der Datenbank durchführen und vermeiden, zu warten oder still Aufzeichnungen zu überschreiben. In solchen Fällen schließt die Form ein verborgenes Feld mit dem ursprünglichen Inhalt der Aufzeichnung, einem Zeitstempel, einer Folge-Zahl oder einem undurchsichtigen Jeton ein. Darauf gehorchen, das wird gegen die Datenbank verglichen. Wenn es sich unterscheidet, wird der Konfliktentschlossenheitsalgorithmus angerufen.

Beispiele

  • MediaWiki editieren Seitengebrauch OCC.
  • Bugzilla verwendet OCC; editieren Sie Konflikte werden "Mitte Luftkollisionen" genannt.
  • Der Rubin auf dem Schiene-Fachwerk hat eine API für OCC.
  • Das Gral-Fachwerk verwendet OCC in seiner Verzug-Vereinbarung.
  • Die meisten Revisionsregelsysteme unterstützen das "Verflechtungs"-Modell für die Parallelität, die OCC ist.
  • Mimer SQL ist ein DBMS, der nur optimistische Parallelitätskontrolle durchführt.
  • Google App Motordatenladen verwendet OCC.
  • ElasticSearch suchen Motorunterstützungen OCC über das Versionsattribut.

Siehe auch

  • Server-Nachricht Block#Opportunistic, sich schließen lassend

Links

  • Unternehmen JavaBeans, 3.0, Durch Bill Burke, Richard Monson-Haefel, Kapitel 16. Transaktionen, Abschnitt 16.3.5. Optimistische Blockierung, Herausgeber: O'Reilly, die Bar Date: Am 16. Mai 2006, internationale Druckstandardbuchnummer 0 596 00978 X,

Ruf / Absurdism
Impressum & Datenschutz