Dein letzter Login ist schon eine Weile her.

Bitte überprüfe, ob alle Angaben in Deinem Profil noch aktuell sind.


23.12.2020
von Jesko
in IT-Talents

Was ist ein Commit-Protokoll?

x
Für Unternehmen:
IT-Nachwuchs kennenlernen!
Jetzt starten

Lesezeit: ca. 2 Min.

Bewerten

Themen auf dieser Seite:

Sichere Transaktionen durchführen

Du hast sicher auch schon davon gehört, dass es bestimmte einheitliche Verfahren gibt, um sicherzustellen, dass Transaktionen in einem Datenbanksystem, das verteilt arbeitet, konsistent auszuführen sind und Fehler so gut es geht minimiert werden können. Mit diesen Verfahren sollen unterschiedliche Fehlerkonstellationen wie beispielsweise einzelne Systemausfälle oder eine Unterbrechung der Netzwerkverbindung verhindert werden.

Was ist ein Commit-Protokoll?

Ein Commit-Protokoll ist ein Verfahren, das Transaktionen sicherer machen soll und neben der Konsistenz auch die Einhaltung der ACID-Standards bei Transaktionen sicherstellen soll. An diesem Verfahren sind der Koordinator und einzelne Agenten beteiligt, die die Transaktionen vereinbaren und festschreiben.

Welche Varianten gibt es?

Die beiden häufigsten Varianten sind das 2-Phasen-Commit sowie das 3-Phasen-Commit-Protokoll. Je nach der Erfordernis, wie stabil und konsistent ein System und die darin zu erfolgenden Transaktionen sein sollen, fällt die Wahl auf eine der beiden Lösungen.

Zwei-Phasen-Commit-Protokoll

Im Grundprinzip beim 2-Phasen Commit kommen zwei einzelne Phasen (das erklärt den Namen) zur Anwendung, die die Transaktion absolvieren müssen.

Phase eins ist dabei die Vorbereitungsphase. Zu diesem Zeitpunkt setzt der Koordinator die Agenten davon in Kenntnis, dass er eine Transaktion durchführen möchte. Die involvierten Agenten können dann zustimmen oder die Transaktion ablehnen.

Das Ergebnis von Phase 1 teilt der Koordinator den Agenten mit. Nur wenn alle zustimmen erfolgt der Commit durch den Koordinator und die Festschreibung durch die Agenten. Sofern die Agenten ablehnen oder nicht antworten, erfolgt das Rücksetzen der Transaktion durch den Koordinator (Rollback).

In der Anwendung erfolgt in den beiden Phasen eine wechselseitige Kommunikation zwischen dem Koordinator und den Agenten und je nach der Antwort der Agenten wird die Transaktion entweder festgeschrieben oder abgebrochen. Durch dieses genormte Vorgehen wird eine signifikante Reduzierung der Fehlerhäufigkeit erreicht.

Vorteile

Der Hauptvorteil, den Du bei der Verwendung des 2-Phasen Commit hast, besteht darin, natürlich die erhöhte Konsistenz bei den Transaktion zu erzielen und die Reduzierung der Fehlerhäufigkeit zu erreichen. Es kann zum Beispiel auch keine Probleme mit einzelnen abstürzenden Rechnern geben, weil immer sichergestellt ist, dass die Korrektheit der Transaktion bei jedem Empfänger gleichlautend eingeht.

Nachteile

Es gibt aber auch Nachteile. Das größte Risiko beim Zwei-Phasen-Commit Verfahren ist die Blockierung der gewünschten Transaktion. Diese kommt dann vor, wenn in der Vorbereitungsphase eine Antwort des Koordinators auf die Mitteilung der Entscheidung für oder gegen die Transaktion durch den Agenten bzw. Koordinator nicht erfolgt. Während der Agent auf die Antwort des Koordinators wartet, kann der Agent die Transaktion weder abschließen noch eine Rücksetzung erteilen. Ressourcen sind in dieser Phase blockiert und weitere andere Transaktionen können gar nicht erst erfolgen. Bei Fehlern in der Kommunikation kann dieses Blockade Phase auch länger andauern. In der Zeit können die Agenten auch keine anderen Transaktionen bearbeiten.

Drei-Phasen-Commit-Protokoll

Das Grundprinzip lautet Stabilität sichern. Um das Verfahren mit Commit Protokollen stabiler zu machen, gibt es auch die Variante als 3-Phasen-Commit.

Hierbei ist das Hauptziel, die Gefahr von drohenden Blockaden zu vermeiden. Dafür wird zum einen die Zahl der erforderlichen Nachrichtenrunden erhöht, damit, wenn der Koordinator ausfallen sollte, dessen Funktion im Protokoll durch eine anderen Koordinator übernommen werden kann.

Bei der Anwendung wird das 3-Phasen-Commit-Protokoll immer dann eingesetzt, wenn das System noch störungsfreier sein muss und unbedingt sichergestellt werden muss, dass die Transaktion auch konsistent durchgeführt wird. Der Vorteil liegt vor allem darin, dass die Anzahl der Protokollierungen und der notwendigen Nachrichten reduziert wird. Dadurch wird die Transaktion stabiler. Als Nachteil ist zu nennen, dass das Verfahren logistisch aufwendiger ist, weil Du mehr als einen Koordinator benötigst.

Fazit

Lösungen und genormte Verfahren wie ein Commit-Protokoll bieten Dir eine hohe Sicherheit dafür, dass Transaktionen konsistent in einem Datensystem, das verteilt arbeitet, gesichert durchgeführt werden können und Störungen weitgehend neutralisiert werden können. In der Praxis sind das Zwei-Phasen-Commit-Protokoll sowie das Drei-Phasen-Commit-Protokoll die bewährten Verfahren, die dieses erwünschte Ergebnis sicherstellen.

Aktuelle Aktionen:

IT-Stipendium November 2020

1200€ Förderung für IT-Talente!


Sei dabei und sichere Dir beim IT-Stipendium November 2020 bis zu 1200€ Förderung.
Jetzt bewerben!

IT-Stipendium November 2020 NRW

Stipendium für Informatiker aus NRW


Sei dabei und sichere Dir beim IT-Stipendium November 2020 bis zu 1200€ Förderung.
Jetzt bewerben!

IT-Talents ist ein Netzwerk nur für IT'ler. Auf unserer Plattform kannst Du Dich als registriertes Mitglied mit wenigen Klicks auf die Jobs unserer Partnerunternehmen oder auf IT-Projekte für Studierende bewerben. Darüberhinaus führen wir Wettbewerbe durch und vergeben IT-Stipendien.

Jetzt Mitglied werden.

Schnell-Login für unsere Mitglieder

Tipp: Halte Dein Profil aktuell.

Lass' uns wissen, falls sich etwas Neues bei Dir ergibt.

Tipp: Vervollständige Dein Profil für noch bessere Karrierechancen.

Bist Du Schüler, Student oder bereits berufstätig? Teile uns Deinen aktuellen Status mit, damit wir Dir sinnvolle Aufgaben anbieten können.

Jetzt Status angeben

Wann stehst Du der IT-Branche zur Verfügung?

Bitte Monat und Jahr angeben.

{{ perspectiveForm.availableFrom.$error.dynamic }}

Neuer Versuch

Wo möchtest Du durchstarten?

{{ location.geolocation.name }}×
Bitte mindestens ein Ort angeben.

Als {{currentUser.status.title}} bist Du bereit für:


Lade Beschäftigungsarten

Bitte wähle den Zeitpunkt, Ort und min. eine Beschäftigungsart aus.

You have voted!
Schliessen
Vote for:
stars
Vote
You have not rated!