DE112019000321T5 - Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen - Google Patents

Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen Download PDF

Info

Publication number
DE112019000321T5
DE112019000321T5 DE112019000321.6T DE112019000321T DE112019000321T5 DE 112019000321 T5 DE112019000321 T5 DE 112019000321T5 DE 112019000321 T DE112019000321 T DE 112019000321T DE 112019000321 T5 DE112019000321 T5 DE 112019000321T5
Authority
DE
Germany
Prior art keywords
log
transaction
data
maintenance
records
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.)
Pending
Application number
DE112019000321.6T
Other languages
English (en)
Inventor
Ronald Barber
Christian Garcia-Arellano
Ronen Grosman
Matthew Albert Huras
Mir Hamid Pirahesh
Vijayshankar Raman
Richard Sefton Sidle
Adam Storm
Pinar Tozun
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 DE112019000321T5 publication Critical patent/DE112019000321T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • 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/2315Optimistic concurrency control
    • G06F16/2322Optimistic concurrency control using timestamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Eine Ausführungsform stellt ein Verfahren zum Pflegen von Transaktionsoperationen in einem verteilten Multi-Master-Datenverwaltungssystem bereit, das die Verwaltung von Transaktionsoperationen in mindestens einem transaktionslokalen Side-Log umfasst. Für eine Tabelle wird ein Tabellen-Log-Scan ausgeführt, der die Kennung der Aufzeichnung für jeden Datensatz in einem Log umfasst. Jede Spalte in der Tabelle wird auf Grundlage der Kennungen mit Spaltenwerten geladen. Auf Grundlage der Spaltenwerte werden Datensätze in die gepflegten Transaktionsblöcke geschrieben, die auf einer Tabelle basieren, und die Tupel-Reihenfolgenummern für jeden Datensatz auf gepflegten Blöcken werden erzeugt. Die Tabelle wird über den Transaktionsknoten, die die Transaktionsoperationen im verteilten Multi-Master-Datenverwaltungssystem handhaben, gemeinsam genutzt/verteilt, um die Prozesshandhabung der Transaktionsoperationen zu erhöhen.

