DE102013221073A1 - Verfahren und system zum verringern von sperrvorkommen in server/datenbank-systemen - Google Patents

Verfahren und system zum verringern von sperrvorkommen in server/datenbank-systemen Download PDF

Info

Publication number
DE102013221073A1
DE102013221073A1 DE102013221073.6A DE102013221073A DE102013221073A1 DE 102013221073 A1 DE102013221073 A1 DE 102013221073A1 DE 102013221073 A DE102013221073 A DE 102013221073A DE 102013221073 A1 DE102013221073 A1 DE 102013221073A1
Authority
DE
Germany
Prior art keywords
queue
requests
request
maximum value
concurrent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102013221073.6A
Other languages
English (en)
Inventor
Bartlomiej Tomasz Malecki
Pawel Gocek
Jan Marszalek
Grzegorz Krzysztof Lech
Joanna Wawrzyczek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102013221073A1 publication Critical patent/DE102013221073A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die Erfindung betrifft ein durch einen Computer umgesetztes Verfahren zum Begrenzen der Anzahl von gleichzeitigen Anforderungen in einem Datenbanksystem, das die folgenden Schritte aufweist: – Anordnen von Anforderungen, die durch das Datenbanksystem zu bearbeiten sind, in mindestens einer Warteschlange (10); – Definieren eines maximalen Werts (SS) für gleichzeitige Anforderungen, die der mindestens einen Warteschlange (10) entsprechen; – Überwachen von mindestens einem Warteschlangen-Nutzungsparameter, welcher der mindestens einen Warteschlange entspricht, und Berechnen eines Leistungswerts auf der Grundlage des mindestens einen Warteschlangen-Nutzungsparameters, – dynamisches Anpassen des maximalen Werts (SS) von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des Leistungswerts (PF), um die Systemleistung zu verbessern, und – dynamisches Begrenzen der Anzahl von gleichzeitigen Anforderungen der mindestens einen Warteschlange (10) auf der Grundlage des dynamisch angepassten maximalen Werts (SS).

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein das Gebiet von Datenbanksystemen, insbesondere von Datenbanksystemen mit einem Server für einen Zugriff auf die Datenbank. Insbesondere betrifft die vorliegende Erfindung ein Verfahren und ein System zum Begrenzen der Anzahl von gleichzeitigen Anforderungen in einem Datenbanksystem und damit das Verringern von Sperrvorkommen in Server/Datenbank-Systemen.
  • Hintergrund
  • In herkömmlichen Client-Server-Architekturen sind einer oder mehrere Knoten mit einem oder mehreren Servern über ein Netzwerk verbunden, das eine bidirektionale Datenübertragung zwischen einem Client und einem Server gestattet. Normalerweise empfängt ein Server Anforderungen von mehreren Quellen und bearbeitet sie nach einem definierten Verarbeitungsschema. Am häufigsten wird eine First-In-First-Out-(FIFO-)Vorgehensweise verwendet, die ermöglicht, dass die erste empfangene Anforderung als erste von dem Server bearbeitet wird, die zweite Anforderung als zweite behandelt wird und so weiter. In Datenbanksystemen werden eingehende Anforderungen der Clients unter Verwendung von Warteschlangen bearbeitet, um die fortlaufende Anordnung der Anforderungen zu organisieren.
  • Die Servicequalität in einer vorgegebenen Client-Server-Architektur wird erzielt auf der Grundlage der Latenzzeit zwischen einer Anforderung, die an einen Server gesendet wird, und der Zeit, nach der der anfordernde Client eine Antwort von dem Server empfängt. Je höher die Auslastung auf einem Server ist, desto höher ist die Wahrscheinlichkeit, dass sich die Latenzzeit für den Empfang einer Antwort erhöht. In vielen Fällen besitzen die Clients integrierte Mechanismen, die „Timeout”-(Zeitlimitüberschreitung)Einrichtungen verwenden, um lange Wartezeiträume bis zur Beantwortung für eine Anforderung zu vermeiden. In solchen Fällen wird die Anforderung abgebrochen, und selbst wenn Ergebnisse von dem Server an den anfordernden Client weitergeleitet werden, ignoriert der anfordernde Client die Ergebnisse oder kann sie nicht empfangen, weil die Verbindung bereits von einem Client beendet worden ist. In einigen Anwendungen erzeugt der Client eine weitere Anforderung in der Erwartung, dass diese Anforderung innerhalb des zugewiesenen Zeitrahmens beantwortet wird. Dieses Schema kann zu einem zusätzlichen Belasten der Warteschlange des Servers führen, wodurch weitere Verzögerungen in der Antwortzeit des Servers verursacht werden.
  • In einer großen Datenbankumgebung mit vielen Clients, die mit dem Server verbunden sind, um Anforderungen zu senden, die verarbeitet und per Push-Operation an die Datenbank übertragen werden sollen, können Datenbank-Operationen zu einem Engpass führen und die gesamte Systemleistung beeinträchtigen. Wenn die Systemleistung abnimmt, können Clients keine Verbindung mehr zum Server herstellen. Normalerweise versuchen sie zu einem späteren Zeitpunkt, eine Verbindung zu bekommen, d. h., die Anzahl der Serververbindungen nimmt zu. Dies führt zu einer Abwärtsspirale, weil der Server so viele eingehende Verbindungen hat, dass die Datenbankleistung durch den Ressourcenverbrauch für das Bearbeiten von Sperren verringert wird. Die schlechte Datenbankleistung führt zu Verzögerungen bei der Anforderungsverarbeitung, was wiederum die Anzahl von gleichzeitigen Anforderungen erhöht, die verarbeitet werden sollen.
  • Außerdem kann eine Anforderung, die zu lange auf einem Server wartet, für einen Fehler gehalten werden, selbst wenn sie schließlich durch den Server verarbeitet wurde, weil eine Zeitlimitüberschreitung ausgelöst wurde.
  • Daher wäre es von Vorteil, einen Mechanismus für den Umgang mit Überlastsituationen in einer Client-Server-Umgebung zu haben. Insbesondere wäre es von Vorteil, einen Mechanismus zu haben, der Situationen einer Zeitlimitüberschreitung aktiv vermeidet und dem System das Erreichen eines maximalen Durchsatzes ermöglicht.
  • Kurzdarstellung der Erfindung
  • Es ist ein Ziel von Ausführungsformen der Erfindung, ein verbessertes, durch einen Computer umgesetztes Verfahren, ein computerlesbares Medium und ein Computersystem zum Begrenzen der Anzahl von gleichzeitigen Anforderungen in einem Datenbanksystem bereitzustellen. Dieses Ziel wird durch die Merkmale der unabhängigen Ansprüche erreicht. Bevorzugte Ausführungsformen werden in den Unteransprüchen aufgeführt. Wenn nicht explizit anders angegeben, können Ausführungsformen der Erfindung frei miteinander kombiniert werden.
  • In einem Aspekt betrifft die Erfindung ein durch einen Computer umgesetztes Verfahren zum Begrenzen der Anzahl von gleichzeitigen Anforderungen in einem Datenbanksystem, das die folgenden Schritte aufweist:
    • – Anordnen von Anforderungen, die durch das Datenbanksystem zu bearbeiten sind, in mindestens einer Warteschlange:
    • – Definieren eines maximalen Werts für gleichzeitige Anforderungen, die der mindestens einen Warteschlange entsprechen;
    • – Überwachen von mindestens einem Warteschlangen-Nutzungsparameter, der der mindestens einen Warteschlange entspricht, und Berechnen eines Leistungswerts auf der Grundlage des mindestens einen Warteschlangen-Nutzungsparameters,
    • – dynamisches Anpassen des maximalen Werts von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des Leistungswerts, um die Systemleistung zu verbessern, und
    • – dynamisches Begrenzen der Anzahl von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des dynamisch angepassten maximalen Werts.
  • Zum Beispiel ist der mindestens eine Warteschlangen-Nutzungsparameter die durchschnittliche Verarbeitungszeit von Anforderungen, die Anzahl von bedienten Anforderungen, die Anzahl von zurückgewiesenen Anforderungen, das Verhältnis von zurückgewiesenen Anforderungen zu der Gesamtanzahl von Anforderungen in einem bestimmten Zeitraum oder ein Parameter auf der Grundlage einer Berechnung, der mindestens zwei der oben genannten Parameter kombiniert usw. Ferner kann der mindestens eine Warteschlangen-Nutzungsparameter von einer Information über die statistische Verteilung von Zeit abgeleitet werden, die zum Verarbeiten einer Anforderung benötigt wird, z. B. kürzeste Verarbeitungszeit, längste Verarbeitungszeit, Verarbeitungszeitbereich, Abweichung von Verarbeitungszeit, Variante der Verarbeitungszeit usw.
  • Diese Merkmale können von Vorteil sein, da es möglich ist, das Datenbanksystem abhängig von der Auslastung des Datenbankservers mit Spitzenleistung zu betreiben. Wenn nur eine marginale Auslastung vorliegt, d. h., der Leistungsfaktor ist niedrig, wird die Anzahl von gleichzeitigen Anforderungen in der Warteschlange dynamisch erhöht. Wenn umgekehrt die Systemleistung abnimmt, wird die Anzahl von gleichzeitigen Anforderungen in der Warteschlange verringert, um dem System das Bearbeiten der Anforderungen ohne Zeitlimitüberschreitung von Anforderungen zu ermöglichen.
  • Gemäß bevorzugten Ausführungsformen werden die Anforderungen in mindestens zwei Gruppen gruppiert, wobei jeder Gruppe eine zugeordnete Warteschlange und ein warteschlangenspezifischer maximaler Wert für gleichzeitige Anforderungen zugehörig ist. Insbesondere in Umgebungen mit einer enormen Anzahl von eingehenden Anforderungen wird die Datenbankleistung durch die Bearbeitung von Sperren in Anspruch genommen. Vorzugsweise werden Anforderungen in Gruppen gemäß der Wahrscheinlichkeit angeordnet, dass sie sich gegenseitig blockieren. Anforderungen, die sich mit größerer Wahrscheinlichkeit gegenseitig blockieren, werden derselben Gruppe zugewiesen. Umgekehrt werden Anforderungen mit einer geringen Wahrscheinlichkeit, dass sie sich gegenseitig blockieren, zu verschiedenen Gruppen zugewiesen. Zum Beispiel kann eine Gruppierung auch nach der Service-ID des Service, der die Anforderung ausgelöst hat, gemäß einem Lernmechanismus vorgenommen werden, der den Ausnahmenstapel analysiert, um die sich beeinträchtigenden Services zu identifizieren usw.
  • Gemäß bevorzugten Ausführungsformen wird die Anzahl von gleichzeitigen Anforderungen durch Zurückweisen von eingehenden Anforderungen begrenzt, bevor sie in die Warteschlange eingefügt werden, und/oder durch Entfernen von Anforderungen aus der Warteschlange. Vorzugsweise wird die Anzahl von gleichzeitigen Anforderungen nur in kleinen Schritten geändert, um sie sanft an die aktuelle Systemleistung anzupassen. Dies erfolgt durch Zurückweisen von eingehenden Anforderungen, bevor sie in die Warteschlange eingefügt werden. Wenn ein Sperr-Zeitlimitüberschreitungsereignis eingetreten ist, sollte die Systemleistung schnell erhöht werden. Daher wird die Anzahl von gleichzeitigen und bereits in der Warteschlange befindlichen Anforderungen verringert, um ein schnelles Hochfahren der Systemleistung zu ermöglichen.
  • Gemäß bevorzugten Ausführungsformen wird der Leistungswert für einen ersten Zeitraum berechnet, wobei der Leistungswert des ersten Zeitraums zum Anpassen des maximalen Werts von gleichzeitigen Anforderungen in einem zweiten Zeitraum verwendet wird, der unmittelbar nach dem ersten Zeitraum folgt. Vorzugsweise wird der Leistungswert des ersten Zeitraums mit dem Leistungswert des zweiten Zeitraums verglichen, um die Veränderung des Leistungswerts zu ermitteln. Zum dynamischen Verbessern der Systemleistung wird die Veränderung des Leistungswerts zum Anpassen der Anzahl von gleichzeitigen Anforderungen verwendet.
  • Gemäß bevorzugten Ausführungsformen wird der maximale Wert von gleichzeitigen Anforderungen durch ein Zähl-Semaphor bearbeitet. Der Vorteil bei der Verwendung eines Zähl-Semaphors besteht darin, dass der Zustand der jeweiligen Warteschlange (offen/geschlossen) und die Anzahl von gleichzeitigen Anforderungen gleichzeitig bearbeitet werden können. Dadurch ist es möglich zu ermitteln, ob eine eingehende Anforderung, die einer Gruppe zugewiesen wurde, in die Warteschlange eingefügt werden kann oder zurückgewiesen werden muss (offen/geschlossen). Außerdem kann der maximale Wert von gleichzeitigen Anforderungen aus dem Semaphor abgerufen werden.
  • Gemäß bevorzugten Ausführungsformen wird der maximale Wert von gleichzeitigen Anforderungen so gewählt, dass das Produkt aus der Anzahl von gleichzeitigen Anforderungen und der durchschnittlichen Verarbeitungszeit einer Anforderung maximiert wird. Die grafische Darstellung des Produkts aus der Anzahl von gleichzeitigen Anforderungen und der durchschnittlichen Verarbeitungszeit im Vergleich zur Anzahl von gleichzeitigen Anforderungen zeigt einen Spitzenwert. An diesem Spitzenwert wird die beste Systemleistung erzielt. Daher wird der maximale Wert von gleichzeitigen Anforderungen gemäß diesem Spitzenwert gewählt.
  • Gemäß bevorzugten Ausführungsformen wird die maximale Länge der mindestens einen Warteschlange auf der Grundlage des maximalen Werts von gleichzeitigen Anforderungen und der durchschnittlichen Verarbeitungszeit von Anforderungen dynamisch angepasst. Dadurch wird nicht nur die Anzahl von Anforderungen, die in die Warteschlange eingefügt werden, sondern auch die Gesamtlänge der Warteschlange geändert, um die warteschlangenspezifischen Parameter an die aktuelle Systemleistung anzupassen.
  • Gemäß bevorzugten Ausführungsformen wird nach dem Empfangen einer Sperr-Zeitlimitüberschreitung der Datenbank der maximale Wert von gleichzeitigen Anforderungen und die maximale Länge der mindestens einer Warteschlange verringert, um weitere Sperr-Zeitlimitüberschreitungen zu vermeiden. Im Allgemeinen ist es beim Verwenden des erfindungsgemäßen Verfahrens ziemlich unwahrscheinlich, dass Sperr-Zeitlimitüberschreitungen auftreten. Dennoch ermöglicht das Verringern der Anzahl von gleichzeitigen Anforderungen und der Länge der mindestens einen Warteschlange nach dem Auftreten einer Sperr-Zeitlimitüberschreitung dem System, die Leistung schnell hochzufahren und deshalb weitere Sperr-Zeitlimitüberschreitungen zu vermeiden.
  • In einem weiteren Aspekt betrifft die Erfindung ein computerlesbares Medium, das einen darin verkörperten computerlesbaren Programmcode aufweist, der, wenn er durch einen Prozessor ausgeführt wird, den Prozessor veranlasst, ein Verfahren gemäß irgendeiner der vorher genannten Ausführungsformen auszuführen.
  • In einem weiteren Aspekt betrifft die Erfindung ein Datenbanksystem auf der Grundlage eines Computers, das mindestens einen Server aufweist, der als Datenbank-Client arbeitet und aufweist
    • – eine Dispatcher-Einheit, die so ausgelegt ist, dass sie Anforderungen, die von der Datenbank bearbeitet werden sollen, in mindestens einer Warteschlange anordnet;
    • – eine Überwachungseinheit, die so ausgelegt ist, dass sie
    • • einen maximalen Wert für Anforderungen definiert, die der mindestens einen Warteschlange entsprechen und gleichzeitig verarbeitet werden sollen;
    • • mindestens einen Warteschlangen-Nutzungsparameter überwacht, welcher der mindestens einen Warteschlange entspricht, und einen Leistungswert auf der Grundlage des mindestens einen Warteschlangen-Nutzungsparameters berechnet,
    • • den maximalen Wert von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des Leistungswerts dynamisch anpasst, um die Systemleistung zu verbessern, und
    • – eine Begrenzungseinheit, die so ausgelegt ist, dass sie die Anzahl von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des dynamisch angepassten maximalen Werts begrenzt.
  • Gemäß bevorzugten Ausführungsformen ist die Dispatcher-Einheit so ausgelegt, dass sie die Anforderungen in mindestens zwei Gruppen gruppiert, wobei jeder Gruppe eine zugeordnete Warteschlange und ein warteschlangenspezifischer maximaler Wert für gleichzeitige Anforderungen zugehörig ist.
  • Gemäß bevorzugten Ausführungsformen ist die Dispatcher-Einheit so ausgelegt, dass sie eine Anforderung zu einer Gruppe auf der Grundlage der Wahrscheinlichkeit zuweist, dass die Anforderung andere Anforderungen blockiert, die in der Gruppe auf der Grundlage des Ursprungs der Anforderung oder auf der Grundlage des Servicetyps der Anforderung enthalten sind.
  • Gemäß bevorzugten Ausführungsformen ist das System so ausgelegt, dass die Anzahl von gleichzeitigen Anforderungen durch Zurückweisen von eingehenden Anforderungen begrenzt wird, bevor sie in die Warteschlange eingefügt werden, und/oder durch Entfernen von Anforderungen aus der Warteschlange.
  • Kurzbeschreibung der Zeichnungen
  • Im Folgenden werden bevorzugte Ausführungsformen der Erfindung ausführlich zu Beispielzwecken beschrieben, wobei nur auf die Zeichnungen Bezug genommen wird, wobei:
  • 1 ein Datenbanksystem auf der Grundlage einer Client-Server-Umgebung zeigt;
  • 2 ein Beispiel einer Warteschlange mit eingefügten Anforderungen zeigt, die von dem Server verarbeitet werden sollen;
  • 3 eine schematische Darstellung des erfindungsgemäßen Servers zeigt;
  • 4 einen Ablaufplan für ein dynamisches Begrenzen der Gleichzeitigkeit von Anforderungen in Abhängigkeit von der aktuellen Systemleistung zeigt;
  • 5 einen Ablaufplan für ein dynamisches Anpassen der Warteschlangeneigenschaften auf der Grundlage der Systemleistung zeigt.
  • Ausführliche Beschreibung
  • Dem Fachmann ist klar, dass Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden können. Dementsprechend können Aspekte der vorliegenden Erfindung in der Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, auf die alle hierin allgemein als „Schaltung”, „Modul” oder „System” Bezug genommen werden kann. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darin ausgeführten computerlesbaren Programmcode verkörpert ist. Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu spezielleren Beispielen (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würde Folgendes zählen: eine elektrische Verbindung mit einer oder mehreren Drahtleitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann.
  • Unter Bezugnahme auf 1 wird eine herkömmliche Architektur einer Client-Server-Umgebung 1 für das Senden von Anforderungen an eine Datenbank 5 veranschaulicht. Eine Vielzahl von Clients 2a bis 2e ist mit dem Netzwerk 3 verbunden. Außerdem ist ein Server 4 ebenfalls mit dem Netzwerk 3 verbunden. Das Netzwerk 3, das sich aus mehreren untergeordneten Netzwerken zusammensetzen kann, ermöglicht den Clients 2a bis 2e und dem Server 4 Daten untereinander auszutauschen. Zum Beispiel sendet der Client 2a über das Netzwerk 3 eine Anforderung an den Server 4, um auf die Datenbank 5 zuzugreifen. Der Server 4 kann mehrere Anforderungen von mehreren Clients empfangen und verarbeitet sie normalerweise in der Reihenfolge des Empfangs bzw. in anderen Fällen gemäß einer vordefinierten Priorisierungsrichtlinie. Anforderungen, die sich im Server 4 in einer Warteschlange befinden, warten ab, bis sie mit der Verarbeitung durch den Server 4 an der Reihe sind. Nach der Verarbeitung durch den Server 4 wird die Antwort auf die Anforderung an den Client 2a bis 2e gesendet.
  • Unter Bezugnahme auf 2 wird eine typische Warteschlange 10 gezeigt, die durch den Server 4 bearbeitet wird. Eine Warteschlange kann eine Tiefe von „QS”-Speicherpositionen haben, wobei jede Speicherposition fähig ist, die Anforderung eines Clients vor deren geplanter Verarbeitung durch den Server 4 zu speichern. Neue Client-Anforderungen werden in den ersten verfügbaren Bereich in der Warteschlange 10 gestellt. Das heißt, wenn die Bereiche „1” bis „3” durch vorherige Anforderungen besetzt sind, wird eine neue Client-Anforderung in den Bereich „4” gestellt. Wenn die Warteschlange 10 bis zu und einschließlich des Bereichs „i – 1” gefüllt ist, ist der nächste zu füllende Bereich analog dazu der Bereich „i”. Vorzugsweise werden Client-Anforderungen für die Verarbeitung immer vom ersten Bereich in der Warteschlange 10 genommen, d. h. vom Bereich „1”. Wenn die Warteschlange 10 voll ist, d. h., der Bereich „QS” ist belegt, verweigert der Server 4 die Annahme neuer Anforderungen von Clients.
  • Um eine drastische Verringerung der Systemleistung auf Grund der Inanspruchnahme von Ressourcen für das Bearbeiten von Sperren und der Zeitlimitüberschreitung von Anforderungen und/oder weil die Wartezeit einen Standardzeitwert überschreitet, der das Entfernen der Anforderung aus der Warteschlange auslöst, zu vermeiden, wird eine komplexe Möglichkeit zum Anpassen der maximalen Anzahl von gleichzeitigen Anforderungen und der maximalen Länge der mindestens einen Warteschlange mithilfe der 3 bis 5 erläutert.
  • 3 zeigt eine schematische Darstellung des Servers 4. Der Server 4 weist mindestens eine Datenübertragungsschicht 41 und eine Datenzugriffsschicht 42 auf. Eine eingehende Anforderung 20 wird von einem Dispatcher 43 bearbeitet, welcher der Datenübertragungsschicht 41 zugehörig ist. Um ein Sperren zwischen verschiedenen Anforderungen zu vermeiden, werden die eingehenden Anforderungen vorzugsweise verschiedenen Gruppen zugewiesen. Der Dispatcher 43 führt eine Klassifizierung der eingehenden Anforderungen und die Zuweisung zu einer bestimmten Gruppe aus. Jede Gruppe weist ihre eigene Warteschlange auf, in die die Anforderungen eingefügt werden.
  • Es gibt verschiedene Arten, die eingehenden Anforderungen 20 zu gruppieren. Der einfachste Weg ist, dass nur eine Gruppe vorhanden ist, weil angenommen wird, dass jede Anforderung eine andere Anforderung blockieren kann. Eine zweite Möglichkeit ist, die Anforderungen nach dem Service zu gruppieren, der die Anforderung verursacht hat. Es wird angenommen, dass eine Anforderung, die von einem bestimmten Service stammt, wahrscheinlich eine andere Anforderung von demselben Service blockiert und wahrscheinlich keine Anforderung blockiert, die von einem anderen Service verursacht wurde. Hinsichtlich der zweiten Möglichkeit ist eine Beziehung zwischen der Service-ID der Datenübertragung und der Gruppe vorhanden, der die Anforderung zugewiesen ist. Gemäß einer dritten, noch weiter entwickelten Möglichkeit ist ein Lernmechanismus in dem Dispatcher 43 umgesetzt. Der Lernmechanismus analysiert den Ausnahmenstapel, um zu ermitteln, warum eine bestimmte Ausnahme aufgetreten ist. Wenn die Ausnahme wegen einer Blockierung von Anforderungen verursacht wurde, können die Services, die sich gegenseitig beeinträchtigen, festgestellt werden. Das Ziel ist, die Wahrscheinlichkeit einer Blockierung von Anforderungen auf der Grundlage des Ursprungs der Anforderung, der Service-ID usw. zu untersuchen.
  • Ein Sperrgruppenmanager 44 wird jeder Gruppe von Anforderungen, d. h. jeder Warteschlange zugewiesen. Der Sperrgruppenmanager 44 weist eine Messeinheit auf, die vorzugsweise kontinuierlich die Verarbeitungsleistung der Gruppe misst. Ferner wird jeder Warteschlange oder Gruppe jeweils ein maximaler Wert SS von gleichzeitigen Anforderungen zugeordnet. Vorzugsweise wird der maximale Wert SS von gleichzeitigen Anforderungen unter Verwendung eines Zähl-Semaphors bearbeitet. Der Semaphor kann auf seinen Zustand, zum Beispiel offen oder geschlossen, und auf seinen Wert getestet werden, d. h. die maximale Anzahl SS von gleichzeitigen Anforderungen. Daher ist es möglich zu ermitteln, ob eine eingehende Anforderung, die einer Gruppe zugewiesen wurde, in die Warteschlange (offen/geschlossen) eingefügt werden kann, oder ob sie zurückgewiesen werden muss, und außerdem kann der maximale Wert SS von gleichzeitigen Anforderungen abgerufen werden.
  • Die Messeinheit überwacht kontinuierlich die Anzahl von eingehenden Anforderungen, die der jeweiligen Gruppe zugewiesen sind, den mindestens einen Warteschlangen-Nutzungsparameter, die Länge der Warteschlange und die Anzahl von zurückgewiesenen Anforderungen NoRR. Wie oben erwähnt kann der mindestens eine Warteschlangen-Nutzungsparameter die durchschnittliche Verarbeitungszeit APT von Anforderungen, die Anzahl von bedienten Anforderungen, die Anzahl von zurückgewiesenen Anforderungen, das Verhältnis von zurückgewiesenen Anforderungen zu der Gesamtanzahl von Anforderungen in einem bestimmten Zeitraum oder ein Parameter auf der Grundlage einer Berechnung sein, der mindestens zwei der oben genannten Parameter kombiniert usw. Ferner kann der mindestens eine Warteschlangen-Nutzungsparameter von einer Information über die statistische Verteilung der Zeit abgeleitet werden, die zum Verarbeiten einer Anforderung benötigt wird, z. B. kürzeste Verarbeitungszeit, längste Verarbeitungszeit, Verarbeitungszeitbereich, Abweichung von Verarbeitungszeit, Variante der Verarbeitungszeit usw. In den folgenden Ausführungsformen der Erfindung wird die durchschnittliche Verarbeitungszeit APT als Warteschlangen-Nutzungsparameter verwendet.
  • Auf der Grundlage dieser bewerteten Merkmale eines vorherigen Zeitraums, der hierin im Folgenden auch als Messperiode MP bezeichnet wird, wird die Anzahl von gleichzeitigen Anforderungen ermittelt, die zu dem maximalen Wert des Produkts aus durchschnittlicher Verarbeitungszeit APT und Anzahl von gleichzeitigen Anforderungen SS (APT * SS) führen. Ein Fachmann für Datenbanksysteme erkennt, dass es einen optimalen Wert für das Produkt aus durchschnittlicher Verarbeitungszeit APT und Anzahl von gleichzeitigen Anforderungen SS gibt. Beide Parameter beeinflussen sich gegenseitig. Wenn mit einer kleinen Anzahl von gleichzeitigen Anforderungen SS begonnen wird, wird die durchschnittliche Verarbeitungszeit APT nur geringfügig beeinflusst, wenn die Anzahl von gleichzeitigen Anforderungen SS zunimmt, aber bei einer größeren Anzahl von gleichzeitigen Anforderungen SS nimmt die durchschnittliche Verarbeitungszeit APT schnell ab. Somit kann ein optimaler Wert gefunden werden, bei dem das Multiplikationsprodukt aus Anzahl von gleichzeitigen Anforderungen SS und durchschnittlicher Verarbeitungszeit APT sein Maximum erreicht. Der maximale Wert SS von gleichzeitigen Anforderungen wird verwendet, um das Einfügen einer Anforderung in die zugehörige Warteschlange der Gruppe zu ermöglichen, der die Anforderung vom Dispatcher 43 zugewiesen wurde. Wenn die Anzahl von Anforderungen, die in der jeweiligen Warteschlange enthalten sind, kleiner als der maximale Wert SS von gleichzeitigen Anforderungen ist, wird die Anforderung in die Warteschlange gestellt oder sofort verarbeitet. Andernfalls wird die Anforderung zurückgewiesen.
  • Ferner leitet die Messeinheit einen maximalen Wert einer Warteschlangengröße QS für die aktuelle Messperiode MP(act) unter Verwendung der bewerteten Merkmale einer vorherigen Messperiode MP(act) – ΔMP ab. Der maximale Wert der Warteschlangengröße QS definiert eine maximale Anzahl von Anforderungen, die in der jeweiligen Warteschlange enthalten sein können und die innerhalb eines vordefinierten Zeitraums verarbeitet werden.
  • Unter Bezugnahme auf 4 wird ein Ablaufplan zum Anpassen der Warteschlangeneigenschaften gezeigt, die die Leistung der jeweiligen Gruppe beeinflussen. Der Prozess des Anpassens der Warteschlangeneigenschaften wird für gewöhnlich unter Verwendung von Anfangswerten 30 gestartet. Diese Anfangswerte können vordefinierte Parameterwerte sein oder Werte, die aus vorherigen Prozessausführungen abgeleitet wurden. Die Verarbeitungszeit einer jeweiligen Gruppe wird in Messperioden MP quantisiert, während der statistische Angaben in Bezug auf die Gruppenleistung gesammelt werden. Eine Messperiode MP dauert einen Zeitraum ΔMP. Um zuverlässige statistische Angaben zu erhalten, muss eine Messperiode größer als ein bestimmter Zeitraum sein. Die Messperiode MP kann größer als die durchschnittliche Verarbeitungszeit APT einer Anforderung sein, vorzugsweise größer als das Multiplikationsprodukt aus maximalem Wert SS von gleichzeitigen Anforderungen und durchschnittlicher Verarbeitungszeit APT (SS·APT).
  • Nach dem Beginn mit Anfangswerten 30 werden statistische Angaben über die Gruppenverarbeitungsleistung während einer ersten Messperiode MP(act) gesammelt (Schritt 31). Dabei werden die Anzahl von eingehenden Anforderungen, die der jeweiligen Gruppe zugewiesen wurden, die durchschnittliche Verarbeitungszeit APT, die Länge der Warteschlange und die Anzahl von zurückgewiesenen Verbindungen durch die Messeinheit überwacht. Anschließend werden optimierte Warteschlangenwerte auf der Grundlage der gesammelten statistischen Angaben der ersten Messperiode MP(act) ermittelt (Schritt 32). In einem weiteren Prozessschritt werden die Eigenschaften der jeweiligen Warteschlange gemäß den optimierten Warteschlangenwerten angepasst (Schritt 33), die in Schritt 32 ermittelt wurden. Vorzugsweise werden der maximale Wert SS von gleichzeitigen Anforderungen und der maximale Wert der Warteschlangengröße QS angepasst. Auch die Dauer der Messperiode MP oder weitere Prozessparameter können auf der Grundlage der gesammelten statistischen Angaben dynamisch angepasst werden. Nach dem Anpassen der Warteschlangeneigenschaften wird der Prozess mit Schritt 31 in einer zweiten Messperiode MP (MP(act) = MP(act) + ΔMP) unter Verwendung der warteschlangenspezifischen Eigenschaften fortgesetzt, die während der ersten Messperiode MP ermittelt wurden.
  • 5 zeigt im Detail eine Routine zum Anpassen der Warteschlangeneigenschaften auf der Grundlage von statistischen Angaben, die während der vorherigen Messperiode MP gesammelt wurden. Zuerst wird die Anzahl von zurückgewiesenen Anforderungen NoRR in der aktuellen Messperiode MP(act) geprüft. Wenn keine zurückgewiesenen Anforderungen vorhanden waren, NoRR = 0, bedeutet dies, dass alle Anforderungen umgehend bearbeitet werden. Wenn während der aktuellen Messperiode (MP(act) Anforderungen zurückgewiesen wurden, wird der Leistungsfaktor PF der vorherigen Messperiode MP(act – ΔMP) mit dem Leistungsfaktor PF der aktuellen Messperiode MP(act) verglichen. Der Leistungsfaktor PF ist ein Indikator für die aktuelle Verarbeitungsleistung der Gruppe. Der Leistungsfaktor PF wird hauptsächlich auf der Grundlage des maximalen Werts SS von gleichzeitigen Anforderungen und der durchschnittlichen Verarbeitungszeit APT berechnet. Zum Beispiel kann der Leistungswert mithilfe der folgenden Formel berechnet werden: PF = SS / APT.
  • Der Leistungswert kann auch auf eine komplexere Art berechnet werden.
  • Aus Gründen der Übersichtlichkeit wird in der Beispiel-Ausführungsform nur die durchschnittliche Verarbeitungszeit von Anforderungen überwacht, aber in einem echten System kann es von Vorteil sein, mehr Informationen über die statistische Verteilung der Zeit zu sammeln, die zum Verarbeiten einer Anforderung benötigt wird, z. B. kleinster Wert, maximaler Wert, Bereich, Abweichung, Variation usw. Diese Werte können dann für ein komplexeres Verfahren zum Berechnen des Leistungswerts verwendet werden.
  • Wenn PF(MP(act – ΔMP)) > PF(MP(act)), d. h., die Gruppenleistung hat in Bezug auf die vorherige Messperiode MP(act – ΔMP) abgenommen, kann die maximale Anzahl SS von gleichzeitigen Anforderungen verringert werden (SS = SS – 1), um die Auslastung des Servers zu senken. Durch das Verringern der maximalen Anzahl SS von gleichzeitigen Anforderungen wird die Anzahl von Anforderungen in der jeweiligen Warteschlange nicht sofort verringert. Vorzugsweise wird die Anzahl von Anforderungen langsam durch die Verarbeitung der bereits in der Warteschlange enthaltenen Anforderungen verringert, wobei keine weiteren Anforderungen eingefügt werden, bis die Anzahl der in der Warteschlange enthaltenen Anforderungen kleiner ist als die verringerte maximale Anzahl SS von gleichzeitigen Anforderungen.
  • Wenn PF(MP(act – ΔMP)) < PF(MP(act)), d. h., die Gruppenleistung hat in Bezug auf die vorherige Messperiode MP(act – ΔMP) zugenommen, wird die maximale Anzahl SS von gleichzeitigen Anforderungen erhöht (SS = SS + 1), um die Auslastung des Servers zu erhöhen und somit die Systemleistung zu optimieren. Mit anderen Worten, es wird ferner versucht, die Anzahl von Anforderungen zu erhöhen, die innerhalb eines Referenzzeitraums zu verarbeiten sind.
  • In einem weiteren Schritt wird geprüft, ob QS· APT(MP(act)) / SS > tdefault, wobei QS die maximale Länge der Warteschlange ist, bei der alle Anforderungen der Warteschlange verarbeitet werden, ohne eine Zeitlimitüberschreitung zu verursachen, und tdefault ist ein Standardzeitraum, nach dem eine Zeitlimitüberschreitung verursacht wird. Wenn die Ungleichung zutrifft, wird die maximale Länge der Warteschlange QS verringert, um eine Zeitlimitüberschreitung zu vermeiden.
  • Wenn QS· APT(MP(act)) / SS < tdefault, wird die maximale Länge der Warteschlange QS erhöht, um zu ermöglichen, dass mehr Anforderungen in die Warteschlange eingefügt werden können.
  • Durch Wiederholen der Routine gemäß 5 werden die maximale Anzahl SS von gleichzeitigen Anforderungen und die maximale Länge der Warteschlange QS optimiert, um die maximale Systemleistung zu erzielen.
  • Um so schnell wie möglich auf ein Sperr-Zeitlimitüberschreitungsereignis reagieren zu können, das durch Überschreiten eines Zeitlimits für die Verarbeitung einer Anforderung verursacht wird, wird ein Sperr-Zeitlimitüberschreitungs-Detektor 45 verwendet. Der Sperr-Zeitlimitüberschreitungs-Detektor 45 ist ein Notfallmechanismus, der sich in der Datenbank-Zugriffsschicht befindet. Der Sperr-Zeitlimitüberschreitungs-Detektor 45 erfasst und analysiert das Sperr-Zeitlimitüberschreitungsereignis, zum Beispiel eine SQL-Ausnahme, und ermittelt, welche Anforderung abgebrochen wurde. Anschließend wird der Sperrgruppenmanager 45, der die Anforderung bearbeitet, aufgefordert, die jeweiligen Warteschlangenparameter anzupassen, um weitere Zeitlimitüberschreitungen zu vermeiden. Zum Beispiel werden die maximale Länge der Warteschlang QS und die maximale Anzahl SS von gleichzeitigen Anforderungen drastisch verringert, um der Leistungsverschlechterung entgegenzuwirken. Vorzugsweise wird die maximale Länge der Warteschlange QS auf QS = 0 gesetzt, und die maximale Anzahl SS von gleichzeitigen Anforderungen wird auf SS = 1 gesetzt. Dem System wird das Bearbeiten einer kleinen Anzahl von Anforderungen ermöglicht, ohne dass es von Sperren durch Zeitlimitüberschreitungen beeinträchtigt wird. Wenn sich die Systemleistung erhöht, erhöht sich auch die Anzahl von gleichzeitigen Anforderungen, um eine optimale Systemleistung zu erzielen, d. h., die Parameter erhöhen sich langsam während aufeinander folgender Messperioden MP.
  • Obwohl die vorhergehende Beschreibung unter Bezugnahme auf bestimmte Ausführungsformen der Erfindung erfolgt ist, wird dem Fachmann klar sein, dass Änderungen an diesen Ausführungsformen vorgenommen werden können ohne von den Grundgedanken und der Idee der Erfindung abzuweichen, deren Schutzumfang in den Ansprüchen im Anhang definiert wird.

Claims (15)

  1. Durch einen Computer umgesetztes Verfahren zum Begrenzen der Anzahl von gleichzeitigen Anforderungen in einem Datenbanksystem, wobei das Verfahren die folgenden Schritte aufweist: – Anordnen von Anforderungen, die durch das Datenbanksystem zu bearbeiten sind, in mindestens einer Warteschlange (10); – Definieren eines maximalen Werts (SS) für gleichzeitige Anforderungen, die der mindestens einen Warteschlange (10) entsprechen; – Überwachen von mindestens einem Warteschlangen-Nutzungsparameter, welcher der mindestens einen Warteschlange (10) entspricht, und Berechnen eines Leistungswerts (PF) auf der Grundlage des mindestens einen Warteschlangen-Nutzungsparameters, – dynamisches Anpassen des maximalen Werts (SS) von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des Leistungswerts (PF), um die Systemleistung zu verbessern, und – dynamisches Begrenzen der Anzahl von gleichzeitigen Anforderungen der mindestens einen Warteschlange (10) auf der Grundlage des dynamisch angepassten maximalen Werts (SS).
  2. Verfahren nach Anspruch 1, wobei die Anforderungen in mindestens zwei Gruppen gruppiert werden, wobei jeder Gruppe eine zugeordnete Warteschlange (10) und ein warteschlangenspezifischer maximaler Wert (SS) von gleichzeitigen Anforderungen zugehörig ist.
  3. Verfahren nach Anspruch 2, wobei eine Anforderung zu einer Gruppe auf der Grundlage der Wahrscheinlichkeit zugewiesen wird, dass die Anforderung andere Anforderungen blockiert, die in der Gruppe auf der Grundlage des Ursprungs der Anforderung oder auf der Grundlage des Servicetyps der Anforderung enthalten sind.
  4. Verfahren nach Anspruch 2 oder 3, wobei ein Lernmechanismus so umgesetzt wird, dass er Informationen über die Ursache einer Ausnahme ableitet und die Anforderungen auf die mindestens zwei Gruppen auf der Grundlage der abgeleiteten Informationen verteilt.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Anzahl von gleichzeitigen Anforderungen begrenzt wird durch Ablehnen von eingehenden Anforderungen, bevor sie in die Warteschlange (10) eingefügt werden, und/oder durch Entfernen von Anforderungen aus der Warteschlange (10).
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Leistungswert (PF) für einen ersten Zeitraum (MP(act) – ΔMP) berechnet wird, wobei der Leistungswert (PF) des ersten Zeitraums (MP(act) – ΔMP) zum Anpassen des maximalen Werts (SS) von gleichzeitigen Anforderungen in einem zweiten Zeitraum (MP(act)) verwendet wird, der unmittelbar auf den ersten Zeitraum (MP(act) – ΔMP) folgt.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei der maximale Wert (SS) von gleichzeitigen Anforderungen so gewählt wird, dass das Produkt aus Anzahl von gleichzeitigen Anforderungen und durchschnittlicher Verarbeitungszeit von Anforderungen (APT) maximiert wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die maximale Länge (QS) der mindestens einen Warteschlange (10) auf der Grundlage des maximalen Werts (SS) von gleichzeitigen Anforderungen, des Warteschlangen-Nutzungsparameters und eines Zeitlimitüberschreitungswerts dynamisch angepasst wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei nach dem Empfangen einer Sperr-Zeitlimitüberschreitung der Datenbank der maximale Wert (SS) von gleichzeitigen Anforderungen und die maximale Länge (QS) von mindestens einer Warteschlange verringert wird, um weitere Sperr-Zeitlimitüberschreitungen zu vermeiden.
  10. Datenbanksystem auf der Grundlage eines Computers, das mindestens einen Server (4) aufweist, der als Datenbank-Client arbeitet und aufweist – eine Dispatcher-Einheit, die so ausgelegt ist, dass sie Anforderungen, die von der Datenbank bearbeitet werden sollen, in mindestens einer Warteschlange (10) anordnet; – eine Überwachungseinheit, die so ausgelegt ist, dass sie • einen maximalen Wert (SS) für Anforderungen definiert, die der mindestens einen Warteschlange (10) entsprechen und gleichzeitig verarbeitet werden sollen; • mindestens einen Warteschlangen-Nutzungsparameter überwacht, welcher der mindestens einen Warteschlange (10) entspricht, und einen Leistungswert (PF) auf der Grundlage des mindestens einen Warteschlangen-Nutzungsparameters berechnet, • den maximalen Wert (SS) von gleichzeitigen Anforderungen der mindestens einen Warteschlange (10) auf der Grundlage des Leistungswerts (PF) anpasst, um die Systemleistung zu verbessern, und – eine Begrenzungseinheit, die so ausgelegt ist, dass sie die Anzahl von gleichzeitigen Anforderungen der mindestens einen Warteschlange auf der Grundlage des dynamisch angepassten maximalen Werts (SS) begrenzt.
  11. System auf der Grundlage eines Computers nach Anspruch 10, wobei die Dispatcher-Einheit so ausgelegt, ist dass sie die Anforderungen in mindestens zwei Gruppen gruppiert, wobei jeder Gruppe eine zugeordnete Warteschlange (10) und ein warteschlangenspezifischer maximaler Wert (SS) von gleichzeitigen Anforderungen zugehörig ist.
  12. System auf der Grundlage eines Computers nach Anspruch 11, wobei die Dispatcher-Einheit so ausgelegt, dass sie eine Anforderung zu einer Gruppe auf der Grundlage der Wahrscheinlichkeit zuweist, dass die Anforderung andere Anforderungen blockiert, die in der Gruppe auf der Grundlage des Ursprungs der Anforderung oder auf der Grundlage des Servicetyps der Anforderung enthalten sind.
  13. System auf der Grundlage eines Computers nach einem der Ansprüche 10 bis 12, wobei das System so ausgelegt ist, dass die Anzahl von gleichzeitigen Anforderungen begrenzt wird durch Ablehnen von eingehenden Anforderungen, bevor sie in die Warteschlange (10) eingefügt werden, und/oder durch Entfernen von Anforderungen aus der Warteschlange (10).
  14. System auf der Grundlage eines Computers nach einem der Ansprüche 10 bis 13, wobei das System so ausgelegt ist, dass es das Verfahren nach einem der Ansprüche 4 oder 6 bis 9 ausführt.
  15. Computerlesbares Medium, das einen computerlesbaren Programmcode aufweist, der darin gespeichert ist, der beim Ausführen durch einen Prozessor den Prozessor veranlasst, ein Verfahren nach einem der Ansprüche 1 bis 9 auszuführen.
DE102013221073.6A 2012-10-30 2013-10-17 Verfahren und system zum verringern von sperrvorkommen in server/datenbank-systemen Ceased DE102013221073A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1219442.9 2012-10-30
GB1219442.9A GB2507484A (en) 2012-10-30 2012-10-30 Limiting the number of concurrent requests in a database system

Publications (1)

Publication Number Publication Date
DE102013221073A1 true DE102013221073A1 (de) 2014-04-30

Family

ID=47358821

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013221073.6A Ceased DE102013221073A1 (de) 2012-10-30 2013-10-17 Verfahren und system zum verringern von sperrvorkommen in server/datenbank-systemen

Country Status (4)

Country Link
US (6) US9244966B2 (de)
CN (1) CN103793455B (de)
DE (1) DE102013221073A1 (de)
GB (1) GB2507484A (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2507484A (en) 2012-10-30 2014-05-07 Ibm Limiting the number of concurrent requests in a database system
CN104407926B (zh) * 2014-12-15 2017-08-29 成都英力拓信息技术有限公司 一种云计算资源的调度方法
US11416912B2 (en) * 2016-05-13 2022-08-16 Digital River, Inc. High volume transaction queueing with machine learning
US10951706B2 (en) 2016-12-09 2021-03-16 Google Llc High-throughput algorithm for multiversion concurrency control with globally synchronized time
US11323534B2 (en) 2017-04-12 2022-05-03 International Business Machines Corporation Concurrency reduction through publish-subscribe patterns
CN110537174B (zh) * 2017-04-21 2022-09-09 华为技术有限公司 一种基于交替行锁和列锁的数据锁定方法
US10616346B2 (en) * 2017-07-28 2020-04-07 International Business Machines Corporation Server connection capacity management
US11553047B2 (en) 2018-11-30 2023-01-10 International Business Machines Corporation Dynamic connection capacity management
CN110598155A (zh) * 2019-09-17 2019-12-20 北京锐安科技有限公司 一种Ajax请求调用方法、装置、计算机设备及存储介质
CN112181498B (zh) * 2020-10-09 2024-01-30 中国工商银行股份有限公司 并发控制方法、装置和设备

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6050898A (en) 1996-05-15 2000-04-18 Vr-1, Inc. Initiating and scaling massive concurrent data transaction
JPH1097423A (ja) * 1996-09-20 1998-04-14 Hitachi Ltd ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ
US6535878B1 (en) * 1997-05-02 2003-03-18 Roxio, Inc. Method and system for providing on-line interactivity over a server-client network
GB2327134B (en) 1997-07-08 2002-04-03 Ibm Apparatus,method and computer program for providing arbitrary locking requesters for controlling concurrent access to server resources
US6247102B1 (en) 1998-03-25 2001-06-12 Compaq Computer Corporation Computer system employing memory controller and bridge interface permitting concurrent operation
US6965896B1 (en) * 1999-04-20 2005-11-15 International Business Machines Corporation Active log read I/O balancing for log duplexing
US6757679B1 (en) 1999-06-25 2004-06-29 International Business Machines Corporation System for building electronic queue(s) utilizing self organizing units in parallel to permit concurrent queue add and remove operations
US6742016B1 (en) 2000-03-24 2004-05-25 Hewlett-Packard Devolpment Company, L.P. Request acceptor for a network application system and a method thereof
US7958251B2 (en) * 2000-08-04 2011-06-07 Goldman Sachs & Co. Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients
US7958025B2 (en) * 2000-08-04 2011-06-07 Goldman Sachs & Co. Method and system for processing raw financial data streams to produce and distribute structured and validated product offering objects
US6763520B1 (en) 2000-08-24 2004-07-13 Cognos Incorporated Fair assignment of processing resources to queued requests
JP3512010B2 (ja) * 2001-02-06 2004-03-29 トヨタ自動車株式会社 筒内噴射式内燃機関の制御装置
US7617201B1 (en) * 2001-06-20 2009-11-10 Microstrategy, Incorporated System and method for analyzing statistics in a reporting system
CA2372092C (en) 2002-02-15 2010-04-06 Cognos Incorporated A queuing model for a plurality of servers
US20030156547A1 (en) 2002-02-15 2003-08-21 Exanet. Inc. System and method for handling overload of requests in a client-server environment
US7370068B1 (en) * 2002-09-04 2008-05-06 Teradata Us, Inc. Sorting of records with duplicate removal in a database system
US6704836B1 (en) * 2002-11-13 2004-03-09 Crossroads Systems, Inc. Method for dynamic control of concurrent extended copy tasks
US20040117797A1 (en) * 2002-12-16 2004-06-17 Brown Johnny Michael Interactive dialer
US20060074937A1 (en) 2004-09-30 2006-04-06 International Business Machines Corporation Apparatus and method for client-side routing of database requests
US7474658B2 (en) * 2005-02-10 2009-01-06 International Business Machines Corporation Data processing system, method and interconnect fabric supporting concurrent operations of varying broadcast scope
US7818388B2 (en) * 2005-10-07 2010-10-19 International Business Machines Corporation Data processing system, method and interconnect fabric supporting multiple planes of processing nodes
US20070112918A1 (en) * 2005-11-15 2007-05-17 Viktors Berstis Systems and methods for screening chat requests
US8555288B2 (en) * 2006-05-17 2013-10-08 Teradata Us, Inc. Managing database utilities to improve throughput and concurrency
US7830379B2 (en) 2006-09-19 2010-11-09 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
CN101192228B (zh) * 2006-12-01 2011-11-09 阿里巴巴集团控股有限公司 一种数据库交互处理方法及系统
US8310491B2 (en) 2007-06-07 2012-11-13 Apple Inc. Asynchronous notifications for concurrent graphics operations
CN101290589B (zh) 2007-12-27 2010-06-16 华为技术有限公司 一种并发指令操作方法和装置
US8381226B2 (en) * 2008-02-07 2013-02-19 Nec Laboratories America, Inc. System and method for monotonic partial order reduction
US8117146B2 (en) * 2008-02-20 2012-02-14 Oracle International Corporation Computing the values of configuration parameters for optimal performance of associated applications
US8086437B2 (en) * 2008-04-02 2011-12-27 Microsoft Corporation Modeling and simulating software contention
CN101364230B (zh) * 2008-09-24 2011-04-20 金蝶软件(中国)有限公司 一种并发访问控制方法及装置
FR2942556B1 (fr) * 2009-02-24 2011-03-25 Commissariat Energie Atomique Unite d'allocation et de controle
US8161195B2 (en) * 2009-03-25 2012-04-17 Microsoft Corporation Adaptable management in sync engines
US8312100B2 (en) 2009-03-31 2012-11-13 International Business Machines Corporation Managing orphaned requests in a multi-server environment
CN102024008A (zh) * 2009-09-09 2011-04-20 浙江省电力公司 一种Web服务器的并发数限制方法
US8473669B2 (en) 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US20130305254A1 (en) 2010-04-26 2013-11-14 Cw International, Llc Controlling 32/64-bit parallel thread execution within a microsoft operating system utility program
US20110282850A1 (en) * 2010-05-11 2011-11-17 Microsoft Corporation Concurrently Accessing Data
US8555095B2 (en) * 2010-07-26 2013-10-08 Apple Inc. Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption
US8336051B2 (en) 2010-11-04 2012-12-18 Electron Database Corporation Systems and methods for grouped request execution
US8924981B1 (en) * 2010-11-12 2014-12-30 Teradat US, Inc. Calculating priority indicators for requests in a queue
US8671245B2 (en) * 2010-12-27 2014-03-11 Lsi Corporation Using identification in cache memory for parallel requests
US8442995B2 (en) * 2011-01-14 2013-05-14 Microsoft Corporation Systems and methods for controlling subscribed access to data
US8769544B2 (en) 2011-09-01 2014-07-01 Qualcomm Incorporated Method and system for managing parallel resource request in a portable computing device
US8219684B1 (en) * 2011-11-02 2012-07-10 Google Inc. Redundant data requests with cancellation
US20150193394A1 (en) * 2012-01-25 2015-07-09 Google Inc. Scheduling processing of resource requests to ensure fulfillment of foreground requests
GB2507484A (en) 2012-10-30 2014-05-07 Ibm Limiting the number of concurrent requests in a database system

Also Published As

Publication number Publication date
CN103793455A (zh) 2014-05-14
US9524313B2 (en) 2016-12-20
US9524314B2 (en) 2016-12-20
US20160085788A1 (en) 2016-03-24
GB2507484A (en) 2014-05-07
US20140122453A1 (en) 2014-05-01
US20160092489A1 (en) 2016-03-31
US9361333B2 (en) 2016-06-07
CN103793455B (zh) 2017-04-26
US20160070738A1 (en) 2016-03-10
US9552386B2 (en) 2017-01-24
US9244966B2 (en) 2016-01-26
US9558227B2 (en) 2017-01-31
GB201219442D0 (en) 2012-12-12
US20140372397A1 (en) 2014-12-18
US20160085776A1 (en) 2016-03-24

Similar Documents

Publication Publication Date Title
DE102013221073A1 (de) Verfahren und system zum verringern von sperrvorkommen in server/datenbank-systemen
DE60214994T2 (de) Verfahren und system zur verringerung von falschalarmen in netzwerkfehlermanagementsystemen
DE112012000797B4 (de) Mehrfach-Modellierungsparadigma für eine Vorhersageanalytik
DE102012001003B4 (de) Zielbasierte geschätzte Wartezeit
DE202011110892U1 (de) System von aktivem Risikomanagement, um die Wahrscheinlichkeit des Descheduling der Jobs in Computer-Clustern zu reduzieren
DE202021103602U1 (de) Benchmark-Funktion für Ausgangsknoten
DE112013004098B4 (de) Verwalten eines Daten-Cache für ein Computersystem
DE112011103288B4 (de) Anpassbare, auf Inhalten beruhende Publish/Subscribe-Nachrichtenvermittlung
DE102021127679A1 (de) Lenkung von anfragen an koten eines clusters einer container-orchestrationsplattform, verteilt über ein host- system und einen hardware-acccelerator des host- systems
DE112020004651T5 (de) Multi-tenant-etl-ressourcenaufteilung
EP3432507A1 (de) Überwachung einer blockchain
DE102021109236B4 (de) Umgang mit mehreren anforderungen für die feinzeitmessung im messbereich
DE102016125020B4 (de) Verfahren zum Betreiben eines Druckservers für digitale Hochleistungsdrucksysteme
DE102016125023B4 (de) Verfahren zum Betreiben eines Druckservers für digitale Hochleistungsdrucksysteme
DE19983054B4 (de) Der Quotienten-Algorithmus bei der Überwachung von Störungsprozessen
DE102021109775A1 (de) Adaptive zeitfenster- basierte deduplizierung von protokollnachrichten
DE102016107647B4 (de) Verfahren und Speichermedium zur Absicherung/Überwachung eines Netzwerkes
EP2172875A1 (de) Verfahren zur Auswahl von Merkmalen von Bildern einer Bilddatenbank
DE102017127512B4 (de) Verfahren zum verarbeiten einer vielzahl von fahrzeugnachrichten
WO2023094325A1 (de) Computer-implementiertes verfahren zum betrieb eines technischen geräts mit einem modell
DE102021101733A1 (de) Verfahren und system zur datenverwaltung in einem edge-server
DE102022108410A1 (de) Vorhersage und abschwächung von speicherlecks in einem computersystem
EP3364600B1 (de) Überwachung von datenraten
EP3288217B1 (de) Nicht intrusive überwachung einer verbindung
EP1763937B1 (de) Verfahren zur gesicherten datenübertragung in einem managementsystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final