DE112020004651B4 - Multi-tenant-etl-ressourcenaufteilung - Google Patents

Multi-tenant-etl-ressourcenaufteilung Download PDF

Info

Publication number
DE112020004651B4
DE112020004651B4 DE112020004651.6T DE112020004651T DE112020004651B4 DE 112020004651 B4 DE112020004651 B4 DE 112020004651B4 DE 112020004651 T DE112020004651 T DE 112020004651T DE 112020004651 B4 DE112020004651 B4 DE 112020004651B4
Authority
DE
Germany
Prior art keywords
tenant
workload
queued
delay
etl
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.)
Active
Application number
DE112020004651.6T
Other languages
English (en)
Other versions
DE112020004651T5 (de
Inventor
Robert Wood Alexander
Chengxuan Xing
Liliana Klinger Doina
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 DE112020004651T5 publication Critical patent/DE112020004651T5/de
Application granted granted Critical
Publication of DE112020004651B4 publication Critical patent/DE112020004651B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Abstract

Durch einen Computer (70) implementiertes Verfahren zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant- (Mehrmandanten-) ETL-(Extraktion, Umwandlung, Laden) Systems (300), wobei das Verfahren Folgendes umfasst:durch einen oder mehrere Prozessoren (71, 360) erfolgendes Ermitteln einer Gesamtarbeitslast des Multi-Tenant-ETL-Systems (300);durch den einen oder die mehreren Prozessoren (71, 360) erfolgendes Ermitteln einer einem Tenant (320) zugeordneten Arbeitslast in einer Warteschlange; unddurch den einen oder die mehreren Prozessoren (71, 360) erfolgendes Verzögern der Hinzufügung von durch den Tenant (320) angeforderter Arbeit zu der Arbeitslast des Multi-Tenant-ETL-Systems (300) auf Grundlage der Gesamtarbeitslast und der Arbeitslast in der Warteschlange.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein das Gebiet der Verarbeitung in einem Multi-Tenant- (Mehrmandanten-) System und insbesondere ein Verfahren zur gemeinsamen Nutzung von Verarbeitungsressourcen eines Multi-Tenant-ETL- (Extract Transform Load - Extraktion, Umwandlung, Laden) Systems.
  • Die vorliegende Erfindung betrifft zudem ein Computerprogrammprodukt, das durch einen Computer lesbaren Programmcode aufweist, der es einem Prozessor eines Systems oder einer Anzahl von Prozessoren eines Netzwerks ermöglicht, ein solches Verfahren zu implementieren.
  • Die vorliegende Erfindung betrifft zudem ein System zur gemeinsamen Nutzung von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems.
  • In einem Multi-Tenant-ETL-System werden große Datenmengen asynchron und hochparallel von mehreren verschiedenen Tenants (Mandanten) aus extrahiert und verarbeitet. Die Daten werden Seite für Seite extrahiert und zur Verarbeitung durch eine gemeinsame Verarbeitungs-Engine (oder einen Cluster) in eine Warteschlange gestellt.
  • Mehrere Tenants können große Arbeitsaufkommen übermitteln, die dann zur Verarbeitung in der gemeinsamen Verarbeitungs-Engine in eine Warteschlange gestellt werden. Entsprechend kann das Arbeitsaufkommen eines Tenant das System mit großen Datenmengen für sich beanspruchen und die Verarbeitung des Arbeitsaufkommens eines anderen Tenant verzögern. Dies ist unfair gegenüber anderen Tenants, die das gleiche Dienstniveau erhalten sollten (z.B. Tenants derselben Kategorie). Auch wenn eine bestimmte Kategorie von Tenants eine bessere Dienstgüte erhalten kann als eine andere Kategorie von Tenants (z.B. kann ein System so konfiguriert sein, dass es zahlenden oder Premium-Kunden ein höheres Dienstniveau bietet als nichtzahlenden oder Standard-Kunden), erwarten alle Tenants innerhalb derselben Kategorie das gleiche Dienstniveau. Mit anderen Worten, eine typische Erwartung ist, dass ein Multi-Tenant-ETL-System allen Tenants innerhalb derselben Kategorie gegenüber gerecht sein sollte.
  • Die US 8 473 960 B2 offenbart ein Verfahren für die Verwaltung der Systemleistung von Ressourcen, die Aufgaben als Reaktion auf Aufgabenanforderungen von Tenants ausführen. In einem Beispiel umfasst ein System mindestens eine Ressource, die so konfiguriert ist, dass sie mindestens eine zugelassene Aufgabe mit einer Auswirkung unter der Kontrolle eines Computersystems ausführt. Das Computersystem bietet Dienste für mehr als einen Tenant an. Das Computersystem umfasst einen Strategen, der so konfiguriert ist, dass er die Auswirkungen der zugelassenen Aufgabe bewertet, um einen Kostenfunktionsvektor, der mehrere Kostenfunktionsspezifikationen enthält, und einen Budgetrichtlinienvektor, der mehrere Budgetrichtlinien enthält, sowie einen Aktor zu erstellen. Der Aktor empfängt den Kostenfunktionsvektor und den Budgetrichtlinienvektor vom Strategen, empfängt eine Aufgabenanforderung von einem der mehreren Tenants und berechnet Kostenfunktionen auf der Grundlage des Kostenfunktionsvektors, um die Auswirkungen der Aufgabenanforderung auf die Ressourcen für jede der Aufgabenanforderungen vorherzusagen. Der Aktor drosselt die Aufgabenanforderungen auf der Grundlage der Budgetrichtlinien für die Auswirkungen auf die Ressourcen, um mindestens eines von der zugelassenen Aufgabe, die von der Ressource ausgeführt wird, und einer verzögerten Aufgabenanforderung zu erzeugen.
  • Die US 2006 / 0 090 163 A1 offenbart ein Verfahren zur Steuerung des Zugriffs auf eine Rechenressource innerhalb einer gemeinsam genutzten Rechenumgebung. Das Verfahren beginnt mit einem ersten Schritt der Messung von Leistungsparametern für Arbeitslasten, die auf die Rechenressource zugreifen, um einen Leistungsparametervektor für die Arbeitslasten zu bestimmen. Das Verfahren fährt mit einem zweiten Schritt fort, in dem eine Steuerungsfunktion für die Rechenressource durch Analyse der jüngsten Leistungsparameter und der jüngsten Durchsätze geschätzt wird. Die Steuerungsfunktion umfasst eine mathematische Operation, die eine Eingabe annimmt und eine Ausgabe liefert. In einem dritten Schritt vergleicht das Verfahren den Leistungsparametervektor mit einem Referenzleistungsparametervektor, um einen Fehlerparameter zu bestimmen. In einem vierten Schritt wendet das Verfahren die Steuerungsfunktion auf den Fehlerparameter an, um einen Zieldurchsatz für jede der Arbeitslasten zu bestimmen. Das Verfahren schließt mit einem fünften Schritt der Anpassung des Zugriffs auf die Rechenressource für jede Arbeitslast mit einer Durchsatzgrenze, die sich von etwa dem Zieldurchsatz unterscheidet, indem die Durchsatzgrenze für die Arbeitslast auf etwa den Zieldurchsatz reduziert oder erhöht wird.
  • Die US 2016 / 0 021 196 A1 offenbart ein Verfahren, bei dem Tenant-Änderungen bei einem Multi-Tenant-Service empfangen werden. Die Tenant-Änderungen werden in Abschnitte unterteilt. Die Abschnitte von Tenant-Änderungen werden beim Multi-Tenant-Service über alle Tenants, die Änderungen beantragt haben, bearbeitet, um die Bearbeitungsressourcen gleichmäßig auf alle anfragenden Tenants zu verteilen.
  • KURZDARSTELLUNG
  • Gemäß einer Ausführungsform der vorliegenden Erfindung ist ein durch einen Computer implementiertes Verfahren zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant-ETL- (Extract Transform Load - Extrahieren, Umwandeln, Laden) Systems vorgesehen, wobei das Verfahren Folgendes umfasst: durch einen oder mehrere Prozessoren erfolgendes Ermitteln einer Gesamtarbeitslast des Multi-Tenant-ETL-Systems; durch den einen oder die mehreren Prozessoren erfolgendes Ermitteln einer einem Tenant zugeordneten Arbeitslast in einer Warteschlange; und durch den einen oder die mehreren Prozessoren erfolgendes Verzögern der Hinzufügung von durch den Tenant angeforderter Arbeit zu der Arbeitslast des Multi-Tenant-ETL-Systems auf Grundlage der Gesamtarbeitslast und der Arbeitslast in der Warteschlange.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung weist ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen auf, wobei die Programmanweisungen durch eine Verarbeitungseinheit ausführbar sind, um die Verarbeitungseinheit zu veranlassen, bei Ausführung in einem Computernetzwerk ein Verfahren zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems durchzuführen, wobei das Verfahren Folgendes umfasst: Ermitteln einer Gesamtarbeitslast des Multi-Tenant-ETL-Systems; Ermitteln einer einem Tenant zugeordneten Arbeitslast in einer Warteschlange; und Verzögern der Hinzufügung von durch den Tenant angeforderter Arbeit zu der Arbeitslast des ETL-Systems auf Grundlage der Gesamtarbeitslast und der Arbeitslast in der Warteschlange.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung ist ein System zur gemeinsamen Nutzung von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems vorgesehen, wobei das System Folgendes aufweist: eine Arbeitslastkomponente, die so konfiguriert ist, dass sie eine Gesamtarbeitslast des Multi-Tenant-ETL-Systems ermittelt; eine Analysekomponente, die so konfiguriert ist, dass sie eine einem Tenant zugeordnete Arbeitslast in einer Warteschlange ermittelt; und eine Verzögerungskomponente, die so konfiguriert ist, dass sie die Hinzufügung von durch den Tenant angeforderter Arbeit zu der Arbeitslast des Multi-Tenant-ETL-Systems auf Grundlage der Gesamtarbeitslast und der Arbeitslast in der Warteschlange verzögert.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung werden nun lediglich beispielhaft unter Bezugnahme auf die nachfolgenden Zeichnungen beschrieben, wobei:
    • 1 zeigt eine bildliche Darstellung eines beispielhaften verteilten Systems, in dem Aspekte der veranschaulichenden Ausführungsformen implementiert werden können;
    • 2 zeigt eine schematische Darstellung eines vorgeschlagenen verteilten Datenübertragungssystems gemäß einer Ausführungsform;
    • 3 zeigt einen Ablaufplan eines Verfahrens zum gemeinsamen Nutzen von Ressourcen eines ETL-Systems gemäß einer Ausführungsform; und
    • 4 zeigt ein Blockschaubild von Komponenten des Servers und/oder eines Client gemäß einer Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es ist zu beachten, dass die Figuren nur schematisch und nicht maßstabsgetreu dargestellt sind. Zudem ist zu beachten, dass in den Figuren gleiche Bezugszeichen verwendet werden, um gleiche oder ähnliche Teile zu bezeichnen.
  • Es ist zu beachten, dass in Ausführungsformen der vorliegenden Erfindungen, die ein Verfahren darstellen, es sich im Rahmen der vorliegenden Erfindung bei einem solchen Verfahren um einen Prozess zur Ausführung durch einen Computer, d.h. ein durch einen Computer implementierbares Verfahren, handeln kann. Die verschiedenen Schritte des Verfahrens können somit verschiedene Teile eines Computerprogramms, z.B. verschiedene Teile eines oder mehrerer Algorithmen, widerspiegeln.
  • Im Rahmen der vorliegenden Anmeldung kann es sich bei einem System zudem um eine einzelne Einheit oder um eine Sammlung verteilter Einheiten handeln, die zur Ausführung einer oder mehrerer Ausführungsformen der Verfahren der vorliegenden Erfindung geeignet sind. Ein System kann beispielsweise ein Personal Computer (PC), ein Server oder eine Sammlung von PCs und/oder Servern sein, die über ein Netzwerk wie ein lokales Netzwerk, das Internet usw. verbunden sind, um gemeinsam mindestens eine Ausführungsform der Methoden der vorliegenden Erfindung auszuführen. Ferner kann es sich bei einer Komponente um einen Integrationsfluss handeln, der von einer oder mehreren Verarbeitungseinheiten ausgeführt wird.
  • Vorgeschlagen werden Konzepte zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems. Bei solchen Konzepten wird eine Gesamtarbeitslast des Multi-Tenant-ETL-Systems zusammen mit der in einer Warteschlange befindlichen Arbeitslast eines Tenant berücksichtigt, um eine Lieferung der in der Warteschlange befindlichen Arbeitslast an das System zu steuern. Eine solche Steuerung erfolgt zum Beispiel durch Verzögern der Arbeit des Tenant. Mit den vorgeschlagenen Änderungen soll daher eine Richtlinie entwickelt werden, die für Fairness unter den Tenants sorgt.
  • Man kann also davon ausgehen, dass Ausführungsformen so konfiguriert sind, dass sie Arbeit, die einem System zu einem bestimmten Zeitpunkt zugeführt wird, verlangsamen. Es wird vorgeschlagen, dass dies durch Messen einer Reihe von gleichzeitigen Strömen aktiver Arbeit für einen Tenant erfolgen kann. So kann beispielsweise bei einem Tenant, der eine große Anzahl gleichzeitiger aktiver Arbeitsströme hat, die Hinzufügung dieser Arbeit durch vorliegend beschriebene Ausführungsformen verzögert wird. Dadurch kann verhindert werden, dass ein Tenant das System mit großen Datenmengen monopolisiert (d.h. überlastet), was andernfalls die Verarbeitung der Arbeit eines anderen Tenant verzögern würde.
  • Dementsprechend können vorgeschlagene Ausführungsformen die Hinzufügung von Arbeitslast eines Tenant unter Berücksichtigung einer Gesamtarbeitslast des Systems automatisch und dynamisch steuern. Beispielsweise kann auf Grundlage einer Gesamtarbeitslast des Systems und der einem Tenant zugeordneten Arbeitslast in einer Warteschlange die Hinzufügung von Arbeit, die von diesem Tenant angefordert wurde, verzögert/verschoben werden. Auf diese Weise kann Fairness bei der Aufteilung von Verarbeitungsressourcen des Systems erreicht werden. Es können Konzepte zum Erreichen von Fairness für eine Kategorie (z.B. bezahlt, unbezahlt, Premium-, Platin-Tenant usw.) von Tenants bereitgestellt werden.
  • Die vorgeschlagenen Konzepte können für ETL-Systeme besonders wertvoll und/oder vorteilhaft sein, da sie die erhöhte Vorhersagbarkeit, die mit ETL-Systemen aufgrund ihrer Kette von Extraktionsanfragen verbunden ist, nutzen können, um Fairness über mehrere Tenants hinweg zu erreichen.
  • Da die Datenextraktion Zeit in Anspruch nimmt, ist es üblich, die drei Phasen Extraktion, Umwandlung und Laden parallel auszuführen. Während die Daten extrahiert werden, läuft ein weiterer Umwandlungsprozess ab, der die bereits empfangenen Daten verarbeitet und für das Laden vorbereitet, während das Laden der Daten beginnt, ohne auf den Abschluss der vorherigen Phasen zu warten. Vorgeschlagene Ausführungsformen machen sich dies zunutze und konzentrieren sich auf die Erzielung von Fairness für Tenants, indem sie eine Verzögerung bei der Hinzufügung von Arbeit, die von einem Tenant angefordert wird, zur Arbeitslast steuern.
  • Insbesondere wird vorgeschlagen, die Hinzufügung der Arbeit eines Tenant zu einem ETL-System auf Grundlage eines Maßes für die derzeit im System in Warteschlangen befindliche Gesamtarbeitslast zu verzögern. Ein solches Maß für das im System zu verarbeitende Arbeitsaufkommen kann z.B. durch eine Verzögerung im System angezeigt werden.
  • Vorgeschlagene Ausführungsformen können versuchen, Fairness zwischen den Tenants einer Kategorie (d.h. einer Gruppe, Sammlung, Klasse, Art, Klassifizierung usw.) zu ermöglichen, indem sie die Gesamtlast innerhalb des Systems und die einem Tenant zugeordnete Arbeit überwachen und im Falle einer Überlast eine Verzögerung beim Extraktions-Paging einführen. Die Verzögerung kann proportional zu der von jedem Tenant erzeugten Arbeit sein. Dies kann als „Pacing“ (Dosierung) bezeichnet werden.
  • Beispielsweise kann eine Ausführungsform die Gesamtauslastung überwachen, indem sie das Arbeitsaufkommen misst, das für alle Tenants in Warteschlangen eingestellt wurde. Eine solche Ausführungsform kann dann die Hinzufügung neuer Arbeit für jeden Tenant verlangsamen. Die „Pacing“-Verzögerung kann beispielsweise auf Grundlage der Gesamttiefe der Arbeitswarteschlange(n) (z.B. Verzögerung) und der Arbeitslast (z.B. der Anzahl laufender ETL-Batches) jedes Tenant berechnet werden.
  • Durch Ermitteln, wann Pacing erforderlich ist, können personalisierte Pacing-Faktoren berechnet und durch vorgeschlagene Ausführungsformen angewandt werden. Dies kann zu einer verbesserten Benutzererfahrung und -wahrnehmung eines Produkts führen, das eine vorgeschlagene Ausführungsform implementiert.
  • Vorgeschlagene Ausführungsformen können beispielsweise eine gemeinsame Nutzung von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems ermöglichen. Solche Ausführungsformen können Ermitteln einer Gesamtarbeitslast des Multi-Tenant-ETL-Systems umfassen. Für jeden Tenant, der das Multi-Tenant-ETL-System nutzt, kann dann eine zugehörige in einer Warteschlange befindliche Arbeitslast ermittelt werden. Auf Grundlage der ermittelten Gesamtarbeitslast und der einem Tenant zugeordneten Arbeitslast in der Warteschlange kann die Hinzufügung vom Tenant angeforderter Arbeit zur Arbeitslast des Multi-Tenant-ETL-Systems dann verzögert werden.
  • Einige Ausführungsformen können zudem für jeden Tenant unter Verwendung des Multi-Tenant-ETL-Systems erfolgendes Berechnen eines zugehörigen Verzögerungskoeffizienten auf Grundlage der dem Tenant zugeordneten Arbeitslast in der Warteschlange berechnet werden. Ferner erfolgt ein Verzögern der Hinzufügung vom Tenant angeforderter Arbeit zur Arbeitslast des Systems durch Einführen einer Verzögerung für vom Tenant angeforderte Arbeit auf Grundlage des dem Tenant zugeordneten Verzögerungskoeffizienten.
  • Ferner kann das Berechnen eines zugehörigen Verzögerungskoeffizienten auf Grundlage der dem Tenant zugeordneten Arbeitslast in der Warteschlange Berechnen des Verzögerungskoeffizient als gleich einem vorbestimmten Standardwert umfassen, wenn die dem Tenant zugeordnete Arbeitslast in der Warteschlange unter einem vorbestimmten Schwellenwert liegt.
  • Das Berechnen eines zugehörigen Verzögerungskoeffizienten auf Grundlage der dem Tenant zugeordneten Arbeitslast in der Warteschlange kann Berechnen des Verzögerungskoeffizienten als direkt proportional zu der dem Tenant zugeordneten Arbeitslast in der Warteschlange umfassen.
  • Als weiteres Beispiel können Ausführungsformen ferner Folgendes umfassen: Überwachen der Gesamtarbeitslast des Multi-Tenant-ETL-Systems, um eine Änderung der Gesamtarbeitslast zu erkennen; und Modifizieren des Verzögerungskoeffizienten in Reaktion auf eine erkannte Änderung der Gesamtarbeitslast.
  • Das Ermitteln einer Gesamtarbeitslast des Multi-Tenant-ETL-Systems kann Messen mindestens eines der Folgenden umfassen: eines Gesamtarbeitsaufkommens, das für alle Tenants des Multi-Tenant-ETL-Systems in Warteschlangen steht; und eines Werts einer aktuellen Verzögerung im Multi-Tenant-ETL-System.
  • Das Ermitteln einer einem Tenant zugeordneten Arbeitslast in einer Warteschlange kann zudem Messen mindestens eines der Folgenden umfassen: einer Anzahl von Prozessen, die für den Tenant ausgeführt werden; eines für den Tenant in einer Warteschlange befindlichen Arbeitsaufkommens; einer Anzahl gleichzeitiger Arbeitsströme, die für den Tenant aktiv sind; und einer Anzahl von Verarbeitungsanfragen, die aktuell für den Tenant registriert sind.
  • Ausführungsformen können in Verbindung mit bestehenden ETL-Systemen implementiert werden. Auf diese Weise können die Funktionalitäten und/oder der Nutzen von Multi-Tenant-ETL-Systemen durch Einbeziehen der vorgeschlagenen Ausführungsformen verbessert werden.
  • 1 zeigt eine bildliche Darstellung eines beispielhaften verteilten Systems, in dem Aspekte der veranschaulichenden Ausführungsformen implementiert werden können. Ein verteiltes System 100 kann ein Netzwerk aus Computern aufweisen, in dem Aspekte der veranschaulichenden Ausführungsformen implementiert werden können. Das verteilte System 100 enthält mindestens ein Netzwerk 102, bei welchem es sich um das zum Bereitstellen von Datenübertragungsverbindungen zwischen verschiedenen innerhalb des verteilten Datenverarbeitungssystems 100 zusammengeschlossenen Einheiten und Computern verwendete Medium handelt. Das Netzwerk 102 kann Verbindungen wie beispielsweise drahtgebundene oder drahtlose Kommunikationsverbindungen oder Lichtleiterkabel beinhalten.
  • In dem abgebildeten Beispiel sind ein erster Server 104 und ein zweiter Server 106 zusammen mit einer Speichereinheit 108 mit dem Netzwerk 102 verbunden. Zudem sind Clients 110, 112 und 114 ebenfalls mit dem Netzwerk 102 verbunden. Bei den Clients 110, 112 und 114 kann es sich um Edge-Einheiten handeln, beispielsweise um Personal Computer, Netzwerkcomputer, loT-Einheiten oder dergleichen. In dem abgebildeten Beispiel stellt der erste Server 104 den Clients 110, 112 und 114 Daten wie beispielsweise Bootdateien, Betriebssystemabbilder und Anwendungen bereit. In dem abgebildeten Beispiel weisen die Clients 110, 112 und 114 mit dem ersten Server 104 eine Client-Beziehung auf. Das verteilte Verarbeitungssystem 100 kann weitere Server, Clients und andere nicht gezeigte Einheiten umfassen.
  • In dem abgebildeten Beispiel kann es sich bei dem verteilten System 200 um das Internet handeln, wobei das Netzwerk 102 eine weltweite Sammlung aus Netzwerken und Gateways darstellt, welche die „Transmission Control Protocol/Internet Protocol“- (TCP/IP-) Protokollsuite verwenden, um Daten auszutauschen. Im Kern des Internets befindet sich ein Backbone aus Hochgeschwindigkeits-Datenübertragungsleitungen zwischen Hauptknoten oder Hostcomputern, welche aus tausenden gewerblicher, staatlicher, dem Lehrbetrieb zugehöriger und anderer Computersysteme bestehen, die Daten und Nachrichten weiterleiten. Natürlich kann das verteilte System 100 auch so implementiert sein, dass es mehrere unterschiedliche Arten von Netzwerken enthält, beispielsweise ein Intranet, ein lokales Netzwerk, ein Weitverkehrsnetz (WAN) oder dergleichen. Wie vorstehend erwähnt, soll 1 ein Beispiel und nicht eine architektonische Einschränkung für verschiedene Ausführungsformen der vorliegenden Erfindung darstellen, weshalb die in 1 gezeigten konkreten Elemente hinsichtlich der Umgebungen, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung implementiert werden können, nicht als einschränkend zu betrachten sind.
  • Ein Fachmann versteht, dass die Architektur und/oder Hardware in 1 abhängig von der Implementierung variieren können. Die Prozesse der veranschaulichenden Ausführungsformen können zudem auf ein Datenverarbeitungssystem mit mehreren Prozessoren angewandt werden, ohne vom Umfang der vorliegenden Erfindung abzuweichen.
  • Wie vorstehend beschrieben, stellen vorgeschlagene Ausführungsformen ein Verfahren und ein System zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems bereit. Zur weiteren Erläuterung wird nun eine vorgeschlagene Ausführungsform in Bezug auf ein verteiltes Datenübertragungssystem beschrieben, das ein mehrere Tenants versorgendes ETL-System enthält.
  • 2 zeigt eine schematische Darstellung eines verteilten Datenübertragungssystems gemäß einer Ausführungsform. Das verteilte Datenübertragungssystem umfasst ein ETL-System 300, einen Sitzungsspeicher 395 und ein System 305 zum gemeinsamen Nutzen von Verarbeitungsressourcen des ETL-Systems 300. An dieser Stelle sei darauf hingewiesen, dass das ETL-System 300 verschiedene Komponenten aufweist, die zur Verarbeitung von ETL-Batches beitragen, die sehr große Datenmengen (z.B. Millionen von Datensätzen) enthalten können. Zu diesen Komponenten können ein Controllersystem (z.B. ein Batch-Controller), Systeme, aus denen der Controller Daten extrahiert, SaaS-Anwendungen oder Unternehmenssysteme sowie eine Verarbeitungs-Engine gehören, die extrahierte Datensätze verarbeitet. Beliebige oder alle diese Komponenten können über ein Datenübertragungsnetz 310 (z.B. das Internet) mit anderen externen Systemen interagieren.
  • Auf das ETL-System 300 kann eine Mehrzahl von Tenants 320 über das Datenübertragungsnetz 310 (z.B. das Internet) zugreifen. In diesem Fall umfasst die Mehrzahl von Tenants den ersten bis dritten Tenant.
  • In dem in 2 dargestellten Beispiel ist das System 305 zum gemeinsamen Nutzen von Verarbeitungsressourcen des ETL-Systems 300 als außerhalb des ETL-Systems 300 liegend dargestellt. Dies dient jedoch nur der Veranschaulichung des Systems 305 und seiner verschiedenen Komponenten. Es ist daher zu beachten, dass Ausführungsformen auf Steuern der Extraktionsphase eines ETL-Systems 300 gerichtet sein können und das System 305 somit einen Teil des ETL-Systems 300 selbst bilden kann, da der Extraktionsprozess in einer Reihe von Pull-Operationen bestehen kann und von innerhalb des ETL-Systems 300 initiiert werden kann.
  • Das System 305 zum gemeinsamen Nutzen von Verarbeitungsressourcen weist eine Arbeitslastkomponente 330 auf, die so konfiguriert ist, dass sie eine Gesamtarbeitslast des ETL-Systems 300 ermittelt. In diesem Beispiel ist die Arbeitslastkomponente 330 so konfiguriert, dass sie mindestens eines der Folgenden misst: ein Gesamtarbeitsaufkommen, das für alle Tenants 320 des Multi-Tenant-ETL-Systems 300 in Warteschlangen steht; und einen Wert einer aktuellen Verzögerung im Multi-Tenant-ETL-System 300. Ein solches Maß kann repräsentativ für die Gesamtarbeitslast des ETL-Systems 300 sein.
  • Das System 305 zum gemeinsamen Nutzen von Verarbeitungsressourcen weist zudem eine Analysekomponente 340 auf. Die Analysekomponente 340 ist so konfiguriert, dass sie mithilfe des Multi-Tenant-ETL-Systems 300 für jeden Tenant 320 eine Arbeitslast in einer Warteschlange ermittelt. Konkret ist die Analysekomponente 340 dieser beispielhaften Ausführungsform so konfiguriert, dass sie mindestens eines der Folgenden misst: eine Anzahl von Prozessen, die für den Tenant 320 ausgeführt werden; ein für den Tenant 320 in einer Warteschlange befindliches Arbeitsaufkommen; eine Anzahl gleichzeitiger Arbeitsströme, die für den Tenant 320 aktiv sind; und eine Anzahl von Verarbeitungsanfragen, die aktuell für den Tenant 320 registriert sind.
  • Eine Verzögerungskomponente 350 des Systems 305 zum gemeinsamen Nutzen von Verarbeitungsressourcen ist so konfiguriert, dass sie die Hinzufügung von Arbeit, die von einem Tenant 320 angefordert wird, zur Arbeitslast des Multi-Tenant-ETL-Systems 300 auf Grundlage der ermittelten Gesamtarbeitslast und der diesem Tenant 320 zugeordneten Arbeitslast in der Warteschlange verzögert. In diesem Zusammenhang ist anzumerken, dass das System 305 dieser beispielhaften Ausführungsform zudem einen Prozessor 360 aufweist, der so konfiguriert ist, dass er für Tenants 320, die das Multi-Tenant-ETL-System 300 verwenden, einen zugehörigen Verzögerungskoeffizienten auf Grundlage der einem Tenant 320 zugeordneten Arbeitslast in der Warteschlange berechnet. Die Verzögerungskomponente 350 dieser beispielhaften Ausführungsform kann dann auf Grundlage eines dem Tenant 320 zugeordneten Verzögerungskoeffizienten eine Verzögerung für von einem Tenant 320 angeforderte Arbeit einführen.
  • In dieser Ausführungsform, und nur als Beispiel, kann der Prozessor 360 so konfiguriert sein, dass er den Verzögerungskoeffizienten als gleich einem vorbestimmten Standardwert berechnet, wenn die dem Tenant 320 zugeordnete Arbeitslast in der Warteschlange unter einem vorbestimmten Schwellenwert liegt. Darüber hinaus kann der Prozessor 360 so konfiguriert sein, dass er den Verzögerungskoeffizienten als direkt proportional zur dem Tenant 320 zugeordneten Arbeitslast in der Warteschlange berechnet. Auf diese Weise ist der Verzögerungskoeffizient umso größer, je höher/größer die Arbeitslast in der Warteschlange für einen Tenant 320 ist, wodurch die Steuerung einer Verzögerung der durch einen Tenant 320 angeforderten Arbeit gemäß der für diesen Tenant 320 in der Warteschlange befindlichen Arbeitslast angepasst wird.
  • Das System 305 zum gemeinsamen Nutzen von Verarbeitungsressourcen weist in dieser Ausführungsform zudem eine Überwachungskomponente 370 auf. Die Überwachungskomponente 370 kann so konfiguriert sein, dass sie die Gesamtarbeitslast des Multi-Tenant-ETL-Systems 300 überwacht, um eine Änderung der Gesamtarbeitslast zu erkennen. In Reaktion auf eine erkannte Änderung der Gesamtarbeitslast kann der Prozessor 360 den Verzögerungskoeffizienten modifizieren. Auf diese Weise ist der Verzögerungskoeffizient umso größer, je höher/größer die Gesamtarbeitslast ist, wodurch eine Steuerung einer auf Arbeit angewendeten Verzögerung gemäß der Arbeitslast des Systems 305 angepasst wird.
  • Als weiteres Beispiel soll nun eine weitere beispielhafte Ausführungsform betrachtet werden.
  • Wie vorstehend erwähnt, kann ein ETL-System 300 verschiedene Komponenten aufweisen, die zur Verarbeitung von ETL-Batches beitragen. Zu diesen Komponenten zählen ein Controllersystem (z.B. ein Batch-Controller), Systeme, aus denen der Controller Daten extrahiert, SaaS-Anwendungen oder Unternehmenssysteme sowie eine Verarbeitungs-Engine, die extrahierte Datensätze verarbeitet. Beliebige oder alle diese Komponenten können möglicherweise mit anderen externen Systemen interagieren.
  • Komponenten eines ETL-Systems können ein Nachrichtenübermittlungssystem mit hohem Durchsatz und geringer Latenz (z.B. Kafka) für Austausch und Weiterleitung von Daten zwischen ihnen verwenden. So definiert Kafka beispielsweise Topics (Themen) mit einer Reihe von Partitionen, Produzenten und Gruppen von Konsumenten für die Nachrichten.
  • Ein wichtiger Betrachtungsaspekt ist die Konsumentenverzögerung (consumer lag). Hierbei handelt es sich um die Differenz zwischen der Anzahl geschriebener und der Anzahl gelesener Nachrichten. Konsumentenverzögerung kann daher als Maß dafür verwendet werden, wie weit die Gruppe der Konsumenten von Nachrichten im Vergleich zu den Produzenten von Nachrichten zurückliegt. Ein großer/hoher Konsumentenverzögerungswert bedeutet beispielsweise, dass die extrahierten Daten neuer ETL-Batches sehr lange brauchen, um verarbeitet zu werden, und dass das System auf einige Tenants 320 nicht zu reagieren scheint.
  • Der Einfachheit halber kann davon ausgegangen werden, dass alle Tenants 320 einer Kategorie angehören (z.B. zahlende Nutzer zum gleichen Tarif). Wenn es mehrere Kategorien gibt, können die vorgeschlagenen Konzepte als innerhalb der Grenzen einer einzigen Kategorie anwendbar betrachtet werden und dann separat auf andere Kategorien angewendet werden.
  • Ein großes Volumen an ETL-Batches wird von einem Controllersystem (z.B. einem Batch-Controller) erfasst und dann von anderen Verarbeitungskomponenten (z.B. einer Fluss-Engine) verarbeitet, die die Arbeit über ein Nachrichtenübermittlungssystem (z.B. Kafka) empfangen. Jeder ETL-Batch kann eine geordnete Liste (z.B. Seiten) von Datensätzen durch eine Kette von Extraktionsanfragen extrahieren.
  • Vorgeschlagene Ausführungsformen können eine Kombination aus Sitzungsspeicher 395 und einem Nachrichtenübermittlungssystem wie Kafka verwenden, um eine Richtlinie zur Verteilung der Arbeit (z.B. ETL-Batches) an externe Systeme (SaaS- oder Unternehmensanwendungen) zu implementieren, die sicherstellt, dass Tenants 320 über einen angemessenen Anteil an den Gesamtsystemressourcen verfügen und Tenants die Möglichkeit erhalten, den Fortschritt ihrer Arbeit zu sehen.
  • Wenn das Controllersystem beispielsweise einen ETL-Batch erhält, wird es die erste Anfrage (z.B. eine Seite) in der Kette ohne Verzögerung in die Warteschlange stellen, um sicherzustellen, dass alle Arbeitselemente gestartet werden. Zudem registriert es den ETL-Batch im Sitzungsspeicher 395. Die Konsumentenverzögerung in der Verarbeitungswarteschlange wird dann überwacht, und wenn die Konsumentenverzögerung in der Verarbeitungswarteschlange einen Schwellenwert überschreitet, kann das System ab der zweiten Anfrage der Ketten eine Verzögerung einführen (z.B. ein Pacing einstellen).
  • Ausführungsformen können die folgenden Informationen verwenden, um zu ermitteln, wie lange die nächste Anfrage eines bestimmten Tenant 320 verzögert werden sollte: die Gesamttiefe von Warteschlangen des Nachrichtenübermittlungssystems (d.h. die Gesamtarbeit im System); wie viele ETL-Stapel derzeit im Sitzungsspeicher 395 registriert sind (d.h. gleichzeitige ETL-Stapel); und der vorkonfigurierte Anfangswert für den Gesamtverzögerungskoeffizienten. Auf Grundlage solcher Informationen kann eine Ausführungsform einen Verzögerungskoeffizienten berechnen, der für einen Tenant 320 spezifisch ist und der die zu induzierende Verzögerung (falls vorhanden) steuert.
  • Eine nachfolgende Extraktionsanfrage wird nach der Verzögerung in die Warteschlange gestellt und die registrierten Informationen im Sitzungsspeicher 395 werden mit ihrer neuen Position in der Kette aktualisiert.
  • Gemäß 3 wird nun ein Verfahren gemäß einer Ausführungsform beschrieben. 3 zeigt insbesondere einen Ablaufplan eines Verfahrens zum gemeinsamen Nutzen von Ressourcen eines ETL-Systems 300 gemäß einer vorgeschlagenen Ausführungsform.
  • Zunächst wird ein globaler Verzögerungskoeffizient mit einem Anfangswert festgelegt.
  • Wenn eine neue Extraktionsseitenanfrage empfangen wird 400 (z.B. eine nächste Anfrage in einer Kette verarbeitet wird), beginnt das Verfahren und geht zu Schritt 410. In Schritt 410 wird ermittelt, ob eine neue Seite mit extrahierten Daten gesendet werden muss. Ist dies nicht der Fall, wird das Verfahren einfach in Schritt 415 beendet. Wird dagegen in Schritt 410 festgestellt, dass eine neue Seite mit extrahierten Daten an die Verarbeitungs-Engine gesendet werden muss, fährt das Verfahren mit Schritt 420 fort, in dem der globale Verzögerungskoeffizient neu berechnet und aktualisiert wird. Dies umfasst somit Berechnen der aktuellen Verzögerung aus der Verarbeitungswarteschlange Vergleichen derselben mit der alten Verzögerung (die aus dem Sitzungsspeicher 395 abgerufen wurde), um den globalen Koeffizienten zu erhöhen oder zu verringern.
  • Auf Grundlage des aktualisierten globalen Verzögerungskoeffizienten wird in Schritt 430 ein Verzögerungskoeffizient für den aktuellen Tenant 320 berechnet. Dies umfasst somit Sammeln der Anzahl der für den aktuellen Tenant 320 ausgeführten ETL-Batches aus dem Sitzungsspeicher 395 und anschließendes Berechnen des für den aktuellen Tenant 320 zu verwendenden Verzögerungskoeffizienten durch Multiplizieren des globalen Verzögerungskoeffizienten mit der Anzahl der dem aktuellen Tenant 320 gehörenden ETL-Batches, d.h. Tenant-Verzögerungskoeffizient = globaler Koeffizient * Anzahl der dem Tenant gehörenden ETL-Batches.
  • Als nächstes wird in Schritt 440 eine Verzögerung oder Wartezeit eingeführt. Die Verzögerung oder Wartezeit wird hierbei durch Multiplizieren der Verzögerung mit dem Tenant-Verzögerungskoeffizienten ermittelt. Anders ausgedrückt, kann die Verzögerung oder Wartezeit als Wartezeit = (Verzögerung * Tenant-Verzögerungskoeffizient) dargestellt werden.
  • Nach dem Verzögern/Warten für eine bestimmte Zeitspanne sendet das Controllersystem in Schritt 450 die neue Extraktionsanfrage, und das Verfahren kehrt dann zu Schritt 400 zurück.
  • Es ist somit klar, dass der Koeffizient und die Verzögerung/Wartezeit umso größer sind, je mehr ETL-Batches ein Tenant 320 startet.
  • Ausführungsformen können ein Computersystem 70 aufweisen, das Teil eines in 4 dargestellten vernetzten Systems 7 sein kann. Beispielsweise kann gemäß einer Ausführungsform eine Verzögerungskomponente in dem Computersystem 70 (z.B. einer Verarbeitungseinheit 71) implementiert sein, die so konfiguriert ist, dass sie die Hinzufügung von Arbeit, die von einem Tenant 320 angefordert wird, zur Arbeitslast des Multi-Tenant-ETL-Systems 300 verzögert. Zu den Komponenten des Computersystems/Servers 70 können, ohne jedoch hierauf eingeschränkt zu sein, eine oder mehrere Verarbeitungsanordnungen, die beispielsweise Prozessoren oder Verarbeitungseinheiten 71 aufweisen, ein Systemspeicher 74 und ein Bus 90 zählen, der verschiedene Systemkomponenten einschließlich des Systemspeichers 74 mit der Verarbeitungseinheit 71 verbindet.
  • Der Systemspeicher 74 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie beispielsweise Arbeitsspeicher (RAM) 75 und/oder Cache 76 umfassen. Computersystem/Server 70 kann ferner weitere auswechselbare/nicht auswechselbare, flüchtige/nichtflüchtige Speichermedien des Computersystems umfassen. In solchen Fällen kann jedes der Genannten über eine oder mehrere Daten-Medien-Schnittstellen mit dem Bus 90 verbunden sein. Der Speicher 74 kann mindestens ein Programmprodukt mit einer Gruppe (z.B. mindestens einem) von Programmmodulen umfassen, die so konfiguriert sind, dass sie die Funktionen vorgeschlagener Ausführungsformen ausführen. Beispielsweise kann der Speicher 74 ein Computerprogrammprodukt mit einem Programm enthalten, das von der Verarbeitungseinheit 71 ausführbar ist, um die Eingabe/Ausgabe- (E/A-) Schnittstelle 72 zu veranlassen, ein Verfahren zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems 300 gemäß einer vorgeschlagenen Ausführungsform durchzuführen. Ein Programm/Dienstprogramm 78 mit einer Reihe (mindestens einem) von Programmmodulen 79 kann im Speicher 74 gespeichert sein. Die Programmmodule 79 führen grundsätzlich die Funktionen und/oder Methoden vorgeschlagener Ausführungsformen zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems 300 aus.
  • Computersystem/Server 70 kann zudem mit einer oder mehreren externen Einheiten 80 wie beispielsweise einer Tastatur, einer Zeigeeinheit, einer Anzeige 85 usw., einer oder mehreren Einheiten, die einem Nutzer eine Interaktion mit dem Computersystem/Server 70 ermöglichen, und/oder jedweden Einheiten (z.B. Netzwerkkarte, Modem usw.) in Datenaustausch stehen, die dem Computersystem/Server 70 einen Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen. Ein solcher Datenaustausch kann über Ein/Ausgabe- (E/A-) Schnittstellen 72 erfolgen. Dennoch kann Computersystem/Server 70 über einen Netzwerkadapter 73 in Datenaustausch mit einem oder mehreren Netzwerken wie beispielsweise einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netz (z.B. dem Internet) stehen (z.B. um bestimmte Entwicklungsregeln an Einheiten eines verteilten Netzwerkes zu übermitteln).
  • Zudem ist zu beachten, dass in Ausführungsformen der vorliegenden Erfindungen, die ein Verfahren darstellen, es sich im Rahmen der vorliegenden Erfindung bei einem solchen Verfahren um einen Prozess zur Ausführung durch einen Computer, d.h. ein durch einen Computer implementierbares Verfahren handelt. Die Schritte des Verfahrens spiegeln somit verschiedene Teile eines Computerprogramms, z.B. Teile eines oder mehrerer Algorithmen, wider.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein Speicherklassenspeicher (storage dass memory, SCM), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie Smalltalk, Python, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
  • In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern mittels durch einen Computer lesbarer Programmanweisungen ausgeführt werden können. Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden für Zwecke der Veranschaulichung dargelegt, sind jedoch nicht als abschließend oder auf die Ausführungsformen beschränkt zu verstehen. Für den Fachmann sind viele Abwandlungen und Variationen ersichtlich, ohne vom Umfang und Grundgedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um bestmöglich die Grundgedanken der Ausführungsformen, der praktischen Anwendung oder technischen Verbesserung gegenüber den auf dem Markt erhältlichen Technologien zu erklären oder um dem Fachmann das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.

Claims (20)

  1. Durch einen Computer (70) implementiertes Verfahren zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant- (Mehrmandanten-) ETL-(Extraktion, Umwandlung, Laden) Systems (300), wobei das Verfahren Folgendes umfasst: durch einen oder mehrere Prozessoren (71, 360) erfolgendes Ermitteln einer Gesamtarbeitslast des Multi-Tenant-ETL-Systems (300); durch den einen oder die mehreren Prozessoren (71, 360) erfolgendes Ermitteln einer einem Tenant (320) zugeordneten Arbeitslast in einer Warteschlange; und durch den einen oder die mehreren Prozessoren (71, 360) erfolgendes Verzögern der Hinzufügung von durch den Tenant (320) angeforderter Arbeit zu der Arbeitslast des Multi-Tenant-ETL-Systems (300) auf Grundlage der Gesamtarbeitslast und der Arbeitslast in der Warteschlange.
  2. Verfahren nach Anspruch 1, ferner umfassend: durch den einen oder die mehreren Prozessoren (71, 360) erfolgendes Berechnen (430) eines zugehörigen Verzögerungskoeffizienten für den Tenant (320) auf Grundlage der Arbeitslast in der Warteschlange, wobei das Verzögern ferner Einführen einer Verzögerung für vom Tenant (320) angeforderte Arbeit auf Grundlage des dem Tenant (320) zugeordneten Verzögerungskoeffizienten umfasst.
  3. Verfahren nach Anspruch 2, wobei das Berechnen (430) eines zugehörigen Verzögerungskoeffizienten auf Grundlage der dem Tenant (320) zugeordneten Arbeitslast in der Warteschlange Folgendes umfasst: Berechnen des Verzögerungskoeffizienten als gleich einem vorbestimmten Standardwert, wenn die dem Tenant (320) zugeordnete Arbeitslast in der Warteschlange geringer als ein vorbestimmter Schwellenwert ist.
  4. Verfahren nach Anspruch 3, ferner umfassend: Überwachen der Gesamtarbeitslast des Multi-Tenant-ETL-Systems (300), um eine Änderung der Gesamtarbeitslast zu erkennen; und Modifizieren des Verzögerungskoeffizienten in Reaktion auf eine erkannte Änderung der Gesamtarbeitslast.
  5. Verfahren nach Anspruch 3, wobei das Berechnen (430) eines zugehörigen Verzögerungskoeffizienten auf Grundlage der dem Tenant (320) zugeordneten Arbeitslast in der Warteschlange Folgendes umfasst: Berechnen des Verzögerungskoeffizienten als direkt proportional zu der dem Tenant (320) zugeordneten Arbeitslast in der Warteschlange.
  6. Verfahren nach Anspruch 1, wobei das Bestimmen einer Gesamtarbeitslast des Multi-Tenant-ETL-Systems (300) Messen mindestens eines der Folgenden umfasst: ein Gesamtarbeitsaufkommen, das sich für Tenants (320) des Multi-Tenant-ETL-Systems (300) in Warteschlangen befindet; und einen Wert einer aktuellen Verzögerung im Multi-Tenant-ETL-System (300).
  7. Verfahren nach Anspruch 1, wobei das Ermitteln einer einem Tenant (320) zugeordneten Arbeitslast in einer Warteschlange Messen mindestens eines der Folgenden umfasst: eine Anzahl von Prozessen, die für den Tenant (320) ausgeführt werden; ein Arbeitsaufkommen, das für den Tenant (320) in einer Warteschlange steht; eine Anzahl gleichzeitiger Arbeitsströme, die für den Tenant (320) aktiv sind; und eine Anzahl aktuell für den Tenant (320) registrierter Verarbeitungsanfragen.
  8. Computerprogrammprodukt, das ein durch einen Computer (70) lesbares Speichermedium mit darauf enthaltenen Programmanweisungen (79) aufweist, wobei die Programmanweisungen (79) durch eine Verarbeitungseinheit ausführbar sind, um die Verarbeitungseinheit zu veranlassen, bei Ausführung in einem Computernetzwerk (102, 310) ein Verfahren zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems (300) durchzuführen, wobei das Verfahren die Schritte umfasst: Ermitteln einer Gesamtarbeitslast des Multi-Tenant-ETL-Systems (300); Ermitteln einer einem Tenant (320) zugeordneten Arbeitslast in einer Warteschlange; und Verzögern der Hinzufügung von durch den Tenant (320) angeforderter Arbeit zu der Arbeitslast des ETL-Systems (300) auf Grundlage der Gesamtarbeitslast und der Arbeitslast in der Warteschlange.
  9. Computerprogrammprodukt nach Anspruch 8, das ferner Folgendes aufweist: durch den einen oder die mehreren Prozessoren (71, 360) erfolgendes Berechnen (430) eines zugehörigen Verzögerungskoeffizienten für den Tenant (320) auf Grundlage der Arbeitslast in der Warteschlange, wobei das Verzögern ferner Einführen einer Verzögerung für vom Tenant (320) angeforderte Arbeit auf Grundlage des dem Tenant (320) zugeordneten Verzögerungskoeffizienten umfasst.
  10. Computerprogrammprodukt nach Anspruch 9, wobei das Berechnen (430) eines zugehörigen Verzögerungskoeffizienten auf Grundlage der dem Tenant (320) zugeordneten Arbeitslast in der Warteschlange Folgendes umfasst: Berechnen des Verzögerungskoeffizienten als gleich einem vorbestimmten Standardwert, wenn die dem Tenant (320) zugeordnete Arbeitslast in der Warteschlange geringer als ein vorbestimmter Schwellenwert ist.
  11. Computerprogrammprodukt nach Anspruch 10, das ferner Folgendes aufweist: Überwachen der Gesamtarbeitslast des Multi-Tenant-ETL-Systems (300), um eine Änderung der Gesamtarbeitslast zu erkennen; und Modifizieren des Verzögerungskoeffizienten in Reaktion auf eine erkannte Änderung der Gesamtarbeitslast.
  12. Computerprogrammprodukt nach Anspruch 10, wobei das Berechnen (430) eines zugehörigen Verzögerungskoeffizienten auf Grundlage der dem Tenant (320) zugeordneten Arbeitslast in der Warteschlange Folgendes umfasst: Berechnen des Verzögerungskoeffizienten als direkt proportional zu der dem Tenant (320) zugeordneten Arbeitslast in der Warteschlange.
  13. Computerprogrammprodukt nach Anspruch 8, wobei das Ermitteln einer einem Tenant (320) zugeordneten Arbeitslast in einer Warteschlange Messen mindestens eines der Folgenden umfasst: eine Anzahl von Prozessen, die für den Tenant (320) ausgeführt werden; ein Arbeitsaufkommen, das für den Tenant (320) in einer Warteschlange steht; eine Anzahl gleichzeitiger Arbeitsströme, die für den Tenant (320) aktiv sind; und eine Anzahl aktuell für den Tenant (320) registrierter Verarbeitungsanfragen.
  14. System (305) zum gemeinsamen Nutzen von Verarbeitungsressourcen eines Multi-Tenant-ETL-Systems (300), wobei das Verfahren Folgendes umfasst: eine Arbeitslastkomponente (330), die so konfiguriert ist, dass sie eine Gesamtarbeitslast des Multi-Tenant-ETL-Systems (300) ermittelt; eine Analysekomponente (340), die so konfiguriert ist, dass sie eine einem Tenant (320) zugeordnete Arbeitslast in einer Warteschlange ermittelt; und eine Verzögerungskomponente (350), die so konfiguriert ist, dass sie die Hinzufügung von durch den Tenant (320) angeforderter Arbeit zu der Arbeitslast des Multi-Tenant-ETL-Systems (300) auf Grundlage der Gesamtarbeitslast und der Arbeitslast in der Warteschlange verzögert.
  15. System (305) nach Anspruch 14, das ferner Folgendes aufweist: einen Prozessor (71, 360), der so konfiguriert ist, dass er einen zugehörigen Verzögerungskoeffizienten für den Tenant (320) auf Grundlage der Arbeitslast in der Warteschlange berechnet (430), wobei die Verzögerungskomponente (350) ferner so konfiguriert ist, dass sie eine Verzögerung für vom Tenant (320) angeforderte Arbeit auf Grundlage des dem Tenant (320) zugeordneten Verzögerungskoeffizienten einführt.
  16. System (305) nach Anspruch 15, wobei der Prozessor (71, 360) ferner so konfiguriert ist, dass er den Verzögerungskoeffizienten als gleich einem vorbestimmten Standardwert berechnet (430), wenn die dem Tenant (320) zugeordnete Arbeitslast in der Warteschlange geringer ist als ein vorbestimmter Schwellenwert.
  17. System (305) nach Anspruch 16, das ferner Folgendes aufweist: eine Überwachungskomponente (370), die so konfiguriert ist, dass sie die Gesamtarbeitslast des Multi-Tenant-ETL-Systems (300) überwacht, um eine Änderung der Gesamtarbeitslast zu erkennen, wobei der Prozessor (71, 360) ferner so konfiguriert ist, dass er den Verzögerungskoeffizienten in Reaktion auf eine erkannte Änderung der Gesamtarbeitslast modifiziert.
  18. System (305) nach Anspruch 16, wobei der Prozessor (71, 360) ferner so konfiguriert ist, dass er den Verzögerungskoeffizienten als direkt proportional zu der dem Tenant (320) zugeordneten Arbeitslast in der Warteschlange berechnet.
  19. System (305) nach Anspruch 14, wobei die Arbeitslastkomponente (330) ferner so konfiguriert ist, dass sie mindestens eines der Folgenden misst: ein Gesamtarbeitsaufkommen, das sich für Tenants (320) des Multi-Tenant-ETL-Systems (300) in Warteschlangen befindet; und einen Wert einer aktuellen Verzögerung im Multi-Tenant-ETL-System (300).
  20. System (305) nach Anspruch 14, wobei die Analysekomponente (340) ferner so konfiguriert ist, dass sie mindestens eines der Folgenden misst: eine Anzahl von Prozessen, die für den Tenant (320) ausgeführt werden; ein Arbeitsaufkommen, das für den Tenant (320) in einer Warteschlange steht; eine Anzahl gleichzeitiger Arbeitsströme, die für den Tenant (320) aktiv sind; und eine Anzahl aktuell für den Tenant (320) registrierter Verarbeitungsanfragen.
DE112020004651.6T 2019-11-18 2020-11-13 Multi-tenant-etl-ressourcenaufteilung Active DE112020004651B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/686,441 2019-11-18
US16/686,441 US11042415B2 (en) 2019-11-18 2019-11-18 Multi-tenant extract transform load resource sharing
PCT/IB2020/060699 WO2021099903A1 (en) 2019-11-18 2020-11-13 Multi-tenant extract transform load resource sharing

Publications (2)

Publication Number Publication Date
DE112020004651T5 DE112020004651T5 (de) 2022-09-01
DE112020004651B4 true DE112020004651B4 (de) 2024-01-25

Family

ID=75910001

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020004651.6T Active DE112020004651B4 (de) 2019-11-18 2020-11-13 Multi-tenant-etl-ressourcenaufteilung

Country Status (6)

Country Link
US (1) US11042415B2 (de)
JP (1) JP7445361B2 (de)
CN (1) CN114730277B (de)
DE (1) DE112020004651B4 (de)
GB (1) GB2603098B (de)
WO (1) WO2021099903A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220374327A1 (en) * 2021-04-29 2022-11-24 International Business Machines Corporation Fair simultaneous comparison of parallel machine learning models
US11874776B2 (en) 2021-06-25 2024-01-16 Intel Corporation Cryptographic protection of memory attached over interconnects
US11841871B2 (en) 2021-06-29 2023-12-12 International Business Machines Corporation Managing extract, transform and load systems
US20230185603A1 (en) * 2021-12-14 2023-06-15 Intel Corporation Dynamic capability discovery and enforcement for accelerators and devices in multi-tenant systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060090163A1 (en) 2004-10-21 2006-04-27 Magnus Karisson Method of controlling access to computing resource within shared computing environment
US8473960B2 (en) 2010-09-24 2013-06-25 International Business Machines Corporation Vector throttling to control resource use in computer systems
US20160021196A1 (en) 2014-07-17 2016-01-21 Microsoft Corporation Processing changes in a multi-tenant system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4116064B1 (ja) 2007-04-18 2008-07-09 三菱電機インフォメーションシステムズ株式会社 クライアント装置
US20090063617A1 (en) 2007-08-28 2009-03-05 International Business Machines Corporation Systems, methods and computer products for throttling client access to servers
US8533103B1 (en) 2010-09-14 2013-09-10 Amazon Technologies, Inc. Maintaining latency guarantees for shared resources
US8468251B1 (en) * 2011-12-29 2013-06-18 Joyent, Inc. Dynamic throttling of access to computing resources in multi-tenant systems
US20150046279A1 (en) 2012-09-12 2015-02-12 Salesforce.Com, Inc. Auction-based resource sharing for message queues in an on-demand services environment
US9602426B2 (en) 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations
US9584588B2 (en) * 2013-08-21 2017-02-28 Sap Se Multi-stage feedback controller for prioritizing tenants for multi-tenant applications
US9635103B2 (en) 2014-09-11 2017-04-25 Amazon Technologies, Inc. Dynamic virtual resource request rate control for utilizing physical resources
US9766960B2 (en) 2015-01-30 2017-09-19 Salesforce.Com, Inc. Workload-driven techniques for providing biased service level guarantees
US10228974B2 (en) 2015-04-28 2019-03-12 NetSuite Inc. Intelligent management of processing tasks on multi-tenant or other constrained data processing platform
US10033702B2 (en) 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
US10037230B2 (en) 2016-07-29 2018-07-31 Hewlett Packard Enterprise Development Lp Managing data processing resources
CN106502792B (zh) * 2016-10-20 2019-11-15 华南理工大学 一种面向不同类型负载的多租户资源优化调度方法
CN107301113A (zh) * 2017-05-26 2017-10-27 北京小度信息科技有限公司 任务监控方法及装置
CN109299180B (zh) * 2018-10-31 2021-08-27 武汉光谷联众大数据技术有限责任公司 一种数据仓库etl操作系统
CN109861850B (zh) * 2019-01-11 2021-04-02 中山大学 一种基于sla的无状态云工作流负载均衡调度的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060090163A1 (en) 2004-10-21 2006-04-27 Magnus Karisson Method of controlling access to computing resource within shared computing environment
US8473960B2 (en) 2010-09-24 2013-06-25 International Business Machines Corporation Vector throttling to control resource use in computer systems
US20160021196A1 (en) 2014-07-17 2016-01-21 Microsoft Corporation Processing changes in a multi-tenant system

Also Published As

Publication number Publication date
US20210149728A1 (en) 2021-05-20
CN114730277A (zh) 2022-07-08
WO2021099903A1 (en) 2021-05-27
DE112020004651T5 (de) 2022-09-01
GB2603098B (en) 2022-12-14
US11042415B2 (en) 2021-06-22
GB202207927D0 (en) 2022-07-13
JP2023502210A (ja) 2023-01-23
JP7445361B2 (ja) 2024-03-07
GB2603098A (en) 2022-07-27
CN114730277B (zh) 2024-03-29

Similar Documents

Publication Publication Date Title
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
DE112011103369B4 (de) Erweitern von Verarbeitungskapazität auf Serverseite
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012004999T5 (de) Beschleunigungselement zur Cloud-Bereitstellung
DE102012001003B4 (de) Zielbasierte geschätzte Wartezeit
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE112016001902T5 (de) Schätzen von Rechenressourcen für die Ausführung von Data-Mining-Diensten
DE102016204680A1 (de) Auswählen von Strategien zum Zuordnen von Ressourcen und Lösen von Ressourcenkonflikten
DE102016104478A1 (de) Kryptographische Verfahren, die Arbeitsnachweise in Systemen untereinander verbundener Knoten realisieren
DE202012013462U1 (de) Datenverarbeitung in einem Mapreduce-Framework
DE112011100819T5 (de) Speicherplatzreservierung in einem Deduplizierungssystem
DE112017007656T5 (de) Verschobene aktualisierung von datenbank-hashcode in einer blockchain
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE112021005586T5 (de) Automatisches skalieren einer abfrage-steuerungsroutine für arbeitslasten im bereich big data auf unternehmensebene
DE112018008127T5 (de) Verfahren und vorrichtung zum mappen von network-slices auf netzinfrastrukturen mit sla-garantie
DE112021003747T5 (de) Erkennen von anomalien in einer netzwerktopologie
DE102021130396A1 (de) Datenzugriffsüberwachung und -steuerung
DE112016003598T5 (de) Gleichzeitige Massenverarbeitung von baumbasierten Datenstrukturen
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE102014116744A1 (de) Management von Informationstechnologieressourcen
DE112018005359T5 (de) Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit
DE112021003348T5 (de) Verwalten von datenübertragung zwischen mikrodiensten
DE202021004340U1 (de) Beschränkte Sichten zum Steuern des Zugriffs auf Informationen in einem Datenbanksystem
DE112020006047T5 (de) Steuern von transaktionsanforderungen zwischen anwendungen und servern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0067100800

Ipc: G06F0009500000

R084 Declaration of willingness to licence
R016 Response to examination communication
R018 Grant decision by examination section/examining division