Description

  • HINTERGRUND
  • Herkömmliche Datenverwaltungssysteme, die auf Hochverfügbarkeit abzielen, müssen Transaktionsoperationen, wie Aktualisierungen, Löschungen und Einfügungen (UDIs), für jedes Datenreplikat zulassen. Die Transaktionsoperationen zielen auch auf die Kompatibilität mit dem großen Daten-Ökosystem ab, das wegen seiner Superiorität bezüglich der Effizienz von Lese- und Schreiboperationen und Platzverbrauch Nur-Anhängen (append only) (und damit mutationsunfreundliche) Speicherflüsse verwendet.
  • ZUSAMMENFASSUNG
  • Ausführungsformen beziehen sich auf Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen. Eine Ausführungsform stellt ein Verfahren zum Pflegen (grooming) von Transaktionsoperationen in einem verteilten Multi-Master-Datenverwaltungssystem bereit, das das Verwalten von Transaktionsoperationen in mindestens einem transaktionslokalen Side-Log umfasst. Für eine Tabelle wird ein Tabellen-Log-Scan ausgeführt, der die Kennung der Aufzeichnung für jeden Datensatz in einem Log umfasst. Jede Spalte in der Tabelle wird mit Spaltenwerten auf Grundlage der Kennungen geladen. Auf Grundlage der Spaltenwerte werden Datensätze in die gepflegten (groomed) Transaktionsblöcke geschrieben, die auf einer Tabelle basieren, und die Tupel-Reihenfolgenummern für jeden Datensatz auf gepflegten Blöcken werden erzeugt. Die Tabelle wird über Knoten, die Transaktionsoperationen im System handhaben, gemeinsam genutzt/verteilt (sharded), um die Prozesshandhabung der Transaktionsoperationen zu erhöhen.
  • Diese und andere Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden anhand der folgenden Beschreibung, der beigefügten Ansprüche und der zugehörigen Figuren verdeutlicht.
  • Figurenliste
  • Ausführungsformen der Erfindung werden nun nur noch beispielhaft beschrieben, wobei auf die begleitenden Zeichnungen verwiesen wird, in denen:
    • 1 eine Cloud-Computing-Umgebung gemäß Ausführungsformen darstellt;
    • 2 eine Reihe von Abstraktionsmodell-Ebenen gemäß einer Ausführungsform darstellt;
    • 3 eine Netzwerkarchitektur für ein verteiltes Multi-Master-Datenverwaltungssystem gemäß einer Ausführungsform ist;
    • 4 eine repräsentative Hardware-Umgebung zeigt, die gemäß einer Ausführungsform mit den Servern und/oder Clients von 1 verknüpft sein kann;
    • 5 ein Blockdiagramm ist, das ein verteiltes Multi-Master-Datenverwaltungssystem zur Ausführung eines Pflegen-Prozesses für Transaktionsoperationen gemäß einer Ausführungsform veranschaulicht;
    • 6 eine beispielhafte Architektur zur Durchführung eines Pflegen-(Grooming-)Prozesses in einem verteilten Multimaster-Datenverwaltungssystem gemäß einer Ausführungsform veranschaulicht;
    • 7 einen beispielhaften Lebenszyklus für Daten in einem verteilten Multi-Master-Datenverwaltungssystem gemäß einer Ausführungsform veranschaulicht;
    • 8 ein Beispiel für Pflegen von Daten in einem verteilten Multimaster-Datenverwaltungssystem gemäß einer Ausführungsform veranschaulicht;
    • 9 ein Beispiel-Blockdiagramm für einen Pflegen-Bewertungsprozess gemäß einer Ausführungsform veranschaulicht;
    • 10 einen beispielhaften Schreibprozess für den Pflegen-Prozess von 9 gemäß einer Ausführungsform veranschaulicht; und
    • 11 ein Blockdiagramm für einen Prozess zum Pflegen von Transaktionsoperationen in einem verteilten Multi-Master-Datenverwaltungssystem gemäß einer Ausführungsform veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung aufgeführt, sollen jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die offenbarten Ausführungsformen. Für Fachleute werden viele Abänderungen und Abweichungen ersichtlich sein, ohne von dem Umfang und dem Gedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung von auf dem Markt vorgefundenen Technologien bestmöglich zu erläutern oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
  • Es wird im Voraus verstanden, dass, obwohl diese Offenlegung eine detaillierte Beschreibung des Cloud Computing umfasst, die Umsetzung der hier aufgeführten Lehren nicht auf eine Cloud Computing-Umgebung beschränkt ist. Vielmehr sind Ausführungsformen der vorliegenden Erfindung in der Lage, in Verbindung mit jedem anderen heute bekannten oder später entwickelten Typ von Computerumgebung implementiert zu werden.
  • Ausführungsformen beziehen sich auf Transaktionsoperationen (z.B. Aktualisierungen, Löschungen, Einfügungen usw.) in verteilten Multi-Master-Datenverwaltungssystemen. Eine Ausführungsform stellt ein Verfahren zum Pflegen von Transaktionsoperationen in einem verteilten Multi-Master-Datenverwaltungssystem bereit, das die Verwaltung von Transaktionsoperationen in mindestens einem transaktionslokalen Side-Log umfasst. Für eine Tabelle wird ein Tabellen-Log-Scan ausgeführt, der die Kennung der Aufzeichnung für jeden Datensatz in einem Log umfasst. Jede Spalte in der Tabelle wird auf Grundlage der Kennungen mit Spaltenwerten geladen. Auf Grundlage der Spaltenwerte werden Datensätze/Tupel in die gepflegten Transaktionsblöcke geschrieben, die auf einer Tabelle basieren, und die Tupel-Reihenfolgenummern (TSNs) für jeden Datensatz auf gepflegten Blöcken werden erzeugt. Die Tabelle wird über Knoten, die Transaktionsoperationen im System handhaben, gemeinsam genutzt/verteilt, um die Prozesshandhabung der Transaktionsoperationen zu erhöhen.
  • Cloud Computing ist ein Modell der Dienstbereitstellung, das einen bequemen, bedarfsgerechten Netzwerkzugang zu einem gemeinsamen Pool konfigurierbarer Computerressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Speicher, Anwendungen, virtuelle Maschinen (VMs) und Dienste) ermöglicht, die mit minimalem Verwaltungsaufwand oder Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle umfassen.
  • Die Charakteristiken sind wie folgt:
    • Selbstbedienung auf Abruf: Ein Cloud-Konsument kann bei Bedarf und automatisch einseitig Computerfunktionen wie Serverzeit und Netzwerkspeicher zur Verfügung stellen, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist.
    • Breiter Netzwerkzugang: Die Fähigkeiten sind über ein Netzwerk verfügbar und werden über Standardmechanismen zugänglich gemacht, die die Nutzung durch heterogene, Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) fördern.
    • Ressourcen-Pooling: Die Computing-Ressourcen des Anbieters werden in einem Multi-Tenant-Modell gepoolt, um mehrere Verbraucher zu bedienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch zugewiesen und je nach Bedarf neu zugewiesen werden. Es besteht ein Gefühl der Standortunabhängigkeit, da der Verbraucher im Allgemeinen keine Kontrolle oder Kenntnisse über den genauen Standort der bereitgestellten Ressourcen hat, aber möglicherweise in der Lage ist, den Standort auf einer höheren Abstraktionsebene (z.B. Land, Bundesstaat oder Rechenzentrum) anzugeben.
    • Schnelle Elastizität: Fähigkeiten können schnell und elastisch bereitgestellt werden und in einigen Fällen automatisch, um schnell aus- und schnell wieder freigesetzt zu werden, um schnell wieder eingeführt zu werden. Für den Verbraucher erscheinen die für die Bereitstellung verfügbaren Fähigkeiten oft unbegrenzt und können jederzeit in beliebiger Menge erworben werden.
    • Gemessener Dienst: Cloud-Systeme steuern und optimieren die Ressourcennutzung automatisch, indem sie auf einer dem Typ des Dienstes angemessenen Abstraktionsebene (z.B. Speicherung, Verarbeitung, Bandbreite und aktive Verbraucherkonten) eine Messkapazität nutzen. Die Ressourcennutzung kann überwacht, kontrolliert und berichtet werden, wodurch sowohl für den Anbieter als auch für den Verbraucher des genutzten Dienstes Transparenz bereitgestellt wird.
  • Die Dienstleistungsmodelle sind wie folgt:
    • Software as a Service (SaaS): Die dem Verbraucher zur Verfügung gestellte Fähigkeit ist die Fähigkeit, die Anwendungen des Anbieters zu nutzen, die auf einer Cloud-Infrastruktur laufen. Die Anwendungen sind von verschiedenen Client-Geräten über eine Thin-Client-Schnittstelle, wie z.B. einem Webbrowser, zugänglich (z.B. webbasierte E-Mail). Der Verbraucher verwaltet oder kontrolliert nicht die zugrundeliegende Cloud-Infrastruktur, einschließlich Netzwerk, Server, Betriebssysteme, Speicher oder sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme begrenzter verbraucherspezifischer Anwendungskonfigurationseinstellungen.
    • Platform as a Service (PaaS): Die dem Verbraucher zur Verfügung gestellte Fähigkeit ist die Fähigkeit, vom Verbraucher erstellte oder erworbene Anwendungen, die mit vom Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, auf der Cloud-Infrastruktur bereitzustellen. Der Verbraucher verwaltet oder kontrolliert nicht die zugrundeliegende Cloud-Infrastruktur einschließlich Netzwerke, Server, Betriebssysteme oder Speicher, sondern hat die Kontrolle über die bereitgestellten Anwendungen und möglicherweise die Konfigurationen der Anwendungs-Hosting-Umgebung.
    • Infrastructure as a Service (laaS): Die Fähigkeit, die dem Verbraucher zur Verfügung gestellt wird, ist die Fähigkeit, Verarbeitung, Speicherung, Netzwerke und andere grundlegende Computerressourcen bereitzustellen, wobei der Verbraucher in der Lage ist, beliebige Software einzusetzen und auszuführen, die Betriebssysteme und Anwendungen umfassen kann. Der Verbraucher verwaltet oder kontrolliert nicht die zugrundeliegende Cloud-Infrastruktur, sondern hat die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine begrenzte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Die Bereitstellungsmodelle sind wie folgt:
    • Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann sowohl vor Ort als auch außerhalb des Unternehmens bestehen.
    • Community-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Anliegen hat (z.B. Auftrag, Sicherheitsanforderungen, Richtlinien und Compliance-Erwägungen). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und sowohl vor Ort als auch außerhalb des Firmengeländes bestehen.
    • Öffentliche Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einem großen Industriekonzern zur Verfügung gestellt und befindet sich im Besitz einer Organisation, die Cloud-Dienste verkauft.
    • Hybride Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehr Clouds (privat, Community oder öffentlich), die zwar einzigartige Einheiten bleiben, aber durch standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportabilität ermöglicht (z.B. Cloud Bursting für den Lastausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist eine dienstorientierte Umgebung mit Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Das Herzstück von Cloud Computing ist eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten umfasst.
  • Unter Bezugnahme auf 1 wird nun eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen lokale Rechengeräte, die von Cloud-Konsumenten verwendet werden, wie z.B. der Personal Digital Assistant (PDA) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computersystem 54N kommunizieren können. Knoten 10 können miteinander kommunizieren. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert (nicht dargestellt) sein, wie z.B. private, Community, öffentliche oder hybride Clouds, wie oben beschrieben, oder eine Kombination davon. Dies ermöglicht es der Cloud Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Konsument keine Ressourcen auf einem lokalen Rechengerät verwalten muss. Es wird davon ausgegangen, dass die in 2 gezeigten Typen von Rechengeräten 54A-N nur zur Veranschaulichung dienen und dass die Rechenknoten 10 und die Cloud-Computing-Umgebung 50 mit jeder Art von computerisiertem Gerät über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung (z.B. über einen Webbrowser) kommunizieren können.
  • Unter Bezugnahme auf 2 wird nun eine Reihe von funktionalen Abstraktionsebenen gezeigt, die von der Cloud-Computing-Umgebung 50 (1) bereitgestellt werden. Es sollte im Voraus verstanden werden, dass die in 2 gezeigten Komponenten, Ebenen und Funktionen nur veranschaulichen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Ebenen und entsprechenden Funktionen zur Verfügung gestellt:
  • Hardware- und Software-Ebene 60 umfasst Hardware- und SoftwareKomponenten. Beispiele für Hardwarekomponenten umfassen: Mainframes 61; auf der RISC-Architektur (Reduced Instruction Set Computer) basierende Server 62; Server 63; Blade-Server 64; Speichergeräte 65; und Netzwerke und Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Softwarekomponenten die Software 67 für Netzwerkanwendungsserver und 68 für Datenbanken.
  • Die Virtualisierungsebene 70 bietet eine Abstraktionsebene, von der aus die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, einschließlich virtueller privater Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsebene 80 die unten beschriebenen Funktionen bereitstellen. Ressourcenbereitstellung 81 stellt die dynamische Beschaffung von Computerressourcen und anderen Ressourcen bereit, die zur Ausführung von Aufgaben innerhalb der Cloud-Computing-Umgebung genutzt werden. Messung und Preisgestaltung 82 stellt die Kostenverfolgung bei der Nutzung von Ressourcen innerhalb der Cloud-Computing-Umgebung und die Abrechnung oder Fakturierung des Verbrauchs dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Sicherheit stellt die Identitätsprüfung für Cloud-Konsumenten und Aufgaben sowie den Schutz von Daten und anderen Ressourcen bereit. Das Benutzerportal 83 stellt Verbrauchern und Systemadministratoren Zugang zur Cloud-Computing-Umgebung zur Verfügung. Service Level Management 84 stellt die Zuweisung und Verwaltung von Cloud Computing-Ressourcen bereit, so dass die benötigten Service Levels erfüllt werden. Planung und Erfüllung von Service Level Agreement (SLA) 85 stellt die Vorbereitung und Beschaffung von Cloud-Computing-Ressourcen bereit, für die ein zukünftiger Bedarf in Übereinstimmung mit einem SLA erwartet wird.
  • Arbeitslastebene 90 stellt Beispiele für Funktionen bereit, für die die Cloud Computing-Umgebung genutzt werden kann. Beispiele für Arbeitslasten und Funktionen, die von dieser Ebene bereitgestellt werden können, umfassen: Kartierung und Navigation 91; Software-Entwicklung und Lebenszyklus-Management 92; Unterricht in virtuellen Klassenzimmern 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und Pflegen von Transaktionsoperationen in einem verteilten Multi-Master-Datenverwaltungssystem 96. Wie oben erwähnt, sind alle vorstehenden Beispiele, die in Bezug auf 2 beschrieben wurden, nur veranschaulichend, und die Erfindung ist nicht auf diese Beispiele beschränkt.
  • Es wird davon ausgegangen, dass alle Funktionen einer oder mehrerer Ausführungsformen, wie sie hier beschrieben sind, typischerweise durch das Verarbeitungssystem 300 (BILD 3) oder die Cloud-Umgebung 410 (BILD 4) ausgeführt werden können, die als Hardware-Prozessoren und mit Modulen von Programmcode greifbar verkörpert werden können. Bei Nicht-Echtzeit-Prozessen muss dies jedoch nicht der Fall sein. Vielmehr könnte für die Nicht-Echtzeit-Verarbeitung die hier beschriebene Funktionalität von jeder der in 2 dargestellten Ebenen 60, 70, 80 und 90 ausgeführt bzw. implementiert und/oder aktiviert werden.
  • Es wird erneut darauf hingewiesen, dass, obwohl diese Offenlegung eine detaillierte Beschreibung des Cloud-Computing umfasst, die Umsetzung der hier dargelegten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können die Ausführungsformen der vorliegenden Erfindung mit jeder Art von heute bekannten oder später entwickelten Clustered-Computing-Umgebung implementiert werden.
  • 3 veranschaulicht eine Netzwerkarchitektur 300 gemäß einer Ausführungsform. Wie in 3 dargestellt, wird eine Vielzahl von Remote-Netzwerken 302 bereitgestellt, darunter ein erstes Remote-Netzwerk 304 und ein zweites Remote-Netzwerk 306. Ein Gateway 301 kann zwischen den Remote-Netzwerken 302 und einem Proximate-Netzwerk 308 gekoppelt werden. Im Kontext der gegenwärtigen Netzarchitektur 300 können die Netze 304, 306 jeweils jede beliebige Form bilden, einschließlich, aber nicht beschränkt auf ein LAN, ein WAN, wie z.B. das Internet, das öffentliche Fernsprechnetz (PSTN), das interne Telefonnetz usw.
  • Im Einsatz dient das Gateway 301 als Zugangspunkt von den Remote-Netzwerken 302 zum Proximate-Netzwerk 308. Als solches kann das Netzübergang 301 als Router fungieren, der in der Lage ist, ein bestimmtes Datenpaket, das am Netzübergang 301 ankommt, zu leiten, und als Switch, der den tatsächlichen Weg in und aus dem Netzübergang 301 für ein bestimmtes Paket bereitstellt.
  • Ferner umfasst er mindestens einen Datenserver 314, der an das nahe gelegene Netz 308 gekoppelt ist, das von den entfernten Netzen 302 über das Gateway 301 zugänglich ist. Es ist zu beachten, dass der (die) Datenserver 314 jede Art von Rechengerät/Groupware umfassen kann (können). An jeden Datenserver 314 ist eine Vielzahl von Benutzergeräten 316 gekoppelt. Solche Benutzergeräte 316 können einen Desktop-Computer, einen Laptop-Computer, einen Handheld-Computer, einen Drucker und/oder jeden anderen Typ von Logik enthaltenden Geräten umfassen. Es ist zu beachten, dass ein Benutzergerät 311 in einigen Ausführungsformen auch direkt an eines der Netzwerke gekoppelt sein kann.
  • Ein Peripheriegerät 320 oder eine Reihe von Peripheriegeräten 320, z.B. Faxgeräte, Drucker, Scanner, Festplattenlaufwerke, vernetzte und/oder lokale Speichereinheiten oder -systeme usw., kann mit einem oder mehreren der Netzwerke 304, 306, 308 gekoppelt werden. Es ist zu beachten, dass Datenbanken und/oder zusätzliche Komponenten mit jedem Typ von Netzwerkelementen, die mit den Netzwerken 304, 306, 308 gekoppelt sind, genutzt oder in diese integriert werden können. Im Zusammenhang mit der vorliegenden Beschreibung kann sich ein Netzelement auf jede beliebige Komponente eines Netzes beziehen.
  • Nach einigen Herangehensweisen können die hier beschriebenen Verfahren und Systeme mit und/oder auf virtuellen Systemen und/oder Systemen implementiert werden, die ein oder mehrere andere Systeme emulieren, wie z. B. ein UNIX-System, das eine IBM z/OS-Umgebung emuliert, ein UNIX-System, das virtuell eine MICROSOFT WINDOWS-Umgebung hostet, ein MICROSOFT WINDOWS-System, das eine IBM z/OS-Umgebung emuliert, usw. Diese Virtualisierung und/oder Emulation kann durch die Verwendung von VMWARE-Software in einigen Ausführungsformen implementiert werden.
  • 4 zeigt eine repräsentative Hardware-System-400-Umgebung, die gemäß einer Ausführungsform mit einem Benutzergerät 316 und/oder Server 314 aus 3 verknüpft ist. In einem Beispiel umfasst eine Hardware-Konfiguration eine Arbeitsstation mit einer zentralen Verarbeitungseinheit 410, wie z.B. einem Mikroprozessor, und einer Anzahl anderer Einheiten, die über einen Systembus 412 miteinander verbunden sind. Die in 4 gezeigte Arbeitsstation kann einen Direktzugriffsspeicher (RAM) 414, einen Festwertspeicher (ROM) 416, einen E/A-Adapter 418 zum Anschluss von Peripheriegeräten, wie z.B. Plattenspeichereinheiten 420, an den Bus 412, einen Benutzerschnittstellenadapter 422 zum Anschluss einer Tastatur 424, einer Maus 426, eines Lautsprechers 428, eines Mikrofons 432 und/oder anderer Benutzerschnittstellengeräte, wie z.B. eines Touchscreens, einer Digitalkamera (nicht abgebildet) usw. an den Bus 412, einen Kommunikationsadapter 434 für den Anschluss der Arbeitsstation an ein Kommunikationsnetzwerk 435 (z.B. ein Datenverarbeitungsnetzwerk) und einen Bildschirmadapter 436 für den Anschluss des Busses 412 an ein Anzeigegerät 438 umfassen.
  • In einem Beispiel kann auf der Arbeitsstation ein Betriebssystem, wie z.B. das MICROSOFT WINDOWS Operating System (OS), ein MAC OS, ein UNIX OS usw., installiert sein. In einer Ausführungsform verwendet das System 400 ein POSIX®-basiertes Dateisystem. Es ist denkbar, dass andere Beispiele auch auf anderen als den genannten Plattformen und Betriebssystemen implementiert werden können. Solche anderen Beispiele können Betriebssysteme umfassen, die unter Verwendung der Sprachen JAVA, XML, C und/oder C++ oder anderer Programmiersprachen zusammen mit einer objektorientierten Programmiermethodik verfasst sind. Die objektorientierte Programmierung (OOP), die zunehmend zur Entwicklung komplexer Anwendungen eingesetzt wird, kann ebenfalls verwendet werden.
  • 5 ist elm Blockdiagramm, das ein System 500 veranschaulicht, das gemäß einer Ausführungsform für gepflegte Transaktionsoperationen eingesetzt werden kann. In einer Ausführungsform umfasst das System 500 Client-Geräte 510 (z.B. mobile Geräte, intelligente Geräte, Computersysteme usw.), eine Cloud- oder Ressourcen-Sharing-Umgebung 520 (z.B. eine öffentliche Cloud-Computing-Umgebung, eine private Cloud-Computing-Umgebung, ein Rechenzentrum usw.) und Server 530. In einer Ausführungsform werden den Client-Geräten Cloud-Dienste von den Servern 530 über die Cloud- oder Ressourcen-Sharing-Umgebung 520 zur Verfügung gestellt.
  • In einer Ausführungsform analysiert das System 500, ein periodischer Hintergrundprozess, der als Pflegen bezeichnet wird, Transaktionsoperationen (z. B. Aktualisierungen, Löschungen, Einfügungen (UDIs)) von Multi-Statement-Transaktionen, die auf einem Multi-Master-System ausgeführt werden, und veröffentlicht die UDIs auf einem Nur-Anhängen (append-only) Datenfluss in einer Weise, die ein monotones transaktionelles konsistentes Lesen dieser Daten ermöglicht. In einer Ausführungsform verwaltet das Multi-Master-System für den Pflegen-Prozess die UDls von laufenden Multi-Statement-Transaktionen in einem transaktionslokalen Side-Log. Nur bei einer erfolgreichen Transaktionsfestlegung werden die transaktionslokalen Side-Logs an den Log-Fluss angehängt. Der Pflegen-Prozess liest nur den Log-Fluss, daher vermeidet der Pflegen-Prozess, dass er über nicht festgelegte Transaktionsänderungen informiert wird. Der Thread, der den Pflegen-Prozess (auch als „groomer“ bezeichnet) ausführt, stellt einen Cursor oder einen Hinweis auf dem Log-Fluss bereit, um sich zu merken, wo er im vorausgegangenen Pflegen-Zyklus aufgehört hat. Der Log-Fluss, der vor der Stelle liegt, auf die der Cursor oder die Angabe des Groomers zeigt, wird zum Löschen markiert. In einer Ausführungsform löscht ein Prozess, der als Beschneiden (pruning) bezeichnet wird, diesen Teil des Log-Flusses, wenn kein laufender Lesevorgang in diesem Fluss stattfindet. Sowohl der Groomer als auch die auf den vorangehenden Pflegen-Zyklus folgenden Lesevorgänge beginnen daher mit dem Lesen des noch nicht gepflegten Log-Flusses. Dies gewährleistet ferner das monotone Lesen der Daten. Zusätzlich liest der Pflegen-Prozess nur Log-Flüsse mit Zeitstempeln (z.B. Festlegungszeitstempel für dieses Log-Element), die vor der Startzeit des Pflegen-Prozesses liegen, was eine begrenzte Ausführungszeit für einen Pflegen-Zyklus gewährleistet.
  • 6 veranschaulicht eine beispielhafte Architektur 600 für die Ausführung eines Pflegen-Prozesses in einem verteilten Multi-Master-Datenverwaltungssystem gemäß einer Ausführungsform. In einer Ausführungsform umfasst die Architektur 600 die Anwendungen 610, Aufgabenkoordinatoren 620, Ausführungsmodule 630 für Analyseknoten 650, Ausführungsmodule 640 für Transaktionsknoten 655 und Speicher 660. In einer Ausführungsform können die Anwendungen 610 die Analyseanwendungen 611, die leicht veralteten Daten tolerieren und die aktuellsten Daten benötigen, und die Transaktionsanwendungen 612 für hohe Volumen umfassen. In einer Ausführungsform handhaben die Analyseknoten 650 nur schreibgeschützte Operationen. Die Transaktionsknoten 655 sind für das Pflegen von Transaktionsoperationen (z.B. UDIs) zuständig. Die Ausführungs-Engines 640 umfassen mehrere Ausführungs-Engines 645, die mit Speichergeräten 646 verbunden sind (z.B. Festkörperbauteile (SSD) und nichtflüchtige Speicher (NVM), wie Festkörperspeicher, Flash-Speicher, ferroelektrischer RAM, magnetische Computer-Speichergeräte (z.B. Festplatten, Disketten und Magnetbänder, optische Platten usw.). Der Speicher 660 kann ein gemeinsames Dateisystem, einen Objektspeicher oder beides umfassen.
  • In einer Ausführungsform werden zur Beschleunigung von UDI-Operationen durch Parallelität die Tabellen in dem Multi-Master-System, das die Architektur 600 umfasst, über Knoten, die Transaktionen handhaben, die auf einer Teilmenge eines Primärschlüssels (einspaltig oder zusammengesetzt) basieren, verteilt oder partitioniert. Ein Tabellen-Partition (shard) wird auch (einer konfigurierbaren Anzahl von) mehreren Knoten (Transaktionsknoten 655) für eine höhere Verfügbarkeit zugewiesen. Zusätzlich zu den Transaktionsknoten 655, die für UDI-Operationen und Nachschlagen von Daten zuständig sind, sind die Analyseknoten 650 nur für analytische Leseanforderungen zuständig. Ein verteiltes Koordinationssystem umfasst die Aufgabenkoordinatoren 620, die die Metainformationen im Zusammenhang mit Verteilung und Replikation verwalten, sowie einen Katalog, der die Schemainformationen für jede Tabelle verwaltet. Eine oder mehrere Ausführungsformen ermöglichen es auch externen Lesegeräten, die über das Multi-Master-System aufgenommenen Daten zu lesen, ohne die lokalen Systemkomponenten einzubeziehen, aber diese Lesegeräte können die neuesten Transaktionsdaten nicht sehen, die auf den Transaktionsknoten 655 gespeichert sind, die UDI-Operationen handhaben.
  • In einer Ausführungsform verwaltet jede Transaktion, die von der Architektur 600 gehandhabt wird, ihre nicht festgelegten Änderungen in einem transaktionslokalen Side-Log 811 (8), das aus einem oder mehreren Log-Blöcken besteht. Jeder Log-Block kann Transaktionen für nur eine Tabelle enthalten. Zum Zeitpunkt der Transaktionsfestlegung hängt die Transaktion ihr transaktionslokales Side-Log 811 an das Log 812 (BILD 8) an, das sowohl im Speicher 660 (Speicher 810, BILD 8) gehalten wird als auch auf der Platte (SSD/NVM 646 (830 (BILD 8)) persistiert wird. Zusätzlich wird das transaktionslokale Side-Log 811 in jeden der anderen Transaktionsknoten 655 kopiert, die für die Verwaltung eines Replikats der Daten dieser Partition verantwortlich sind, um die Verfügbarkeit zu gewährleisten. Während jedes Replikat einer Partition jede Transaktionsanforderung für diese Partition verarbeiten kann (Multi-Master), ruft eines der Replikate in regelmäßigen Abständen eine Pflegen-Operation oder einen Pflegen-Prozess auf. Diese Pflegen-Operation scannt das Log 812 und gruppiert die Log-Blöcke aus mehreren (festgelegten) Transaktionen für dieselbe Tabelle und erzeugt größere gepflegte Blöcke, die nur Daten aus einer einzigen Tabelle enthalten (siehe z.B. 8, gepflegte Daten 855). Zusätzlich zum Zusammenführen von Log-Blöcken kann die Pflegen-Operation auch die Konfliktlösung 930 (9) für Datenelemente ausführen. Die gepflegten Datenblöcke 850 werden dann in einen Nur-Anhängen Speicherfluss ausgelagert, bei dem es sich ebenfalls um ein gemeinsam genutztes verteiltes Dateisystem handelt, so dass auch andere Knoten auf sie zugreifen können. Nach einem Pflegen-Durchgang beschneidet der Groomer die von ihm erfolgreich gepflegten Log-Einträge, so dass er keine Ressourcen mehr belegt, und der nächste Pflegen-Durchgang kann dort beginnen, wo er aufgehört hat.
  • 7 veranschaulicht ein Lebenszyklus-Beispiel 700 für Daten in einem verteilten Multi-Master-Datenverwaltungssystem, das die Architektur 600 umfasst (6), gemäß einer Ausführungsform. In einer Ausführungsform wird die Lebensdauer von Daten durch neuste Daten 701 und alte Daten 702 dargestellt. Die neusten Daten 701 gehören zur Live-Zone (letzte) 710, während die alten Daten zur gepflegten Zone 711 gehören (z.B. ~1 Sekunde alt). Die Transaktionsknoten 655 gehören zur Live-Zone 710 und empfangen Einfügungen, Aktualisierungen und Löschungen von Transaktionsoperationen 720 und schreibgeschützten Operationen 721, die die neuesten Daten benötigen. Die Analyseknoten 650 gehören zur gepflegten Zone 711 und empfangen Eingaben 730, darunter: Punkt-Nachschlagen 731, Business-Intelligence-Operationen 732 und maschinelle Lernoperationen (schreibgeschützt) 733. Wie veranschaulicht, gehen die Daten in der Live-Zone 710 in die gepflegte Zone 711 über, wenn die Daten älter werden.
  • 8 veranschaulicht ein Beispiel von 800 Pflegen-Daten in einem verteilten Multi-Master-Datenverwaltungssystem, gemäß einer Ausführungsform. Wie veranschaulicht, werden die nicht festgelegten Änderungen in einem transaktionslokalen Side-Log 811 aufgezeichnet/gespeichert, das aus einem oder mehreren Log-Blöcken besteht. Der Log-Datensatz 815 einer Tabelle umfasst die Log-Blöcke für das Log (persistent) 812. Die Transaktion hängt ihr transaktionslokales Side-Log 811 an das Log 812 an, das sowohl im Speicher 810 gehalten als auch auf der Platte SSD/NVM 830 persistiert wird. Im SSD/NVM 830 wird das Log 812 in den Datensätzen 835 aufgezeichnet und als Cache-Daten 840 zwischengespeichert. Die aus dem Pflegen-Prozess resultierenden Daten 855 werden im gemeinsam genutzten Dateisystem 850 (oder Speicher 660, 6) gespeichert.
  • 9 veranschaulicht ein Beispiel des Blockdiagramms 900 für einen Pflegen-Evaluierungsprozess gemäß einer Ausführungsform. Im übergeordneten beispielhaften Blockdiagramm 900 umfasst der Prozess das Ausführen eines Tabellen-Log-Scans 910 für eine Tabelle mit Aufzeichnungskennungen (IDs) für jeden Datensatz im Log. Die Eingabe für den Tabellen-Log-Scan 910 umfasst den Tabellennamen und den Zeitstempel für das Log-Ende (für einen begrenzten Scan). Die Ausgabe des Tabellen-Log-Scan 910 umfasst gebundene TSNs (BTSNs) (d.h. die Datensatz-IDs für jeden Datensatz im Log). Im Block 920 wird ein Ladespalten-Prozess ausgeführt. Die Ladespalte nimmt als Eingabe die BSTNs aus Block 910 und gibt Spaltenwerte aus. In einer Ausführungsform wird im Block 930 eine optionale Konfliktlösung 930 ausgeführt (z.B. Datenkonflikte usw.). Im Block 940 wird ein Schreib-Tabellen-Prozess ausgeführt. Der Tabellenschreibprozess nimmt die Spaltenwerte als Eingabe und gibt TSNs (Datensatz-IDs auf aufgezeichneten Blöcken) aus. Der Prozess des Tabellenschreibens wird ferner in Bezug auf 10 weiter unten beschrieben. In einer Ausführungsform wird die optionale Verarbeitung für den Schreib-/Aktualisierungsindex für jeden Index der Tabelle ausgeführt. In einer Ausführungsform sind die Eingabe für Block 950 Indexspalten und TSNs, und die Ausgabe sind Hash-Werte.
  • 10 veranschaulicht einen beispielhaften Schreib-Tabellen-Prozess für Block 940 für den Pflegen-Bewertungsprozess 900 von 9 gemäß einer Ausführungsform. Im Block 1010 erhält oder empfängt der Schreib-Tabellen-Prozess einen nächsten Eingabe-Stride/-Batch/-Gruppe von Datensätzen vom Scannen des Tabellen-Logs. Im Block 1020 erzeugt der Schreib-Tabellen-Prozess eindeutige Festlegungszeitstempel. Im Block 1030 hängt der Schreib-Tabellen-Prozess Spalten der Datensätze an einen In-Memory-Puffer an und erzeugt die TSNs für die gepflegten Transaktionsblöcke. Im Block 1040 wird ermittelt, ob weitere Eingaben vorhanden sind und ob der Puffer nicht voll ist. Falls weitere Eingaben vorhanden sind und der Puffer nicht voll ist, geht der Schreib-Tabellen-Prozess zurück zu Block 1010. Andernfalls fährt der Schreib-Tabellen-Prozess mit Block 1050 fort und lagert den In-Memory-Puffer in das gemeinsame Dateisystem, einen Objektspeicher oder einen lokalen Cache aus. Im Block 1060 wird festgestellt, ob weitere Eingaben verfügbar sind oder nicht. Wenn weitere Eingaben verfügbar sind, fährt der Schreib-Tabellen-Prozess mit Block 1010 fort. Andernfalls fährt der Schreib-Tabellen-Prozess mit Block 1070 fort, wobei der Schreib-Tabellen-Prozess einen verteilten Koordinator über einen Pflegendpunkt informiert (d.h. den Log-Endpunkt und die ID des letzten gepflegten Blocks). Im Block 1080 bewegt der Schreib-Tabellen-Prozess einen Log-Kopf über den Pflegendpunkt hinaus und beschneidet das Log, wenn keine Leseprozesse übrigbleiben.
  • 11 veranschaulicht ein Blockdiagramm des Prozesses 1100 für Pflegen von Transaktionsoperationen in einem verteilten Multi-Master-Datenverwaltungssystem gemäß einer Ausführungsform. In einer Ausführungsform, Im Block 1110, verwaltet der Prozess 1100 Transaktionsoperationen in mindestens einem transaktionslokalen Side-Log. Im Block 1120 wird ein Tabellen-Log-Scan für eine Tabelle ausgeführt, der für jeden Datensatz in einem Log eine Aufzeichnungskennung umfasst. Im Block 1130 wird jede Spalte in der Tabelle auf Grundlage der Kennungen mit Spaltenwerten geladen. Im Block 1140 werden TSNs für die Datensätze erzeugt, und die Datensätze auf gepflegten Transaktionsblöcken werden auf Grundlage der Spaltenwerte in die Tabelle geschrieben. Die Tabelle wird über Transaktionsknoten im verteilten Multi-Master-Datenverwaltungssystem gemeinsam genutzt/verteilt, um die Prozesshandhabung der Transaktionsoperationen zu erhöhen.
  • In einer Ausführungsform kann Block 1140 ferner einen Empfang einer nächsten Eingabegruppe von Datensätzen vom Scannen der Tabelle, die Erzeugung eindeutiger Festlegungszeitstempel, das Anhängen von Spalten der Datensätze an einen In-Memory-Puffer und die Erzeugung der TSNs für die in die gepflegten Transaktionsblöcke geschriebenen Datensätze umfassen. Wenn festgestellt wird, dass es keine zusätzliche Eingabegruppe von Datensätzen gibt und der In-Memory-Puffer nicht voll ist, umfasst Block 1140 ferner das Auslagern des In-Memory-Puffers in mindestens eines von einem gemeinsamen Dateisystem, einem Objektspeicher oder einem lokalen Cache. Andernfalls fährt der Prozess 1100 fort, um die nächste Eingabegruppe von Datensätzen vom Scannen der Tabelle zu empfangen.
  • In einer Ausführungsform kann der Prozess 1100 ferner, falls eine weitere Eingabegruppe von Datensätzen nicht verfügbar ist, die Benachrichtigung eines verteilten Koordinators über einen Pflegendpunkt, das Bewegen eines Log-Kopfes über den Pflegendpunkt hinaus und das Beschneiden des Logs umfassen, bis keine Leseprozesse mehr vorhanden sind.
  • In einer Ausführungsform umfassen die Transaktionsoperationen für Prozess 1100 Aktualisierungs-, Lösch- und Einfügeoperationen. Nach einer erfolgreichen Transaktionsfestlegung wird das transaktionslokale Side-Log an einen Log-Fluss angehängt. Der Pflegen-Prozess liest nur das Log und vermeidet nicht festgelegte Transaktionsänderungen. Ein Thread, der den Pflegen-Prozess ausführt, verwaltet einen Cursor auf dem Log als Angabe eines vorangehenden Pflegen-Zyklus.
  • In einer Ausführungsform wird für Prozess 1100 im Log-Fluss ein Punkt vor einer Stelle, auf die der Cursor zeigt, zum Löschen markiert. Ein Prozess zum Beschneiden löscht einen Teil des Log-Flusses, wenn festgestellt wird, dass sich kein laufender Lesevorgang im Log-Fluss des Teils befindet. Sowohl der Pflegen-Prozess als auch die Leseoperationen folgen dem vorangehenden Pflegen-Zyklus, so dass die Leseoperationen der Daten monoton sind. Der Pflegen-Prozess liest nur Log-Flüsse mit Festlegungszeitstempeln, die kleiner als eine Startzeit des Pflegen-Prozesses sind, so dass ein Pflegen-Zyklus eine begrenzte Ausführungszeit hat.
  • In einer Ausführungsform kann der Prozess 1100 bereitstellen, dass aktualisierte Datensätze nach dem Pflegen durch einen periodischen Hintergrundprozess mit einem End-Zeitstempel gekennzeichnet werden, so dass die aktualisierten Datensätze von Leseprozessen, die die neuesten Daten benötigen, oder von Leseprozessen, die Daten aus einer bestimmten Zeitperiode lesen, ignoriert werden.
  • In einer Ausführungsform kann Prozess 1100 umfassen, dass das verteilte Multi-Master-Datenverwaltungssystem auf zwei Speicherebenen arbeitet, einschließlich: einer ersten Speicherebene, die sich lokal auf einem Knoten befindet, und einer zweiten Speicherebene, die ein verteiltes, gemeinsam genutztes Dateisystem oder einen Objektspeicher umfasst. Die erste Speicherebene verwaltet eine persistente Version des Logs, die während der Wiederherstellung durch den Pflegen-Prozess verwendet wird, um das Pflegen dort zu beginnen, wo der Pflegen-Prozess in einem vorangehenden Zyklus aufgehört hat, und speichert häufig abgerufene Teile der zweiten Speicherebene im Cache, um einen schnellen Zugriff auf die Daten zu ermöglichen. Die zweite Speicherebene verwaltet den Datenfluss und stellt den Datenfluss allen Knoten im verteilten Multi-Master-Datenverwaltungssystem zur Verfügung.
  • Wie für einen Fachmann verständlich sein wird, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt verkörpert sein. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte miteinander verbindet und die hier alle allgemein als „Schaltkreis“, „Modul“ oder „System“ bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem computerlesbaren Medium oder mehreren computerlesbaren Medien verkörpert ist, auf denen ein computerlesbarer Programmcode verkörpert ist.
  • Jede Kombination von einem oder mehreren computerlesbaren Medien kann genutzt werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich beispielsweise und ohne darauf beschränkt zu sein um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination davon handeln. Zu konkreteren Beispielen (einer keinen Anspruch auf Vollständigkeit erhebenden Liste) für das computerlesbare Speichermedium würden die folgenden gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM- oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination davon. Im Zusammenhang mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Befehlen enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem computerlesbaren Programmcode, der darin z. B. im Basisband oder als Teil einer Trägerwelle verkörpert ist, enthalten. Ein derartiges verbreitetes Signal kann jede von einer Vielzahl von Formen annehmen, zu denen elektromagnetische, optische Formen oder jede geeignete Kombination hiervon gehören, die jedoch nicht darauf beschränkt sind. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung kommunizieren, verbreiten oder transportieren kann.
  • Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, wozu drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, HF-Medien oder jede geeignete Kombination aus dem Vorhergehenden gehören, die jedoch nicht auf diese beschränkt sind.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java®, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein selbstständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein Lokalbereichs-Netzwerks (LAN) oder ein Weitbereichs-Netzwerks (WAN), oder die Verbindung kann zu einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung sind hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Mehrzweck-Computers, eines speziellen Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind, erzeugen.
  • Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, wozu Befehle gehören, die die Funktion/Wirkung umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind.
  • Die Computerprogrammbefehle können außerdem in einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten ausgeführt werden sollen, um einen mittels Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind, bereitstellen.
  • Das Flussdiagramm und die Blockdiagramme in den Figuren veranschaulichen die Architektur, Funktionalität und Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Flussdiagramm oder den Blockdiagrammen ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Implementierung der spezifizierten logischen Funktion(en) umfassen. In einigen alternativen Implementierungen können die im Block vermerkten Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten. So können z.B. zwei nacheinander dargestellte Blöcke im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität. Es ist zu beachten, dass jeder Block der Blockdiagramme und/oder der veranschaulichenden Flussdiagrammdarstellung sowie Kombinationen von Blöcken in den Blockdiagrammen und/oder der veranschaulichenden Flussdiagrammdarstellung durch auf Spezial-Hardware basierende Systeme implementiert werden kann, die die angegebenen Funktionen oder Handlungen ausführen oder Kombinationen von Spezial-Hardware und Computer-Anweisungen ausführen.
  • Bezugnahmen in den Ansprüchen auf ein Element in der Singularform sollen nicht „ein und nur ein“ bedeuten, außer dies ist ausdrücklich so angegeben, sondern „ein oder mehrere“. Alle strukturellen und funktionellen Äquivalente zu den Elementen der oben beschriebenen beispielhaften Ausführungsform, die Fachleuten derzeit bekannt sind oder zu einem späteren Zeitpunkt bekannt werden, sollen von den vorliegenden Ansprüchen umfasst werden. Kein Anspruchselement hierin soll gemäß den Vorschriften von 35 U. S. C., Paragraph 112, Absatz 6 ausgelegt werden, es sei denn, das Element wird ausdrücklich unter Verwendung der Formulierung „Mittel zum“ oder „Schritt zum“ zitiert.
  • Die hierin verwendete Terminologie dient lediglich der Beschreibung von bestimmten Ausführungsformen und soll die Erfindung nicht einschränken. Wie hierin verwendet, sollen die Singularformen „ein(e)“ und „der/die/das“ auch die Pluralformen miteinschließen, sofern aus dem Kontext nicht eindeutig etwas anderes hervorgeht. Außerdem versteht es sich von selbst, dass die Begriffe „aufweist“ und/oder „aufweisend“ bei Verwendung in dieser Beschreibung das Vorhandensein von dargelegten Merkmalen, ganzen Zahlen, Schritten, Arbeitsgängen, Elementen und/oder Komponenten angeben, jedoch das Vorhandensein oder Hinzufügen von einem oder mehreren anderen Merkmalen, ganzen Zahlen, Schritten, Arbeitsgängen, Elementen, Komponenten und/oder Gruppen von diesen nicht ausschließen.
  • Zu den entsprechenden Strukturen, Materialien, Vorgängen und Äquivalenten von allen Mitteln oder Schritt-plus-Funktion-Elementen in den folgenden Ansprüchen sollen eine beliebige Struktur, ein beliebiges Material oder ein beliebiger Vorgang zum Ausführen der Funktion zusammen mit anderen beanspruchten Elementen gehören, wie sie im Einzelnen beansprucht werden. Die Beschreibung der vorliegenden Erfindung dient der Veranschaulichung und Beschreibung, soll jedoch nicht erschöpfend sein oder die Erfindung auf die offenbarte Form beschränken. Viele Modifikationen und Änderungen sind für Fachleute offensichtlich, ohne vom Schutzumfang und Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um den Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erläutern und anderen Fachleuten ein Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen zu ermöglichen, wie sie für die jeweils beabsichtigte Verwendung geeignet sind.

Claims (20)

  1. Verfahren zum Pflegen von Transaktionsoperationen in einem verteilten Multi-Master-Datenverwaltungssystem, umfassend: Verwalten von Transaktionsoperationen in mindestens einem transaktionslokalen Side-Log; Ausführen eines Tabellen-Log-Scans für eine Tabelle, die eine Aufzeichnungskennung für jede Aufzeichnung in einem Log umfasst; Laden jeder Spalte in der Tabelle mit Spaltenwerten auf Grundlage der Kennungen; und Erzeugen von Tupel-Reihenfolgenummern für die Datensätze und Schreiben der Datensätze auf gepflegten Transaktionsblöcken in die Tabelle auf Grundlage der Spaltenwerte, wobei die Tabelle auf Knoten verteilt wird, die die Transaktionsoperationen im verteilten Multi-Master-Datenverwaltungssystem handhaben, um die Prozesshandhabung der Transaktionsoperationen zu erhöhen.
  2. Verfahren nach Anspruch 1, wobei das Schreiben ferner umfasst: Empfangen einer nächsten Eingabegruppe von Datensätzen vom Scannen der Tabelle; Erzeugen eindeutiger Festlegungszeitstempel; Anhängen von Spalten der Datensätze an einen In-Memory-Puffer; und Erzeugen der Tupel-Reihenfolgenummern für die in den gepflegten Transaktionsblöcken aufgezeichneten Datensätze.
  3. Verfahren nach Anspruch 2, wobei bei einer Feststellung, dass es keine zusätzliche Eingabegruppe von Datensätzen gibt und der In-Memory-Puffer nicht voll ist, der In-Memory-Puffer in mindestens eines von einem gemeinsam genutzten Dateisystem, einem Objektspeicher oder einem lokalen Cache ausgelagert wird.
  4. Verfahren nach Anspruch 3, ferner umfassend: wenn eine weitere Eingabegruppe von Datensätzen nicht verfügbar ist, Benachrichtigen eines verteilten Koordinators über eine Pflegendpunkt-Information; Verschieben eines Log-Kopfes über den Pflegendpunkt hinaus; und Beschneiden des Logs, bis keine Leseprozesse mehr vorhanden sind.
  5. Verfahren nach Anspruch 1, wobei: die Transaktionsoperationen Aktualisierungs-, Lösch- und Einfügeoperationen umfassen; nach einer erfolgreichen Transaktionsfestlegung das transaktionslokale Side-Log an einen Fluss des Logs angehängt wird; ein Pflegen-Prozess nur das Log liest und nicht festgelegte Transaktionsänderungen vermeidet; und ein Thread, der den Pflegen-Prozess ausführt, einen Cursor auf dem Log als Angabe eines vorangehenden Pflegen-Zyklus verwaltet.
  6. Verfahren nach Anspruch 5, wobei: in dem Fluss des Logs vor einer Stelle, auf die der Cursor zeigt, zum Löschen markiert wird; ein Prozess des Beschneidens einen Teil des Log-Flusses löscht, wenn festgestellt wird, dass sich keine laufende Leseoperation in dem Teil des Log-Flusses befindet; und sowohl der Pflegen-Prozess als auch die Leseoperationen dem vorangehenden Pflegen-Zyklus folgen, so dass die Leseoperationen der Daten monoton sind.
  7. Verfahren nach Anspruch 6, wobei: der Pflegen-Prozess nur Log-Flüsse mit Festlegungszeitstempeln liest, die kleiner als eine Startzeit des Pflegen-Prozesses sind, so dass ein Pflegen-Zyklus eine begrenzte Ausführungszeit hat.
  8. Verfahren nach Anspruch 7, wobei: aktualisierte Datensätze nach dem Pflegen-Prozess durch einen periodischen Hintergrundprozess mit einem End-Zeitstempel gekennzeichnet werden, so dass die aktualisierten Datensätze von Leseprozessen, die neueste Daten benötigen, oder von Leseprozessen, die Daten aus einer bestimmten Zeitperiode lesen, ignoriert werden.
  9. Verfahren nach Anspruch 7, wobei: das verteilte Multi-Master-Datenverwaltungssystem auf zwei Speicherebenen arbeitet, die Folgendes umfassen: eine erste Speicherebene, die sich lokal an einem Knoten befindet, und eine zweite Speicherebene, die ein verteiltes, gemeinsam genutztes Dateisystem oder einen Objektspeicher umfasst; die erste Speicherebene eine persistente Version von Logs verwaltet, die während einer Wiederherstellung durch den Pflegen-Prozess verwendet wird, um das Pflegen dort zu beginnen, wo der Pflegen-Prozess in einem vorangehenden Zyklus aufgehört hat, und Teile der zweiten Speicherebene, auf die häufig zugegriffen wird, zwischenspeichert, um einen schnellen Zugriff auf Daten zu ermöglichen; und die zweite Speicherebene den Datenfluss verwaltet und den Datenfluss allen Knoten im verteilten Multi-Master-Datenverwaltungssystem zur Verfügung stellt.
  10. Computerprogrammprodukt zum Pflegen von Transaktionsoperationen in einem verteilten Multi-Master-Datenverwaltungssystem, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darin enthaltenen Programmanweisungen umfasst, wobei die Programmanweisungen von einem Prozessor ausgeführt werden können, um den Prozessor zu veranlassen zum: Verwalten, durch den Prozessor, von Transaktionsoperationen in mindestens einem transaktionslokalen Side-Log; Ausführen, durch den Prozessor, eines Tabellen-Log-Scans für eine Tabelle, die eine Aufzeichnungskennung für jeden Datensatz in einem Log umfasst; Laden, durch den Prozessor, jeder Spalte in der Tabelle mit Spaltenwerten auf Grundlage der Kennungen; und Erzeugen und Schreiben, durch den Prozessor, von Tupel-Reihenfolgenummern für die Datensätze bzw. der Datensätze auf gepflegten Transaktionsblöcken in die Tabelle auf Grundlage der Spaltenwerte, wobei die Tabelle auf Knoten verteilt wird, die Transaktionsoperationen im verteilten Multi-Master-Datenverwaltungssystem handhaben, um die Prozesshandhabung der Transaktionsoperationen zu erhöhen.
  11. Computerprogrammprodukt nach Anspruch 10, wobei das Schreiben ferner Programmanweisungen umfasst, die vom Prozessor ausgeführt werden können, um den Prozessor zu veranlassen zum: Empfangen, durch den Prozessor, einer nächsten Eingabegruppe von Datensätzen vom Scannen der Tabelle; Erzeugen, durch den Prozessor, eindeutiger Festlegungszeitstempel; Anhängen, durch den Prozessor, von Spalten der Datensätze an einen In-Memory-Puffer; und Erzeugen, durch den Prozessor, der Tupel-Reihenfolgenummern für die in die gepflegten Transaktionsblöcke aufgezeichneten Datensätze.
  12. Computerprogrammprodukt aus Anspruch 11, wobei bei einer Feststellung, dass es keine zusätzliche Eingabegruppe von Datensätzen gibt und der In-Memory-Puffer nicht voll ist, der In-Memory-Puffer in mindestens eines von einem gemeinsam genutzten Dateisystem, einem Objektspeicher oder einem lokalen Cache ausgelagert wird.
  13. Computerprogrammprodukt nach Anspruch 12, wobei das Schreiben ferner Programmanweisungen umfasst, die vom Prozessor ausgeführt werden, um den Prozessor zu veranlassen zum: wenn eine weitere Eingabegruppe von Datensätzen nicht verfügbar ist, Benachrichtigen, durch den Prozessor, eines verteilten Koordinators über eine Pflegendpunkt-Information; Verschieben, durch den Prozessor, eines Log-Kopfes über den Pflegendpunkt hinaus; und Beschneiden, durch den Prozessor, des Logs, bis keine Leseprozesse mehr vorhanden sind.
  14. Computerprogrammprodukt nach Anspruch 10, wobei: die Transaktionsoperationen Aktualisierungs-, Lösch- und Einfügeoperationen umfassen; nach einer erfolgreichen Transaktionsfestlegung das transaktionslokale Side-Log an einen Log-Fluss angehängt wird; ein Pflegen-Prozess nur das Log liest und nicht festgelegte Transaktionsänderungen vermeidet; ein Thread, der den Pflegen-Prozess ausführt, einen Cursor auf dem Log als Angabe eines vorangehenden Pflegen-Zyklus verwaltet; in dem Log-Fluss vor einer Stelle, auf die der Cursor zeigt, zum Löschen markiert wird; ein Prozess zum Beschneiden einen Teil des Log-Flusses löscht, wenn festgestellt wird, dass sich keine laufende Leseoperation in dem Teil des Log-Flusses befindet; und Sowohl der Pflegen-Prozess als auch die Leseoperationen dem vorangehenden Pflegen-Zyklus folgen, so dass die Leseoperationen der Daten monoton sind.
  15. Computerprogramm-Produkt nach Anspruch 14, wobei: der Pflegen-Prozess nur Log-Flüsse mit Festlegungszeitstempeln liest, die kleiner als eine Startzeit des Pflegen-Prozesses sind, so dass ein Pflegen-Zyklus eine begrenzte Ausführungszeit hat; aktualisierte Datensätze nach dem Pflegen durch einen periodischen Hintergrundprozess mit einem End-Zeitstempel gekennzeichnet werden, so dass die aktualisierten Datensätze von Leseprozessen, die neueste Daten benötigen, oder von Leseprozessen, die Daten aus einer bestimmten Zeitperiode lesen, ignoriert werden; das verteilte Multi-Master-Datenverwaltungssystem auf zwei Speicherebenen arbeitet, die Folgendes umfassen: eine erste Speicherebene, die sich lokal an einem Knoten befindet, und eine zweite Speicherebene, die ein verteiltes, gemeinsam genutztes Dateisystem oder einen Objektspeicher umfasst; die erste Speicherebene eine persistente Version von Logs verwaltet, die während einer Wiederherstellung durch den Pflegen-Prozess verwendet wird, um das Pflegen dort zu beginnen, wo der Pflegen-Prozess in einem vorangehenden Zyklus aufgehört hat, und Teile der zweiten Speicherebene, auf die häufig zugegriffen wird, zwischenspeichert, um einen schnellen Zugriff auf Daten zu ermöglichen; und die zweite Speicherebene den Datenfluss verwaltet und den Datenfluss allen Knoten im verteilten Multi-Master-Datenverwaltungssystem zur Verfügung stellt.
  16. Vorrichtung umfassend: einen Speicher, der zum Speichern von Anweisungen konfiguriert ist; und einen Prozessor, der so konfiguriert ist, dass er die Anweisungen ausführt zum: Verwalten von Transaktionsoperationen in mindestens einem transaktionslokalen Side-Log, Ausführen eines Tabellen-Log-Scans für eine Tabelle, der die Kennung jedes Datensatzes in einem Log umfasst, Laden jeder Spalte in der Tabelle mit Spaltenwerten auf Grundlage der Kennungen, und Erzeugen von Tupel-Reihenfolgenummern für die Datensätze und Schreiben der Datensätze auf gepflegten Transaktionsblöcken in die Tabelle auf Grundlage der Spaltenwerte, wobei die Tabelle auf Knoten verteilt wird, die Transaktionsoperationen in einem verteilten Multi-Master-Datenverwaltungssystem handhaben, um die Prozesshandhabung der Transaktionsoperationen zu erhöhen.
  17. Vorrichtung von Anspruch 16, wobei das Schreiben ferner umfasst: Empfangen einer nächsten Eingabegruppe von Datensätzen vom Scannen der Tabelle; Erzeugen eindeutiger Festlegungszeitstempel; Anhängen von Spalten der Datensätze an einen In-Memory-Puffer; und Erzeugen der Tupel-Reihenfolgenummern für die in die gepflegten Transaktionsblöcke aufgezeichneten Datensätze, wobei bei einer Feststellung, dass es keine zusätzliche Eingabegruppe von Datensätzen gibt und der In-Memory-Puffer nicht voll ist, der In-Memory-Puffer in mindestens eines von einem gemeinsam genutzten Dateisystem, einem Objektspeicher oder einem lokalen Cache ausgelagert wird.
  18. Vorrichtung nach Anspruch 17, wobei der Prozessor so konfiguriert ist, dass er die Anweisungen ausführt zum: wenn eine weitere Eingabegruppe von Datensätzen nicht verfügbar ist, Benachrichtigen eines verteilten Koordinators über einen Pflegendpunkt; Verschieben eines Log-Kopfes über den Pflegendpunkt hinaus; und Beschneiden des Logs, bis keine Leseprozesse mehr vorhanden sind.
  19. Vorrichtung nach Anspruch 18, wobei: die Transaktionsoperationen Aktualisierungs-, Lösch- und Einfügeoperationen umfassen; nach einer erfolgreichen Transaktionsfestlegung das transaktionslokale Side-Log an einen Log-Fluss angehängt wird; ein Pflegen-Prozess nur das Log liest und nicht festgelegte Transaktionsänderungen vermeidet; ein Thread, der den Pflegen-Prozess ausführt, einen Cursor auf dem Log als Angabe eines vorangehenden Pflegen-Zyklus verwaltet; in dem Fluss des Logs, vor einer Stelle, auf die der Cursor zeigt, zum Löschen markiert wird; ein Prozess zum Beschneiden einen Teil des Log-Flusses löscht, wenn festgestellt wird, dass sich keine laufende Leseoperation in dem Teil des Log-Flusses befindet; und Sowohl der Pflegen-Prozess als auch die Leseoperationen dem vorangehenden Pflegen-Zyklus folgen, so dass die Leseoperationen der Daten monoton sind.
  20. Vorrichtung nach Anspruch 19, wobei: der Pflegen-Prozess nur Log-Flüsse mit Festlegungszeitstempeln liest, die kleiner als eine Startzeit des Pflegen-Prozesses sind, so dass ein Pflegen-Zyklus eine begrenzte Ausführungszeit hat; aktualisierte Datensätze nach dem Pflegen durch einen periodischen Hintergrundprozess mit einem End-Zeitstempel gekennzeichnet werden, so dass die aktualisierten Datensätze von Leseprozessen, die neueste Daten benötigen, oder von Leseprozessen, die Daten aus einer bestimmten Zeitperiode lesen, ignoriert werden; das verteilte Multi-Master-Datenverwaltungssystem auf zwei Speicherebenen arbeitet, die Folgendes umfassen: eine erste Speicherebene, die sich lokal an einem Knoten befindet, und eine zweite Speicherebene, die ein verteiltes, gemeinsam genutztes Dateisystem oder einen Objektspeicher umfasst; die erste Speicherebene eine persistente Version von Logs verwaltet, die während einer Wiederherstellung durch den Pflegen-Prozess verwendet wird, um das Pflegen dort zu beginnen, wo der Pflegen-Prozess in einem vorangehenden Zyklus aufgehört hat, und Teile der zweiten Speicherebene, auf die häufig zugegriffen wird, zwischenspeichert, um einen schnellen Zugriff auf Daten zu ermöglichen; und die zweite Speicherebene den Datenfluss verwaltet und den Datenfluss allen Knoten im verteilten Multi-Master-Datenverwaltungssystem zur Verfügung stellt.
DE112019000321.6T 2018-02-28 2019-02-26 Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen Pending DE112019000321T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/908,437 US10430100B2 (en) 2018-02-28 2018-02-28 Transactional operations in multi-master distributed data management systems
US15/908,437 2018-02-28
PCT/IB2019/051521 WO2019166940A2 (en) 2018-02-28 2019-02-26 Transactional operations in multi-master distributed data management systems

Publications (1)

Publication Number Publication Date
DE112019000321T5 true DE112019000321T5 (de) 2020-10-08

Family

ID=67684520

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019000321.6T Pending DE112019000321T5 (de) 2018-02-28 2019-02-26 Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen

Country Status (6)

Country Link
US (2) US10430100B2 (de)
JP (1) JP7221975B2 (de)
CN (1) CN111801661A (de)
DE (1) DE112019000321T5 (de)
GB (1) GB2586373B (de)
WO (1) WO2019166940A2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10116436B1 (en) * 2017-09-26 2018-10-30 Intel Corporation Techniques for preventing memory timing attacks
US10430100B2 (en) * 2018-02-28 2019-10-01 International Business Machines Corporation Transactional operations in multi-master distributed data management systems
US11182356B2 (en) * 2019-05-23 2021-11-23 International Business Machines Corporation Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems
US10956062B2 (en) * 2019-07-09 2021-03-23 International Business Machines Corporation Aggregating separate data within a single data log wherein single data log is divided in a plurality of blocks assigned to plurality of different streams
EP3669263B1 (de) 2019-09-12 2022-03-02 Advanced New Technologies Co., Ltd. Protokollstrukturierte speichersysteme
US10942852B1 (en) 2019-09-12 2021-03-09 Advanced New Technologies Co., Ltd. Log-structured storage systems
WO2019228571A2 (en) 2019-09-12 2019-12-05 Alibaba Group Holding Limited Log-structured storage systems
SG11202002588RA (en) * 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
EP3695328A4 (de) 2019-09-12 2020-12-09 Alibaba Group Holding Limited Protokollstrukturierte speichersysteme
CN116756110A (zh) 2019-09-12 2023-09-15 创新先进技术有限公司 日志结构存储系统
CN111183450B (zh) 2019-09-12 2024-04-19 创新先进技术有限公司 日志结构存储系统
SG11202002587TA (en) 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
CN115398874A (zh) 2019-09-12 2022-11-25 创新先进技术有限公司 日志结构存储系统
CN113076313B (zh) * 2021-03-29 2022-06-07 福建新大陆通信科技股份有限公司 一种应急广播数据仓储方法
CN113918654B (zh) * 2021-12-07 2022-04-01 深圳前海微众银行股份有限公司 一种区块数据提交的方法及装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535552A (ja) * 1991-08-01 1993-02-12 Casio Comput Co Ltd フアイル管理装置
JP4111910B2 (ja) 2003-12-26 2008-07-02 富士通株式会社 ディスクキャッシュ装置
US20060112152A1 (en) 2004-11-22 2006-05-25 Microsoft Corporation Smart patching by targeting particular prior versions of a file
US20070289028A1 (en) 2006-06-12 2007-12-13 Software Spectrum, Inc. Time Bound Entitlement for Digital Content Distribution Framework
US20080162518A1 (en) 2007-01-03 2008-07-03 International Business Machines Corporation Data aggregation and grooming in multiple geo-locations
US8631397B2 (en) 2008-03-31 2014-01-14 Microsoft Corporation Virtualized application image patching
US8200614B2 (en) 2008-04-30 2012-06-12 SAP France S.A. Apparatus and method to transform an extract transform and load (ETL) task into a delta load task
JP5343399B2 (ja) 2008-05-22 2013-11-13 富士通株式会社 管理プログラム、管理方法、及び管理装置
CN101382949B (zh) * 2008-10-28 2011-09-07 阿里巴巴集团控股有限公司 一种数据库表的管理方法及装置
US8762333B2 (en) 2009-07-08 2014-06-24 Pivotal Software, Inc. Apparatus and method for read optimized bulk data storage
US8725782B2 (en) * 2011-04-25 2014-05-13 Microsoft Corporation Virtual disk storage techniques
US9519555B2 (en) * 2011-05-23 2016-12-13 Microsoft Technology Licensing, Llc Synchronous replication in a distributed storage environment
US8793467B2 (en) 2011-09-30 2014-07-29 Pure Storage, Inc. Variable length encoding in a storage system
US9747293B2 (en) 2012-02-28 2017-08-29 Deep Information Sciences, Inc. Method and system for storage and retrieval of information
US9031911B2 (en) 2012-06-05 2015-05-12 International Business Machines Corporation Preserving past states of file system nodes
AU2013335231B2 (en) 2012-10-22 2018-08-09 Ab Initio Technology Llc Profiling data with location information
US9477557B2 (en) * 2013-03-28 2016-10-25 Microsoft Technology Licensing, Llc Transaction processing using torn write detection
US9201738B2 (en) 2013-08-14 2015-12-01 Globalfoundries Inc. Method, computer readable storage medium and computer system for obtaining snapshots of data
WO2016044763A1 (en) * 2014-09-19 2016-03-24 Amazon Technologies, Inc. Automated configuration of log-coordinated storage groups
US10031934B2 (en) * 2014-09-30 2018-07-24 International Business Machines Corporation Deleting tuples using separate transaction identifier storage
US9736243B2 (en) 2014-12-12 2017-08-15 Microsoft Technology Licensing, Llc Multiple transaction logs in a distributed storage system
US10095764B2 (en) 2015-06-19 2018-10-09 Sap Se Multi-replica asynchronous table replication
US9935973B2 (en) 2015-12-16 2018-04-03 Carbonite, Inc. Systems and methods for automatic detection of malicious activity via common files
US11157517B2 (en) * 2016-04-18 2021-10-26 Amazon Technologies, Inc. Versioned hierarchical data structures in a distributed data store
US10187249B2 (en) 2016-04-29 2019-01-22 Cisco Technology, Inc. Distributed metric data time rollup in real-time
US11442823B2 (en) * 2016-06-03 2022-09-13 International Business Machines Corporation Transaction consistency query support for replicated data from recovery log to external data stores
CN107547606B (zh) * 2016-06-29 2021-01-26 中兴通讯股份有限公司 数据处理方法、集群管理器、资源管理器、数据处理系统
US10761946B2 (en) * 2017-02-10 2020-09-01 Sap Se Transaction commit protocol with recoverable commit identifier
US10430100B2 (en) * 2018-02-28 2019-10-01 International Business Machines Corporation Transactional operations in multi-master distributed data management systems

Also Published As

Publication number Publication date
GB202014833D0 (en) 2020-11-04
US11119678B2 (en) 2021-09-14
GB2586373A (en) 2021-02-17
GB2586373B (en) 2022-04-27
JP2021515294A (ja) 2021-06-17
JP7221975B2 (ja) 2023-02-14
US10430100B2 (en) 2019-10-01
WO2019166940A3 (en) 2019-10-17
US20190265891A1 (en) 2019-08-29
US20190317666A1 (en) 2019-10-17
CN111801661A (zh) 2020-10-20
WO2019166940A2 (en) 2019-09-06

Similar Documents

Publication Publication Date Title
DE112019000321T5 (de) Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
JP6542785B2 (ja) 第一クラスデータベース要素としての半構造データの実装
DE102016105472B4 (de) Speicherebenenverteilung und parallele Zuordnung auf Blockebene bei Dateisystemen
DE202020005681U1 (de) Tabellen mit Journal in Datenbanksystemen
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE102016013248A1 (de) Bezugsblockansammlung in einer Bezugsmenge zur Deduplizierung beim Speichermanagement
DE102016105526A1 (de) Schnelles mehrschichtiges Indexieren mit Unterstützung für dynamische Aktualisierung
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE202009019139U1 (de) Asynchron verteilte Deduplizierung für replizierte inhaltsadressierte Speichercluster
DE102013216273A1 (de) Umwandlung von Datenbanktabellenformaten auf der Grundlage von Benutzerdatenzugriffsmustern in einer vernetzten Datenverarbeitungsumgebung
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE102021108572A1 (de) Containerisierte anwendungsmanifeste und virtuelle persistente volumes
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112019000399B4 (de) Schnelle wiederherstellung nach ausfällen in einem chronologisch geordneten log-strukturierten schlüssel-wert-speichersystem
DE112019000421T5 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE102021109502A1 (de) Ändern virtueller persistenter volumes auf der grundlage der analyse von leistungskennzahlen
DE112021003031T5 (de) Archivieren von nur-beschleuniger-datenbanktabellen

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0015160000

Ipc: G06F0016230000

R016 Response to examination communication