-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft die Steuerung dynamischer verteilter Arbeitslasten in Transaktionsverarbeitungssystemen und insbesondere die Bereitstellung einer verbesserten Steuerung solcher Arbeitslasten, wenn Transaktionen von Transaktionsaffinitäten betroffen sind.
-
Hintergrund der Erfindung
-
Das Konzept der dynamischen Arbeitslastverwaltung von Benutzeranwendungen ist in der Technik seit vielen Jahren bekannt. Im Grunde besteht sie aus dem Feststellen, wohin einzelne Arbeitselemente von einem Kandidatensatz von Servern auf der Grundlage des Serverzustands geschickt werden sollten, einem geeigneten Verteilalgorithmus (routing algorithm) und sämtlichen relevanten Affinitätsdaten. Kandidatensätze werden üblicherweise über Benutzeranwendungen zugehörige Administrationsdialoge festgelegt. Verteilalgorithmen beruhen üblicherweise auf der Durchsatz- oder Reaktionszeit. Affinitäten beziehen sich auf Daten, auf welche die Anwendung in dem Zielserver Bezug nimmt, auf den nachfolgend zugegriffen werden muss, so dass damit die Fähigkeit verbunden ist, Arbeit dynamisch zu verteilen, während die Affinität aktiv ist.
-
Das Verteilen von Anwendungen besitzt den Vorteil, dass im Falle eines Ausfalls eines einzelnen Servers nur die momentan auf diesem Server ausgeführten Aufgaben (tasks) betroffen sind; Benutzeraufgaben auf anderen Servern sind nicht betroffen, so dass die Auswirkungen des Ausfalls auf die Anwendungsverfügbarkeit verringert werden. Benutzer, die Arbeit auf dem ausgefallenen Server ausführen, müssen ihre Transaktionen manuell neu starten, und die Transaktionen müssen zu anderen (aktiven) Kandidaten für das Ausführen der Anwendung geleitet werden.
-
Solche Lösungen bieten Endbenutzern eine erhöhte Verfügbarkeit von Anwendungen, während sich die Verfügbarkeit der zugrundeliegenden einzelnen Server verändern kann. Sie können zudem Durchsatz- und Reaktionszeiten von Anwendungen verbessern und so die Effekte über mehrere Adressräume hinweg glätten.
-
Eine Ausbildung eines dynamischen Systems zur Verwaltung von Arbeitslasten wird für den CICS®-Transaktionsserver von IBM durch die Komponente „CICSPlex SM Workload Management (WLM)“ bereitgestellt. Diese Komponente wird durch den CICS an geeigneten Punkten in Verarbeitungsanfragen aufgerufen, um die Zielregion für die Anfrage zu bestimmen und Anwendungsaffinitäten zu verwalten. (CICS ist eine Marke der International Business Machines Corporation, die in vielen Rechtsprechungsgebieten weltweit eingetragen ist.)
-
Schemata zur dynamischen Arbeitslastverteilung können durch die Effekte weiter dadurch komplizierter werden, dass Teile der Arbeit in Arbeitseinheiten enthalten sein können, die in der Fachwelt der Transaktionsverarbeitung auch als eine Arbeitseinheit „Unit Of Work“ (UOW) bekannt sind. Das Konzept der Transaktionsarbeitseinheiten ist dem Fachmann für Transaktionsverarbeitung bekannt und muss somit hierein nicht weiter beschrieben werden. Die in der vorliegenden Beschreibung betrachteten Beispiele beziehen sich auf Datensätze der Datenbank „DB2®“ von IBM sowie VSAM-Datensätze von IBM, auf die in den Zielregionen zugegriffen wird, dem Fachmann ist jedoch klar, dass dieselben Betrachtungen auch auf Datensätze oder andere Daten übertragbar sind, die mittels anderer Ressourcenverwaltungssysteme gesteuert werden, die in Lage sind, mit einem Transaktionsverarbeitungssystem zu interagieren. (DB2 ist eine Marke der International Business Machines Corporation, die in vielen Rechtsprechungsgebieten weltweit eingetragen ist.)
-
Wenn eine Arbeitseinheit über mehrere Server verteilt ist, muss ein Wiederherstellungsverwalter (recovery manager) eine Aufzeichnung über jeden Server innerhalb der Arbeitseinheit vornehmen, der wiederherstellbare Arbeiten dafür durchgeführt hat. Diese Informationen werden nach erfolgreicher Durchführung („syncpoint commit“) verwendet, um die Arbeitselemente in den Servern zu übergeben oder die Änderungen zurückzusetzen („syncpoint rollback“), falls die Anwendung dies anfordern sollte, die Aufgabe anormal beendet werden sollte („abend“) oder die Region (bei einem Neustart der Region) anormal beendet werden sollte. Wie dem Fachmann bekannt ist, ist der Verarbeitungsaufwand umso größer und das Risiko, dass eine Komponente nicht verfügbar ist, umso höher, je verteilter die Arbeitseinheit ist. Es ist weiterhin bekannt, dass Mehrfachanfragen für denselben Datensatz in einer Arbeitseinheit innerhalb derselben Serverregion liegen müssen, andernfalls tritt eine Blockade auf, und diejenigen Anwendungen, welche denselben Datensatz außerhalb dieser Arbeitseinheit anfordern werden, können nicht ausgeführt werden, wenn (entweder aufgrund eines anormalen Aufgabenabbruchs oder eines anormalen Serverabbruchs) eine bleibende Blockade vorhanden ist.
-
Sobald zudem eine Zielregion für ein Arbeitselement mit einer erklärten Affinität ausgewählt wurde, ist die Affinität festgelegt und nachfolgende Anfragen werden unabhängig davon, ob wiederherstellbare Arbeiten in der Zielregion durchgeführt wurden, zu dieser Region geleitet. Dies ist insbesondere für die Verarbeitungseffizienz nachteilig, wenn die Zielregion die Anfrage zurückweist, verringert unnötigerweise die Anwendungsverfügbarkeit und verursacht unnötige Zurücksetzungen, wenn eine Kette verteilter Programmverknüpfungen (distributed program links DPLs) beteiligt ist und ein Programm in der Kette anormal endet.
-
Es ist wünschenswert, diese Nachteile bekannter Transaktionsverarbeitungssysteme zu überwinden, bei denen die einander entgegenstehenden Bedürfnisse nach Transaktionssteuerung dynamisch verteilter Arbeitsanfragen und der Affinitätsverwaltung der Arbeitsanfragen nur teilweise miteinander vereinbar sind und dies durch teure und potenziell fehleranfällige Umgestaltung von Anwendungen und Systemen erfolgen muss.
-
US 2009/0034537 A1 beschreibt den Einsatz eines Affinity Routers, der in diskreten Zeitintervallen bestimmt, ob die „goodness“ besser als bei der „runtime load balancing“ wird, wenn eine Affinity-basierte Technik eingesetzt wird. Wenn dies nicht der Fall ist, wird ein der Befehl gegeben, dass die Affinity-Technik ausgesetzt wird. Unter anderem wird die „Lebensdauer“ eines Datensatzes TTL als Kriterium eingesetzt, ob es überhaupt Sinn macht, Affinity-Technik einzusetzen. Es wird ferner beschrieben, dass der Affinity-Kontext zusammen mit der TTL aufgezeichnet wird, wenn die Websitzung beendet ist Die offenbarte Technik verwendet somit TTL als Kriterium, ob weiterhin eine eingerichtete Affinity verwendet werden soll.
-
Zusammenfassung der Erfindung
-
Die vorliegende Erfindung stellt dementsprechend in einem ersten Aspekt einen Arbeitslastverwalter bereit, der mit einem verteilten Transaktionsprozessor mit einer Vielzahl von Verarbeitungsregionen betrieben werden kann und der Folgendes umfasst: eine Transaktionsinitiatorregion zum Initiieren einer Transaktion; eine Transaktionsverteilerkomponente zum Leiten einer initiierten Transaktion zu einer der Vielzahl von Verarbeitungsregionen; eine Affinitätssteuerungskomponente zum Beschränken von Transaktionsverteiloperationen, um Affinitäten aufrechtzuerhalten; wobei die Affinitätssteuerungskomponente dadurch gekennzeichnet ist, dass sie eine Arbeitseinheitaffinitätskomponente aufweist, die mit einem Ressourcenverwalter in der einen der Vielzahl von Verarbeitungsregionen in der Lage ist, eine Affinität als Reaktion auf die Durchführung einer wiederherstellbaren Datenoperation in der einen der Vielzahl von Verarbeitungsregionen zu aktivieren.
-
Vorzugsweise kann die Arbeitseinheitaffinitätskomponente der Transaktionsverteilerkomponente weiterhin erlauben, eine Transaktion als Reaktion auf Anzeichen eines Fehlens einer Durchführung einer wiederherstellbaren Datenoperation in der einen der Vielzahl von Verarbeitungsregionen zu einer anderen der Vielzahl der Verarbeitungsregionen umzuleiten. Vorzugsweise ist das Fehlen einer Durchführung einer wiederherstellbaren Datenoperation in der einen der Vielzahl von Verarbeitungsregionen mit einer Verteilzurückweisung oder einer anormalen Transaktionsbeendigung verbunden. Vorzugsweise umfasst der verteilte Transaktionsprozessor ein Online-Transaktionsverarbeitungssystem. Vorzugsweise umfasst der verteilte Transaktionsprozessor ein Transaktionsdatenbanksystem.
-
In einem zweiten Aspekt wird ein Verfahren zum Betreiben eines Arbeitslastverwalters mit einem verteilten Transaktionsprozessor bereitgestellt, der eine Vielzahl von Verarbeitungsregionen aufweist und Folgendes umfasst: Initiieren einer Transaktion durch eine Transaktionsinitiatorregion; Leiten einer initiierten Transaktion zu einer der Vielzahl von Verarbeitungsregionen durch eine Transaktionsverteilerkomponente; Beschränken von Transaktionsverteiloperationen durch eine Affinitätssteuerungskomponente, um Affinitäten aufrechtzuerhalten; wobei das Verfahren dadurch gekennzeichnet ist, dass es eine Arbeitseinheitaffinitätskomponente mit einem Ressourcenverwalter in der einen der Vielzahl von Verarbeitungsregionen umfasst, um eine Affinität als Reaktion auf die Durchführung einer wiederherstellbaren Datenoperation in der einen der Vielzahl von Verarbeitungsregionen zu aktivieren.
-
Vorzugsweise umfasst das Verfahren weiterhin ein Betreiben der Arbeitseinheitaffinitätskomponente so, dass sie als Reaktion auf Anzeichen eines Fehlens einer Durchführung einer wiederherstellbaren Datenoperation in der einen der Vielzahl von Verarbeitungsregionen das Umleiten einer Transaktion zu einer anderen der Vielzahl der Verarbeitungsregionen erlauben kann. Vorzugsweise ist das Fehlen einer Durchführung einer wiederherstellbaren Datenoperation in der einen der Vielzahl von Verarbeitungsregionen mit einer Verteilzurückweisung oder einer anormalen Transaktionsbeendigung verbunden. Vorzugsweise umfasst der verteilte Transaktionsprozessor ein Online-Transaktionsverarbeitungssystem. Vorzugsweise umfasst der verteilte Transaktionsprozessor ein Transaktionsdatenbanksystem.
-
In einem dritten Aspekt wird ein Computerprogramm bereitgestellt, das einen Computerprogrammcode umfasst, der beim Laden in ein Computersystem und Ausführen darauf das Computersystem veranlassen kann, all die Schritte des Verfahren gemäß dem zweiten Aspekt durchzuführen.
-
Figurenliste
-
Nachfolgend wird in lediglich beispielhafter Weise eine bevorzugte Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die angehängten Zeichnungen beschrieben, in denen:
- 1A die Funktionsweise eines Systems nach dem Stand der Technik zeigt;
- 1B eine weitere Funktionsweise eines Systems nach dem Stand der Technik zeigt;
- 2A noch eine weitere Funktionsweise eines Systems nach dem Stand der Technik zeigt; und
- 2B die Funktionsweise eines Systems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
-
Detaillierte Beschreibung der bevorzugten Ausführungsform
-
Wie im Hintergrund zur Erfindung beschrieben, kann bei bekannten Techniken zur Affinitätsverwaltung das dynamische Verteilen von Anfragen in einer Transaktionsumgebung Anwendunsgblockaden und übermäßige Verbreitung von Synchronisierungspunkt („syncpoint“)-Flüssen hervorrufen.
-
Dies tritt auf, da bei Ausführungsformen der Affinitätsverwaltung gemäß dem Stand der Technik vor jedweder Aktivität, welche die wiederherstellbaren Ressourcen verändern könnte, die einen Bedarf nach der soeben erfolgten Affinität aufweisen, die Affinität gegenüber dem System erklärt werden muss.
-
In ihrer breitesten Anwendung stellt eine bevorzugte Ausführungsform der vorliegenden Erfindung eine Arbeitseinheitaffinitäts-Steuerungskomponente bereit, die mit der dynamischen Verteillogik des Transaktionsprozessors arbeiten kann, um diese Nachteile der bekannten Technik zu überwinden.
-
Bevorzugte Ausführungsformen der vorliegenden Erfindung überwinden diese Nachteile, indem sie eine „provisorische“ Erklärung einer Affinität zwischen einer UOW und einem Server bereitstellen, der die Ressourcen besitzt, jedoch die Affinität nicht „aktivieren“, bis eine wiederherstellbare Veränderung an einer Ressource stattgefunden hat.
-
Somit ist in der bevorzugten Ausführungsform dynamisches Verteilen zum Bereitstellen von Serverzuweisung verfügbar, wenn zum ersten Mal eine Verteilungsanfrage durchgeführt wird (RouteSelect). Sobald wiederherstellbare Arbeiten durchgeführt wurden (festgehalten durch den Wiederherstellungsverwalter - Affinität erstellen), werden nachfolgende Verteilungsanfragen zum selben Server geleitet (Affinität aktiv), bis die UOW entweder übergeben oder zurückgezogen wird (Affinität zerstören). Zum Zwecke der Veranschaulichung der Hauptidee wird in der folgenden Beschreibung diese Affinität so behandelt, als ob es sich um eine erklärte Affinität gemäß dem Stand der Technik handeln würde.
-
Sollten in der Zielregion keine wiederherstellbare Arbeit durchgeführt worden sein, kann eine weitere Transaktion mit derselben „provisorischen“ Affinität dynamisch zu einer alternativen Region geleitet werden, um ihren Teil der Verarbeitung ohne Benutzereingriff durchzuführen, da die Affinität nicht wie beim Stand der Technik „fixiert“ ist. Dies verringert die möglichen Auswirkungen herkömmlicher Affinitätsverwaltung auf die durch den Endanwender wahrgenommene Leistung des Systems, indem automatisch erneut versucht wird, auf einen alternativen Server umzuleiten, wenn auf dem Ziel keine wiederherstellbaren Arbeiten durchgeführt worden sind.
-
Auf die erste dynamische Verteilungsanfrage (routeSelect) hin, auf erfolgreiches Verteilen hin, wird diese Tatsache für diese Arbeitseinheit (im Ressourcenverwalter) festgehalten. Nachfolgende Verteilungsanfragen werden bis zur Übergabe/dem Zurückziehen der Verarbeitung in diese Region geleitet und dadurch Blockaden verhindert. Zu typischen Beispielen gehören heute Sperren von VSAM- und DB2-Datensätzen.
-
In 1A wird eine Anordnung von Transaktionsverarbeitungskomponenten nach dem Stand der Technik gezeigt, die ein erstes System oder eine erste Region 100, das bzw. die so eingerichtet ist, dass eine eingehende Arbeitsanfrage empfangen werden kann, sowie eine dynamische Verteilkomponente 170 umfasst, die so eingerichtet ist, dass Arbeit zur Verarbeitung durch Programme 130, 140 (in der Figur sind beispielhafte Programme als PROG A und PROG B benannt) zu weiteren Systemen oder Regionen 110, 120 geleitet wird. Programme 130, 140 sind in der Lage, auf eine Ressource wie zum Beispiel eine Datenressource 150 zuzugreifen, die einen beispielhaften (in der Figur r5 genannten) Datensatz 160 umfasst. Wie für den Fachmann klar ist, verursachen eingehende Anfragen nach Transaktionsarbeit die Initiierung einer UOW, die einen durch die unterbrochene Umrandungslinie angezeigten und als „UOW-Umfang“ gekennzeichneten Umfang besitzt. In einem beispielhaften Ablauf bewirkt die eingehende Anfrage 1 einen dynamischen Verteilungsfluss 2, der die Anfrage zum Programm 130 (PROG A) im System oder der Region 130 leitet. Bei Fluss 3 greift PROG A auf die Ressource r5 160 in der Datenressource 150 zu. Bei Fluss 4 tritt ein weiterer dynamischer Verteilungsfluss zum Programm 140 (PROG B) im System oder der Region 120 auf. Bei Fluss 5 versucht PROG B, auf die Ressource r5 160 in der Datenressource 150 zuzugreifen. Eine Blockade ist die Folge. Um derartige Vorkommnisse zu vermeiden, wurde das in 1B gezeigte System zur Affinitätsverwaltung entwickelt.
-
In 1B verursacht die eingehende Anfrage 1 einen dynamischen Verteilungsfluss 2, der die Anfrage zum Programm 130 (PROG A) im System oder der Region 130 leitet. Bei Fluss 3 greift PROG A auf die Ressource r5 160 in der Datenressource 150 zu. Eine Affinität ist vorhanden, so dass bei Fluss 4 eine weitere Arbeitsanfrage so beschränkt wird, dass sie das Programm 130 (PROG A) im System oder der Region 110 aufruft. Bei Fluss 5 greift PROG A auf die Ressource r5 160 in der Datenressource 150 zu. In vorteilhafter Weise sind die Sperren der Ressource r5 160 lokal, so dass keine Blockade auftritt. In nachteiliger Weise hat die Affinität jedoch die Freiheit des Systems beim Verteilen von Arbeit eingeschränkt und somit die Verarbeitungseffizienz des Systems verringert.
-
In einer bevorzugten Ausführungsform der vorliegenden Erfindung wird dann eine neue Form der Affinität festgelegt.
-
Wie bei jeder anderen Affinität wird ihr Vorhandensein erklärt, sie tritt allerdings erst in Kraft, wenn eine erste wiederherstellbare Arbeit durch die Transaktion durchgeführt wurde. Der folgende beispielhafte Pseudocode veranschaulicht die Prozedur im Hinblick auf die Produkte „CICS“ und „CICSPlex SM“, jedoch ist es für den Fachmann klar, dass die Erfindung in vielen anderen Transaktionsumgebungen, wie beispielsweise Datenbanktransaktionssystemen und Online-Transaktionsverarbeitungssystemen, ausgebildet werden kann:
-
Wie für den Fachmann klar ist, sind Ausführungsformen der Erfindung deshalb insbesondere vorteilhaft, da sich das System mit ihrer Hilfe Umstände zunutze machen kann, in denen keine wiederherstellbare Arbeit durchgeführt wurde, um auf eine Verteilzurückweisung oder einen Leitausfall zu reagieren, indem ohne Benutzereingriff automatisch eine andere Zielregion ausgewählt wird.
-
In 2A verursacht die eingehende Anfrage 1 einen dynamischen Verteilungsfluss 2 zu PROG A 130 im System oder der Region 110. Die Verteilungsanfrage wird zurückgewiesen oder es liegt eine anormale Beendigung bei 3vor, und bei 4 schlägt die Anfrage fehl. Bei Systemen gemäß dem Stand der Technik wäre zum Umleiten der Verteilungsaktion und Vermeiden der Affinität ein manueller Neustart erforderlich. Andernfalls würde die Affinität wiederholte Einträge mittels derselben (ausfallenden) Route verursachen.
-
Wie in 2B gezeigt, reagiert ein System gemäß der bevorzugten Ausführungsform im Gegensatz dazu auf die Verteilzurückweisung oder eine anormale Beendigung unter 3, indem bei 4 ein Test durchgeführt wird, um festzustellen, ob die UOW-Affinität durch die Durchführung einer wiederherstellbaren Arbeit aktiviert wurde. Wenn die UOW-Affinität nicht aktiviert worden ist, kann das System die Arbeit unter 5 frei zu PROG B 140 im System oder der Region 120 leiten und die Verarbeitung der Arbeit kann fortgeführt werden.
-
Der folgende beispielhafte Pseudocode veranschaulicht die Prozedur im Hinblick auf die Produkte „CICS“ und „CICSPlex SM“, jedoch ist für den Fachmann klar, dass die Erfindung in vielen anderen Transaktionsumgebungen, wie beispielsweise Datenbanktransaktionssystemen und Online-Transaktionsverarbeitungssystemen, ausgebildet werden kann:
-
Für den Fachmann ist leicht ersichtlich, dass vielfältige weitere Modifikationen an den vorstehend beschriebenen Ausführungsformen für einen Fachmann naheliegend sind.
-
Es ist für den Fachmann klar, dass das Verfahren der vorliegenden Erfindung in geeigneter Weise in einer Logikvorrichtung ausgebildet werden kann, die ein Logikmittel umfasst, um die Schritte des Verfahrens durchzuführen, und dass ein derartiges Logikmittel Hardware-Komponenten oder Firmware-Komponenten umfassen kann.
-
Es ist ersichtlich, dass das vorstehend beschriebene Verfahren auch vollständig oder teilweise in geeigneter Weise innerhalb von Software ausgeführt werden kann, die auf einem oder mehreren Prozessoren (nicht gezeigt) läuft, und dass die Software als Computerprogrammelement bereitgestellt werden kann, das sich auf jedem beliebigen geeigneten Datenträger (ebenfalls nicht gezeigt), wie beispielsweise einem magnetischen oder einem optischen Computerdatenträger, befinden kann. Zu Kanälen für die Übertragung von Daten können gleichermaßen alle Arten von Speichermedien und Signalträgermedien wie kabelgebundene oder kabellose Signalmedien gehören.
-
Die vorliegende Erfindung kann in geeigneter Weise als Computerprogrammprodukt zur Verwendung mit einem Computersystem ausgebildet sein. Solche Ausbildung kann eine Folge von computerlesbaren Anweisungen umfassen, die entweder auf einem gegenständlichen Medium wie einem computerlesbaren Medium, zum Beispiel Diskette, CD-ROM, ROM, oder Festplatte festgehalten sein können, oder die über ein Modem oder eine andere Schnittstelleneinheit über entweder ein gegenständliches Medium, darunter, jedoch nicht beschränkt auf optische oder analoge Datenübertragungsleitungen, oder nicht gegenständlich mittels kabelloser Techniken, darunter, jedoch nicht beschränkt auf Mikrowellen, Infrarot- oder andere Übertragungstechniken, zu einem Computersystem übertragbar sein können. Die Folge von computerlesbaren Anweisungen beinhaltet die gesamte oder einen Teil der zuvor hierin beschriebenen Funktionalität.
-
Für den Fachmann ist ersichtlich, dass solche computerlesbaren Anweisungen in einer Reihe von Programmiersprachen zur Verwendung in vielen Computerarchitekturen oder Betriebssystemen geschrieben sein können. Weiterhin können solche Anweisungen mittels einer beliebigen gegenwärtigen oder zukünftigen Speichertechnologie, darunter, jedoch nicht beschränkt auf Halbleiter verwendende, magnetische oder optische, gespeichert werden oder mittels jeder beliebigen gegenwärtigen oder zukünftigen Datenübertragungstechnologie, darunter, jedoch nicht beschränkt auf optische, Infrarot oder Mikrowellen verwendende, übertragen werden. Es wird in Betracht gezogen, dass solch ein Computerprogrammprodukt als Wechselmedium mit begleitender gedruckter oder elektronischer Dokumentation, wie zum Beispiel eingeschweißte Software, zuvor auf ein Computersystem, zum Beispiel auf einen System-ROM oder eine fest eingebauten Festplatte, geladen oder von einem Server oder elektronischen Forum, zum Beispiel dem Internet oder World Wide Web, verbreitet werden kann.