Transaktionsverarbeitung
Transaktionsverarbeitung ist Informationsverarbeitung in Informatik[1] Das wird in individuelle, unteilbare Operationen unterteilt Transaktionen. Jede Transaktion muss erfolgreich sein oder scheitern als komplette Einheit; Es kann niemals nur teilweise vollständig sein.
Wenn Sie beispielsweise ein Buch in einem Online -Buchladen kaufen, tauschen Sie Geld (in Form von Kredit) gegen ein Buch aus. Wenn Ihr Guthaben gut ist, stellt eine Reihe verwandter Operationen sicher, dass Sie das Buch erhalten und die Buchhandlung Ihr Geld erhält. Wenn jedoch eine einzige Operation in der Serie während des Austauschs fehlschlägt, schlägt der gesamte Austausch fehl. Sie erhalten das Buch nicht und die Buchhandlung bekommt Ihr Geld nicht. Die Technologie, die für die Aushandlung des Austauschs ausbalanciert und vorhersehbar ist, wird als Transaktionsverarbeitung bezeichnet. Transaktionen stellen sicher, dass datenorientierte Ressourcen nicht dauerhaft aktualisiert werden, wenn alle Vorgänge innerhalb der Transaktionseinheit erfolgreich abgeschlossen werden. Durch die Kombination einer Reihe verwandter Vorgänge in eine Einheit, die entweder vollständig erfolgreich ist oder vollständig fehlschlägt, kann man die Fehlerwiederherstellung vereinfachen und die Anwendung zuverlässiger machen.
Transaktionsverarbeitungssysteme bestehen aus Computerhardware und Software, die eine transaktionorientierte Anwendung hostet, die die zur Durchführung von Geschäftstätigkeit erforderlichen Routinetransaktionen durchführt. Beispiele hierfür sind Systeme, die den Eintritt in die Bestellung, die Reservierungen von Fluggesellschaften, die Lohn- und Gehaltsabrechnung, die Mitarbeiteraufzeichnungen, die Fertigung und den Versand verwalten.
Da die meisten, wenn auch nicht unbedingt alles, ist die Transaktionsverarbeitung heute interaktiv der Begriff Online -Transaktionsverarbeitung.
Beschreibung
Die Transaktionsverarbeitung ist so konzipiert, dass die Integrität eines Systems aufrechterhalten wird (normalerweise a Datenbank oder einige modern Dateisysteme) In einem bekannten konsistenten Zustand, indem sichergestellt wird, dass voneinander abhängige Operationen am System entweder erfolgreich oder alle erfolgreich abgesagt werden.
Betrachten Sie beispielsweise eine typische Bankgeschäfte, bei der 700 US -Dollar vom Sparkonto eines Kunden auf das Girokonto eines Kunden verschoben werden. Diese Transaktion umfasst mindestens zwei separate Vorgänge in Computerbedingungen: das Sparkonto um 700 US -Dollar und das Girokonto um 700 US -Dollar zu verdanken. Wenn eine Operation erfolgreich ist, aber die andere nicht, werden die Bücher der Bank am Ende des Tages nicht ausgleichen. Es muss daher eine Möglichkeit geben, sicherzustellen, dass beide Operationen erfolgreich sind oder beide fehlschlagen, so dass in der Datenbank der Bank als Ganzes keine Inkonsistenz vorliegt.
Die Transaktionsverarbeitung verbindet mehrere einzelne Operationen in einer einzelnen unteilbaren Transaktion und stellt sicher, dass entweder alle Operationen in einer Transaktion ohne Fehler abgeschlossen sind oder keine davon. Wenn einige der Operationen abgeschlossen sind, bei dem die anderen, wenn die anderen versucht werden, Fehler auftreten, rollt das Transaktionsverarbeitungssystem "zurück". alle von den Operationen der Transaktion (einschließlich der erfolgreichen), wodurch alle Spuren der Transaktion gelöscht und das System in den konsequenten, bekannten Zustand zurückgeführt wird, der vor der Verarbeitung der Transaktion begann. Wenn alle Operationen einer Transaktion erfolgreich abgeschlossen sind, ist die Transaktion engagiert sein durch das System und alle Änderungen an der Datenbank werden dauerhaft gemacht; Die Transaktion kann nicht zurückgerollt werden, sobald dies erledigt ist.
Transaktionsverarbeitungswächter gegen Hardware- und Softwarefehler, die eine Transaktion teilweise abgeschlossen lassen. Wenn das Computersystem in der Mitte einer Transaktion abstürzt, garantiert das Transaktionsverarbeitungssystem, dass alle Vorgänge in nicht verbindlichen Transaktionen abgebrochen werden.
Im Allgemeinen werden Transaktionen gleichzeitig ausgegeben. Wenn sie sich überlappen (d. H. Der gleiche Teil der Datenbank berühren), kann dies Konflikte verursachen. Wenn der im obige Beispiel erwähnte Kunde beispielsweise 150 US -Dollar in seinem Sparkonto hat und versucht, 100 US -Dollar auf eine andere Person zu überweisen, während gleichzeitig 100 US -Dollar auf das Girokonto verschoben werden, kann nur einer von ihnen erfolgreich sein. Das Nachfolgen von Transaktionen, die nacheinander verarbeitet werden, ist jedoch ineffizient. Gleichzeitige Implementierungen der Transaktionsverarbeitung werden daher programmiert, um sicherzustellen, dass das Endergebnis ein konfliktfreies Ergebnis widerspiegelt, das gleich Serialisierbarkeit). In unserem Beispiel bedeutet dies, dass unabhängig von der Transaktion zuerst die Übertragung an eine andere Person oder der Umzug zum Girokonto erfolgreich ist, während der andere fehlschlägt.
Methodik
Die Grundprinzipien aller Transaktionsverarbeitungssysteme sind gleich. Die Terminologie kann jedoch von einem Transaktionsprozesssystem zum anderen variieren, und die nachstehend verwendeten Begriffe sind nicht unbedingt universell.
Rollback
Transaktionsverarbeitungssysteme gewährleisten die Datenbankintegrität, indem sie Zwischenzustände der Datenbank aufzeichnen, wie sie geändert wird, und diese Datensätze verwenden, um die Datenbank in einen bekannten Zustand wiederherzustellen, wenn eine Transaktion nicht festgelegt werden kann. Zum Beispiel Kopien von Informationen in der Datenbank frühere zu seiner Änderung durch eine Transaktion werden vom System vorgesehen, bevor die Transaktion Änderungen vornehmen kann (dies wird manchmal als a genannt Vor dem Bild). Wenn ein Teil der Transaktion vor ihrer Verpflichtung fehlschlägt, werden diese Kopien verwendet, um die Datenbank in den Zustand wiederherzustellen, in dem sie sich befand, bevor die Transaktion begann.
Vorwärts rollen
Es ist auch möglich, eine separate zu halten Tagebuch aller Änderungen an einem Datenbankverwaltungssystem. (manchmal genannt nach Bildern). Dies ist nicht für die Rollback fehlgeschlagener Transaktionen erforderlich, ist jedoch nützlich, um das Datenbankverwaltungssystem bei einem Datenbankfehler zu aktualisieren, sodass einige Transaktionsverarbeitungssysteme dies bereitstellen. Wenn das Datenbankverwaltungssystem vollständig fehlschlägt, muss es aus dem neuesten Backup wiederhergestellt werden. Die Backup wird keine begangenen Transaktionen widerspiegeln, seit die Backup durchgeführt wurde. Sobald das Datenbankverwaltungssystem wiederhergestellt ist, kann das Journal von After Images auf die Datenbank angewendet werden (Vorwärts rollen) Um das Datenbankverwaltungssystem auf den neuesten Stand zu bringen. Alle zum Zeitpunkt des Fehlers laufenden Transaktionen können dann zurückgerollt werden. Das Ergebnis ist eine Datenbank in einem konsistenten, bekannten Zustand, der die Ergebnisse aller bis zum Moment des Versagens verpflichteten Transaktionen enthält.
Deadlocks
In einigen Fällen können zwei Transaktionen im Verlauf ihrer Verarbeitung gleichzeitig versuchen, auf denselben Teil einer Datenbank zuzugreifen, auf eine Weise, die verhindert, dass sie fortfahren. Beispielsweise kann Transaktion A auf Teil X der Datenbank zugreifen, und die Transaktion B kann auf den Teil der Datenbank zugreifen. Wenn zu diesem Zeitpunkt die Transaktion A dann versucht, auf den Anteil y der Datenbank zuzugreifen, während die Transaktion B versucht, auf Abschnitt X zuzugreifen, a Sackgasse tritt auf, und es kann sich keine Transaktion vorwärts bewegen. Transaktionsverarbeitungssysteme sind so konzipiert, dass diese Deadlocks bei ihrer Auftreten erfasst werden. Normalerweise werden beide Transaktionen storniert und zurückgerollt, und dann werden sie dann automatisch in einer anderen Reihenfolge gestartet, sodass der Deadlock nicht wieder auftritt. Oder manchmal wird nur eine der abgestimmten Transaktionen abgesagt, zurückgerollt und nach einer kurzen Verzögerung automatisch neu gestartet.
Deadlocks können auch bei drei oder mehr Transaktionen auftreten. Je mehr Transaktionen beteiligt sind, desto schwieriger sind sie zu erkennen, bis zu dem Punkt, dass Transaktionsverarbeitungssysteme eine praktische Grenze für die Deadlocks haben, die sie erkennen können.
Transaktion kompensieren
In Systemen, in denen Commit- und Rollback -Mechanismen nicht verfügbar oder unerwünscht sind, a Transaktion kompensieren wird oft verwendet, um fehlgeschlagene Transaktionen rückgängig zu machen und das System in einen früheren Zustand wiederherzustellen.
Säurekriterien
Jim Gray Definierte Eigenschaften eines zuverlässigen Transaktionssystems Ende der 1970er Jahre unter dem Akronym SÄURE - Atomizität, Konsistenz, Isolation und Haltbarkeit.[1]
Atomizität
Die Änderungen einer Transaktion am Zustand sind atomar: Entweder passieren alle oder keine passieren. Diese Änderungen umfassen Datenbankwechsel, Nachrichten und Aktionen für Wandler.
Konsistenz
Konsistenz: Eine Transaktion ist eine korrekte Transformation des Zustands. Die als Gruppe ergriffenen Maßnahmen verstoßen keine der mit dem Staat verbundenen Integritätsbeschränkungen.
Isolation
Obwohl Transaktionen gleichzeitig ausgeführt werden, erscheint es für jede Transaktion t, dass andere entweder vor T oder nach T ausgeführt wurden, aber nicht beides.
Haltbarkeit
Sobald eine Transaktion erfolgreich abgeschlossen ist (Commits), überleben ihre Änderungen an der Datenbank Fehler und behalten ihre Änderungen bei.
Vorteile
Die Transaktionsverarbeitung hat diese Vorteile:
- Es ermöglicht die gemeinsame Nutzung von Computerressourcen unter vielen Benutzern
- Es verlagert die Zeit der Arbeitsplatzverarbeitung auf, wenn die Rechenressourcen weniger beschäftigt sind
- Es wird vermieden, die Rechenressourcen ohne winzige menschliche Interaktion und Überwachung im Leerlauf zu unternehmen
- Es wird für teure Computerklassen verwendet, um die Kosten zu erzielen, indem sie hohe Nutzungsraten dieser teuren Ressourcen behalten
Nachteile
- Sie haben relativ teure Einrichtungskosten
- Es fehlt an Standardformaten
- Hardware- und Software -Inkompatibilität
Implementierungen
Standard-Transaktionsverarbeitung Software, wie zum Beispiel IBM's Informationsmanagementsystemwurde erstmals in den 1960er Jahren entwickelt und wurde oft eng mit besonderer gekoppelt Datenbankmanagementsystem. Client -Server -Computing Implementierten ähnliche Prinzipien in den 1980er Jahren mit gemischtem Erfolg. In den letzten Jahren ist das verteilte Client -Server -Modell jedoch wesentlich schwieriger geworden. Mit der Anzahl der Transaktionen als Reaktion auf verschiedene Online -Dienste (insbesondere die Netz) Eine einzelne verteilte Datenbank war keine praktische Lösung. Darüber hinaus bestehen die meisten Online -Systeme aus einer ganzen Reihe von Programmen, die zusammen arbeiten, im Gegensatz zu einem strengen Client -Server -Modell, bei dem der einzelne Server die Transaktionsverarbeitung übernehmen könnte. Heute stehen eine Reihe von Transaktionsverarbeitungssystemen zur Verfügung, die auf der Ebene der Interprogramme arbeiten und die auf große Systeme skalieren, einschließlich Mainframes.
Eine Anstrengung ist die X/offen verteilte Transaktionsverarbeitung (DTP) (siehe auch Java Transaktionsapi (JTA). Proprietäre Transaktionsverarbeitungsumgebungen wie IBMs CICs sind immer noch sehr beliebt, obwohl sich CICs auch zu offenen Branchenstandards entwickelt hat.
Der Begriff Extreme Transaction Processing (XTP) wurde verwendet, um Transaktionsverarbeitungssysteme mit ungewöhnlich herausfordernden Anforderungen, insbesondere den Durchsatzanforderungen (Transaktionen pro Sekunde), zu beschreiben. Solche Systeme können über verteilte oder Cluster -Stilarchitekturen implementiert werden. Es wurde zumindest bis 2011 verwendet.[2][3]
Verweise
- ^ a b Gray, Jim; Reuter, Andreas. "Transaktionsverarbeitung - Konzepte und Techniken (PowerPoint)". Abgerufen 12. November, November, 2012.
- ^ Koen Vanderkimpen und Dirk Deridder. "Extrem für die Gesundheitsversorgung". Devoxx 2011 Präsentation. Abgerufen 18. März, 2017.
- ^ Kevin Roebuck (2011). Extreme Transaktionsverarbeitung. Blitzquelle. ISBN 978-1-74304-266-3.
Weitere Lektüre
- Gerhard Weikum, Gottfried Vossen, Transaktionsinformationssysteme: Theorie, Algorithmen und die Praxis der Parallelitätskontrolle und Wiederherstellung, Morgan Kaufmann, 2002, ISBN1-55860-508-8
- Jim Gray, Andreas Reuter, Transaktionsverarbeitung - Konzepte und Techniken, 1993, Morgan Kaufmann, ISBN1-55860-190-2
- Philip A. Bernstein, Eric Newcomer, Principles of Transaction Processing, 1997, Morgan Kaufmann, ISBN1-55860-415-4
- Ahmed K. Elmagarmid (Editor), Transaktionsmodelle für erweiterte Datenbankanwendungen, Morgan-Kaufmann, 1992, ISBN1-55860-214-3