DE10063512B4 - Technik zum Einrichten eines Konsistenzpunktes in einem System zum parallelen Laden einer Datenbank - Google Patents

Technik zum Einrichten eines Konsistenzpunktes in einem System zum parallelen Laden einer Datenbank Download PDF

Info

Publication number
DE10063512B4
DE10063512B4 DE10063512A DE10063512A DE10063512B4 DE 10063512 B4 DE10063512 B4 DE 10063512B4 DE 10063512 A DE10063512 A DE 10063512A DE 10063512 A DE10063512 A DE 10063512A DE 10063512 B4 DE10063512 B4 DE 10063512B4
Authority
DE
Germany
Prior art keywords
loading
data
database
checkpoint
agent
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.)
Expired - Fee Related
Application number
DE10063512A
Other languages
English (en)
Other versions
DE10063512A1 (de
Inventor
John Marland Gilroy Garth
James Alan Gilroy Ruddy
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 DE10063512A1 publication Critical patent/DE10063512A1/de
Application granted granted Critical
Publication of DE10063512B4 publication Critical patent/DE10063512B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

Verfahren zum Laden von Daten in eine Datenbank, die mit einem Rechner verbunden ist, wobei der Rechner über mehrere Prozessoren verfügt, die jeweils mit dem Laden von Daten beschäftigt sind, und das Verfahren die folgenden Schritte umfasst:
von einem Hauptprozess gesteuertes:
a) Starten von mehreren Agentenladeprozessen zum parallelen Laden von Daten;
b) Warten auf den Empfang eines Kontrollpunktsignals von jedem Agentenladeprozess, wobei das Kontrollpunktsignal durch den Agentenladeprozess gemäß Ladefortschritt erzeugt wird;
c) Einrichten eines Kontrollpunktes für alle Agentenladeprozesse durch
Anhalten aller Eingabe- und Ausgabeaktivitäten, und Speichern von Statusinformationen beim Empfang des Kontrollpunktsignals von jedem Agentenladeprozess,
d) erneutes Starten jedes Agentenladeprozesses, gekennzeichnet durch
e) Empfangen eines Verfügbarkeitssignals von einem Agentenladeprozess;
f) Feststellen, ob es zusätzliche Daten gibt, die in zusätzliche Teile der Datenbank geladen werden sollen;
g) wenn festgestellt wird, dass zusätzliche Daten vorhanden sind, die in zusätzliche Teile der Datenbank geladen...

Description

  • GRUNDLAGEN DER ERFINDUNG
  • Gebiet der Erfindung
  • Diese Erfindung bezieht sich im Allgemeinen auf mit Rechnern arbeitende Datenbanksysteme und insbesondere auf das Einrichten eines Konsistenzpunktes (d.h. eines Kontrollpunktes) bei einem Ladevorgang in einem System zum parallelen Laden einer Datenbank, wobei im Falle beispielsweise eines Misslingens des Vorganges von diesem Punkt aus der Ladevorgang erneut gestartet werden kann.
  • Datenbanken sind mit Rechnern arbeitende Systeme zum Speichern und Abrufen von Informationen. Ein Verwaltungssystem für eine relationale Datenbank (RDBMS) ist ein Datenbankverwaltungssystem (DBMS), das zum Speichern und Abrufen von Daten relationale Techniken benutzt. Relationale Datenbanken sind in Tabellen organisiert, die aus Zeilen und Spalten von Daten bestehen. Die Zeilen werden formal als Tupel oder Datensätze bezeichnet. Eine Datenbank hat üblicherweise viele Tabellen, und jede Tabelle hat üblicherweise mehrere Tupel und mehrere Spalten. Die Tabellen werden üblicherweise auf Speichereinheiten mit direktem Zugriff (DASD) gespeichert, wie etwa Magnetplatten- oder optischen Plattenlaufwerken für Semi-Festspeicherung.
  • Eine Tabelle kann in Partitionen unterteilt werden, wobei jede Partition einen Teil der Daten der Tabelle enthält. Jede Partition kann sich auf einer unterschiedlichen Datenspeichereinheit befinden. Wenn Tabellen partitioniert werden, kann die Geschwindigkeit und Leistungsfähigkeit des Datenzugriffs verbessert werden. Beispielsweise können Partitionen, die Daten enthalten, die häufiger benutzt werden, auf schnelleren Datenspeichereinheiten untergebracht werden, und paralleles Verarbeiten von Daten kann dadurch verbessert werden, dass Partitionen über verschiedenen DASD-Datenträger verteilt werden, wobei sich jeder E/A-Datenstrom auf einem getrennten Kanalpfad befindet. Das Partitionieren fördert auch hohe Datenverfügbarkeit, indem es Aktivitäten von Anwendungs- und Dienstprogrammen in die Lage versetzt, parallel an unterschiedlichen Datenpartitionen voranzuschreiten.
  • Einige Systeme haben sehr große Datenbanken, die Daten in der Größenordnung von Terabytes von Information speichern. Mit der wachsenden Anwendung von Rechnern und den zunehmenden Arten von Daten, die auf einer Speichereinheit gespeichert werden (z.B. Bilder und Ton ebenso wie große Mengen von Text), werden derartige große Datenbanken immer häufiger. Das Laden dieser Menge von Daten aus einer Eingabequelle in ein System zur Datenbankverwaltung (DBMS) kann mehrere Stunden in Anspruch nehmen. Üblicherweise kontrollieren Ladesysteme für Datenbanken (auch als "Lade-Hilfsprogramme" bezeichnet) während des Ladevorganges periodisch einen Status. Ein Kontrollpunkt ist ein Punkt in einem Vorgang, an dem zeitlich alle Eingabe/Ausgabeaktivitäten (E/A) angehalten werden und Statusinformationen gespeichert werden. Insbesondere enthalten die Statusinformationen einen Standort in einer Eingabedatei, an dem das Laden von Daten erneut gestartet werden soll, einen Standort in einem Tabellenraum, in den Daten nach einem erneuten Start aufgezeichnet werden sollen, und Fehlerinformationen. Falls irgendein Fehler auftritt, ehe das Laden abgeschlossen ist, kann das Ladehilfsprogramm am letzten Kontrollpunkt statt am Anfang der Eingabedatei erneut gestartet werden. Da das Ladehilfsprogramm mit dem Verarbeiten nicht am Anfang der Eingabedatei beginnen muss, wird eine Menge Zeit gespart.
  • Beim Versuch, das Laden von Daten zu beschleunigen, sind verschiedene Verfahrensweisen versucht worden, die den Gebrauch von Parallelverarbeitung betreffen. Parallelverarbeitung nutzt die Fähigkeiten zur Mehrfachverarbeitung moderner Hochgeschwindigkeitsrechner und bezieht sich auf die Anwendung mehrerer Prozessoren, um Daten in unterschiedliche Teile der Datenbank parallel zueinander zu laden. Das heißt, dass Daten in unterschiedliche Partitionen einer Datenbank geladen werden, indem Ladehilfsprogramme benutzt werden, die gleichlaufend ausgeführt werden. Insbesondere können die Daten, die in die Datenbank geladen werden sollen, in mehrere Eingabedateien getrennt werden. Dann kann ein Ladehilfsprogramm Daten in einen Tabellenraum laden (d.h. Daten aus einer Eingabedatei lesen und die Daten in einem Tabellenraum speichern).
  • Das parallele Laden von Daten kompliziert jedoch in hohem Maße die Fähigkeit, Kontrollpunkte einzurichten und das Laden nach einem Misslingen erneut zu starten. Bei mehreren Prozessoren, die Eingabedaten aus unterschiedlichen Eingabequellen lesen und die Daten in unterschiedliche Teile von Datenbanken laden, ist es schwierig, einen Kontrollpunkt einzurichten, der für die mehreren Prozessoren einen Konsistenzpunkt zum erneuten Start aktiviert. Insbesondere erfordert dies eine Koordinierung innerhalb aller Vorgänge, die das Laden bewerkstelligen. Übliche Ladehilfsprogramme, die Daten parallel laden, erfordern es oftmals, dass Daten so erneut geladen werden, dass statt an einem Kontrollpunkt am Anfang einer Partition begonnen wird.
  • In „Tom Barkley et al., „Loading Databases Using Dataflow Parallelism", Sigmod record, vol. 23, Np. 4, Dec. 1994", ist ein Verfahren offenbart zum Laden von Daten in eine Datenbank von mehreren Quellen aus, gemäß Oberbegriff des Anspruch 1. Der Fokus ist gerichtet auf einen Cluster von Rechnern, die alle zusammen Daten synchronisiert in eine Datenbank schreiben sollen. Es werden Ansätze geschildert, wie in einer solchen Situation Checkpunkte, also Wiederaufsetzpunkte gesetzt und verwaltet werden können, nämlich am besten durch eine hierarchische Kommandostruktur mit einem übergeordneten Clusterkontrollprozess und einem rechnerinternen Kontrollprozess. Darüber hinaus werden keine Ansätze zur weiteren Ladeoptimierung gegeben, insbesondere nicht hinsichtlich ungleichförmiger Auslastung der einzelnen Ladeprozesse.
  • Daher besteht in der Technik ein Bedarf nach einem verbesserten Verfahren, bei dem während eines Ladevorganges in einem System zum parallelen Laden einer Datenbank ein Kontrollpunkt eingerichtet wird, wobei gleichzeitig die Möglichkeit gewahrt bleiben soll, dass Ladeprozesse so lange wie möglich beschäftigt sind.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Um die Einschränkung im vorstehend beschriebenen Stand der Technik zu überwinden und um andere Einschränkungen zu überwinden, die beim Lesen und Verstehen der vorliegenden Beschreibung offenkundig werden, legt die vorliegende Erfindung ein Verfahren, eine Vorrichtung und einen Herstellvorgang für eine mit Rechnern realisierte Technik dar, mit der während eines Ladevorganges in einem System zum parallelen Laden von Datenbanken ein Kontrollpunkt eingerichtet wird.
  • Nach der vorliegenden Erfindung werden zum parallelen Laden von Daten, gesteuert von einem Hauptprozess, Ladevorgänge mehrerer Benutzereinheiten gestartet. Der Hauptvorgang wartet auf den Empfang eines Kontrollpunktsignals vom Ladevorgang jeder Benutzereinheit. Dann richtet der Hauptprozess beim Empfang des Kontrollpunktsignals von jedem Ladevorgang für die Ladevorgänge aller Benutzereinheiten einen Kontrollpunkt ein.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Unter Bezugnahme auf die Zeichnungen, in denen gleiche Bezugsnummer generell entsprechende Teile darstellen, sind nun
  • 1 ein Schaubild, das eine Rechner-Hardwareumgebung veranschaulicht, die nach der vorliegenden Erfindung benutzt werden könnte;
  • 2 ein Schaubild, das eine Rechner-Hardwareumgebung veranschaulicht, die der Hardwareumgebung von 1 weitere Einzelheiten hinzufügt;
  • 3 ein Schaubild, das ein System zum parallelen Laden von Datenbanken veranschaulicht;
  • 4 ein Flussbild, das Schritte veranschaulicht, die von einem Hauptprozess unter der Steuerung des Ladesystems ausgeführt werden; und
  • 5 ein Flussbild, das Schritte veranschaulicht, die von dem Ladevorgang einer Benutzereinheit unter Leitung des Ladesystems ausgeführt werden.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung einer Ausführungsform der Erfindung wird auf die zugehörigen Zeichnungen Bezug genommen, die einen Teil davon bilden und die im Sinne einer Veranschaulichung einer bestimmten Ausführungsform gezeigt werden, in der die Erfindung praktisch realisiert werden kann. Es versteht sich, dass weitere Ausführungsformen benutzt werden können, da strukturelle Veränderungen vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen.
  • Hardwareumgebung
  • 1 ist ein Schaubild, das eine Rechner-Hardwareumgebung veranschaulicht, die nach der vorliegenden Erfindung benutzt werden könnte. Eine Rechner-Diensteinheit 100 umfasst ein Ladesystem 102 und mehrere Prozessoren (Prozessor-1 104 und Prozessor-N 106). Die Rechner-Diensteinheit 100 ist mit Datenspeichern verbunden, darunter Datenspeicher 108, der Eingabedateien unbearbeiteter Daten speichert, die in einer Datenbank, Datenspeicher 110, der Partitionen einer Datenbank speichert, und Datenspeicher 112 gespeichert werden sollen, der Ausgabedateien zum Festhalten von Fehlerinformationen und von Schlüssel-/RID-Informationen speichert. Unter der Steuerung des Ladesystems 102 lädt ein Ladevorgang an jedem Prozessor 104, 106 Daten aus einer Eingabedatei 108 in eine Datenbank 110, wobei in den Ausgabedateien 112 Informationen gespeichert werden. Obwohl die Eingabedatei, die Datenbank und die Ausgabedateien an unterschiedlichen Datenspeichern veranschaulicht worden sind, versteht es sich, dass sie alle in einem Datenspeicher oder in einer beliebigen Kombination an mehreren Datenspeichern gespeichert werden können (z.B. die Eingabe- und Ausgabedateien in einem Datenspeicher und die Datenbank in einem anderen Datenspeicher).
  • 2 ist ein Schaubild, das eine Rechner-Hardwareumgebung veranschaulicht, die der Hardwareumgebung von 1 weitere Einzelheiten hinzufügt. In der Umgebung wird ein Rechnersystem 202 aus einem oder mehreren Prozessoren gebildet, die mit einer oder mehreren Datenspeichereinrichtungen 204 und 206 verbunden sind, die in Tabellenräumen eine oder mehrere relationale Datenbanken speichern. Die Datenspeichereinrichtungen 204 und 206 können ein Festplattenlaufwerk, ein Diskettenlaufwerk, ein CD-ROM-Laufwerk, ein Bandlaufwerk oder eine andere Einheiten umfassen.
  • Bediener des Rechnersystems 202 benutzen eine Standard-Benutzerschnittstelle 208, wie etwa IMS/DB/DC®, CICS®, TSO®, OS/390®, ODBC® oder eine andere ähnliche Schnittstelle, um zum und vom Rechnersystem 202 elektrische Signale zu übertragen, die gegenüber der Datenbank Befehle zum Ausführen verschiedener Such- und Auffindevorgänge sowie zeitlich festgelegter Abfragen darstellen. In der vorliegenden Erfindung befinden sich diese Abfragen in Übereinstimmung mit dem SQL-Standard (Strukturierte Abfragesprache) und rufen Funktionen auf, die von der Software des Verwaltungssystems für relationale Datenbanken (RDBMS) ausgeführt werden.
  • Die SQL-Schnittstelle hat sich zu einer Standardsprache für RDBMS-Software entwickelt und ist als solche sowohl vom American National Standards Institute (ANSI) als auch von der International Standards Organization (ISO) angenommen worden. Die SQL-Schnittstelle gestattet es Benutzern, an den Tabellen relationale Vorgänge sowohl im Dialog in Stapelverarbeitungsdateien als auch eingebettet in Hauptrechnersprachen, wie etwa C und COBOL, zu verarbeiten. SQL gestattet es dem Benutzer, die Daten zu bearbeiten.
  • In einer Ausführungsform der vorliegenden Erfindung umfasst die RDBMS-Software das Produkt DB2®, das von IBM für die Betriebssysteme OS/390® angeboten wird. Der Fachmann wird jedoch erkennen, dass die vorliegende Erfindung Anwendungsprogramm für jede beliebige RDBMS-Software ist, gleichgültig, ob die RDBMS-Software SQL benutzt oder nicht.
  • Wie in 2 veranschaulicht, enthält das DB2®-System für das Betriebssystem OS/390® drei Hauptbestandteile: den Verwalter der internen Betriebsmittelsperrung (IRLM) 210, das Modul der Systemdienste 212 und das Modul der Datenbankdienste 214. Der IRLM 210 handhabt die Sperrdienste für das DB2®-System, das Daten als ein gemeinsam genutztes Betriebsmittel behandelt, wodurch einer beliebigen Anzahl von Benutzern gestattet wird, gleichzeitig auf die gleichen Daten zuzugreifen. Diese mitlaufende Steuerung ist erforderlich, um die Benutzer von einander zu isolieren und die Datenunversehrtheit aufrechtzuerhalten. Das Modul der Systemdienste 212 steuert die gesamte Ausführungsumgebung von DB2® einschließlich des Verwaltens von Protokolldateien 206, des Sammelns von Statistiken, der Handhabung der Einschalt- und Ausschaltvorgänge und der Bereitstellung von Verwaltungsunterstützung.
  • Im Mittelpunkt des DB2®-Systems befindet sich das Datenbankdienstemodul 214. Das Modul der Datenbankdienste 214 enthält mehrere Submodule, darunter das relationale Datenbanksystem (RDS) 216, den Datenverwalter 218, den Verwalter der Zwischenspeicher 220 und andere Baugruppen 222, wie etwa einen SQL-Kompilierer/-Übersetzer. Diese Submodule unterstützen die Funktionen der SQL-Sprache, d.h. Definition, Zugriffssteuerung, Übersetzung, Kompilieren, Abrufvorgänge in Datenbanken und Aktualisieren von Benutzer- und Systemdaten, und die Submodule unterstützen Dienstprogrammfunktionen wie etwa Kopieren, Wiederherstellen, Reorganisation und Laden von Benutzer- und Systemdaten.
  • Das Rechnersystem 202 umfasst ein Ladesystem 230 und mehrere Prozessoren (Prozessor-1 232 und Prozessor-N 234). Das Rechnersystem 202 ist auch mit einem Datenspeicher 236 verbunden, der Eingabedateien nicht bearbeiteter Daten speichert, die in einer Datenbank gespeichert werden sollen, in Datenspeicher 238, der eine Datenbank speichert, und in Datenspeicher 240, der Ausgabedateien zum Festhalten von Fehlerinformationen und Schlüssel-/RID-Informationen speichert.
  • Die vorliegende Erfindung wird im Allgemeinen so realisiert, dass Ladesteueranweisungen benutzt werden, die vom Datenbankdienstemodul 214 gesteuert ausgeführt werden. Das Datenbankdienstemodul 214 ruft die Ladesteueranweisungen ab oder empfängt sie, wobei die Ladesteueranweisungen im Allgemeinen in einer Textdatei an der Datenspeichereinrichtung 204 und 206 gespeichert sind oder in das Rechnersystem 202 im Dialog über Bedienerschnittstelle 208 von einem Bediener eingegeben werden, der an einem Monitor 226 sitzt. Das Datenbankdienste-Modul 214 leitet dann aus den Ladesteueranweisungen Befehle zur Ausführung durch das Rechnersystem 202 ab oder erzeugt sie daraus.
  • Im Allgemeinen sind die RDBMS-Software, die Ladesteueranweisungen und die davon abgeleiteten Befehle alle gegenständlich in einem rechnerlesbaren Medium verkörpert, z.B. einer oder mehrerer der Datenspeichereinrichtungen 204 und 206. Darüber hinaus bestehen die RDBMS-Software, die Ladesteueranweisungen und die davon abgeleiteten Befehle alle aus Befehlen, die dann, wenn sie von dem Rechnersystem 202 gelesen und ausgeführt werden, das Rechnersystem 202 dazu veranlassen, die Schritte auszuführen, die notwendig sind, um die vorliegende Erfindung einzurichten und/oder zu benutzen. Gesteuert von einem Betriebssystem können die RDBMS-Software, die Ladesteueranweisungen und die davon abgeleiteten Befehle aus den Datenspeichereinrichtungen 204 und 206 in einen Speicher des Rechnersystems 202 zum Gebrauch während laufender Vorgänge geladen werden.
  • Damit kann die vorliegende Erfindung als Verfahren, Vorrichtung oder Herstellartikel unter Verwendung von Standardtechniken beim Programmieren und/oder bei Entwicklungsarbeiten realisiert werden, um Software, Firmware, Hardware oder eine beliebige Kombination davon zu erzeugen. Der Ausdruck "Herstellvorgang" (oder andernfalls "Rechnerprogrammprodukt"), wie er hier benutzt wird, soll ein Rechnerprogramm umfassen, auf das von jedem rechnerlesbaren Gerät, Träger oder Medium zugegriffen werden kann. Natürlich wird der Fachmann erkennen, dass an dieser Anordnung viele Veränderungen vorgenommen werden können, ohne dass vom Umfang der vorliegenden Erfindung abgewichen wird.
  • Der Fachmann wird erkennen, dass mit der in 2 veranschaulichten Umgebung nicht beabsichtigt ist, die vorliegende Erfindung einzuschränken. Tatsächlich wird der Fachmann erkennen, das andere alternative Hardwareumgebungen benutzt werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen.
  • Technik zum konsistenten Wiederbeginn in einem parallelen Ladesystem für Datenbanken
  • Eine Ausführungsform der Erfindung stellt ein System zum parallelen Laden von Datenbanken ("Ladesystem") bereit. Das Ladesystem bietet eine Technik zum Einrichten von Konsistenzpunkten (d.h. Kontrollpunkten) über mehrere ladende Benutzereinheiten während eines Ladevorganges. Die an diesen Kontrollpunkten gespeicherte Statusinformationen können dann benutzt werden, um beispielsweise nach einem Misslingen den Ladevorgang erneut zu beginnen. Insbesondere ruft ein Hauptladevorgang indem Ladesystem Ladevorgänge von mehreren Benutzereinheiten an mehreren Prozessoren auf. Die Ladevorgänge der Benutzereinheiten gehen gleichlaufend vonstatten. Der Ladevorgang jeder Benutzereinheit lädt Daten von einer oder mehreren Eingabequellen an eine oder mehrere Ausgabequellen. In einer Ausführungsform nutzt ein Ladevorgang keine Eingabequelle oder Ausgabequelle gemeinsam mit einem anderen Ladevorgang. Dann signalisiert der Ladevorgang jeder Benutzereinheit dem Hauptladevorgang, dass er einen Kontrollpunkt erreicht hat oder das Laden eines Teiles der Datenbank abgeschlossen hat. Der Hauptladevorgang bearbeitet die Signale vom Ladevorgang jeder Benutzereinheit, um zu ermitteln, ob er einen Kontrollpunkt einrichten muss. Wenn ein Kontrollpunkt eingerichtet werden soll, bildet der Hauptladevorgang einen Kontrollpunkt über mehrere Prozessoren. Dann beginnt der Hauptladevorgang den Ladevorgang jeder Benutzereinheit von neuem. Zusätzlich kann der Hauptladevorgang dem Ladevorgang einer Benutzereinheit, der das Laden eines Teiles der Datenbank abgeschlossen hat, ohne dass ein Kontrollpunkt erreicht worden ist, das Laden eines weiteren Teiles der Datenbank zuordnen. Der Hauptvorgang beginnt den Ladevorgang dieser Benutzereinheit von neuem.
  • 3 ist ein Schaubild, das ein System zum parallelen Laden von Datenbanken veranschaulicht. Der Vorgang des Ladens von Daten in eine Datenbank umfasst üblicherweise für den Ladevorgang 300, 302, 304 und 306 jeder Benutzereinheit das Lesen einer Eingabedatei "unbearbeiteter" Daten 310, 312, 314 und 316, die beispielsweise durch ein Programm oder einen Benutzer vorbereitet worden ist. Im Beispiel von 3 liest der Ladevorgang 300, 302, 304 und 306 jeder Benutzereinheit aus einer unterschiedlichen Quelle von unbearbeiteten Daten 310, 312, 314 und 316. Als Nächstes werden die unbearbeiteten Daten in jedem Eingabedatensatz in ein Format umgewandelt, das zum Speichern in der Datenbank geeignet ist (z.B. in binäres oder hexadezimales umgewandelt). Dann werden die einzelnen Felder (z.B. Spalten) zu einer Form zusammengestellt (z.B. einer Zeile), die in der Datenbank gespeichert wird. Insbesondere können die unbearbeiteten Daten keine Informationen für jede Spalte einer Zeile liefern oder können die Informationen für Spalten in einer Reihenfolge liefern, die der Reihenfolgebildung der Spalten in einer Zeile in der Datenbank nicht entspricht. Daher stellt der Ladevorgang 300, 302, 304 und 306 jeder Benutzereinheit die Daten in dem richtigen Format zusammen (z.B. ordnet er Daten so, dass sie der Reihenfolge der Spalten in einer Zeile der Datenbank entsprechen).
  • Sobald dies erfolgt ist, speichert der Ladevorgang 300, 302, 304, 306 jeder Benutzereinheit Daten in einen getrennten Teil der Datenbank 320, 322, 324 und 326 (z.B. eine Partition oder einen Tabellenraum). Insbesondere speichert der Ladevorgang 300, 302, 304 und 306 jeder Benutzereinheit eine Zeile mit einem Zeilenkennzeichner (RID) an einem bestimmten Standort in der Datenbank. Zusätzlich zeichnet der Ladevorgang 300, 302, 304 und 306 jeder Benutzereinheit Datensätze zur späteren Verarbeitung in einer oder mehreren Ausgabedateien 330 und 332 auf. Diese Datensätze können beispielsweise Informationen über Fehler, die während der Datenumwandlung eingetreten sind, oder Schlüssel- und RID-Informationen (d.h. Zeilenkennzeichner) darstellen, die dafür benutzt werden, an der Datenbank Indizes zu bilden. Ein Schlüssel ist ein Feld oder ein Attribut einer Tabelle, das dafür benutzt wird, in der Tabelle zu indizieren oder Datensätze in der Tabelle zu sortieren (z.B. könnte eine Sozialversicherungsnummer, die in einer Tabellenspalte der Informationen über Beschäftigte gespeichert ist, als Schlüssel benutzt werden).
  • Nachdem die Daten in die Datenbank 320, 322, 324 und 326 geladen worden sind, werden bei 340 die Schlüssel- und RID-Information sortiert, und die sortierten Informationen werden bei 342 gespeichert. Als Nächstes bildet ein Indexerstellungsvorgang 344 Indizes 346, 348 und 350.
  • Wenn ein Dienstprogramm zum Laden von Datenbanken parallele Verarbeitung benutzt, liest üblicherweise der Ladevorgang jeder Benutzereinheit aus einer oder mehreren Eingabedateien, lädt die Daten in einen oder mehrere Teile der Datenbank und zeichnet in einer oder mehreren Ausgabedateien Informationen auf. Es kann auch mehr als ein Ladevorgang Informationen in einer gegebenen Ausgabedatei aufzeichnen, obgleich dies nicht erforderlich ist.
  • Bei einigen herkömmlichen Systemen wird ein Ladevorgang üblicherweise seine eigene Arbeit kontrollieren. Andererseits arbeiten bei dem Ladesystem die Kontrollpunkte des Hauptvorganges für die Ladevorgänge aller Benutzereinheiten. Während des Ladens von Daten ermittelt der Ladevorgang einer Benutzereinheit, dass er nach dem Verarbeiten einer beliebigen festen Anzahl von Eingabedatensätzen (z.B. ein Kontrollpunkt alle 100.000 Datensätze) einen Kontrollpunkt erreicht hat. In einer Ausführungsform hat der Ladevorgang jeder Benutzereinheit den gleichen Kontrollpunkt. Es versteht sich jedoch, dass die Ladevorgänge unterschiedlicher Benutzereinheiten unterschiedliche Kontrollpunkte haben können, die beispielsweise auf der Geschwindigkeit jedes Prozessors beruhen können.
  • Der Ladevorgang jeder Benutzereinheit benachrichtigt den Hauptvorgang, wenn er seinen Kontrollpunkt erreicht. Um den Kontrollpunkt aufzunehmen, wird der Hauptvorgang an den Eingabequellen (d.h. den Dateien mit unbearbeiteten Daten), der Datenbank und anderen Ausgabequellen (z.B. der Fehlerdatei und der Schlüssel-/RID-Datei) alle E/A-Aktivitäten stillegen. Sobald die E/A-Aktivitäten angehalten worden sind, sichert der Hauptvorgang Informationen über die aktuelle Position des Ladevorganges jeder Benutzereinheit innerhalb der Datenbank und innerhalb aller Eingabe- und Ausgabedateien. Die Position in der Datenbank (RID) und die Positionen in den Eingabedateien und Ausgabedateien (üblicherweise die Nummer eines Datensatzes) werden an einem Konsistenzpunkt gesichert, um von diesen gleichen Positionen aus den erneuten Beginn einleiten zu können.
  • Bei parallelen Ladevorgängen bestehen die Probleme (a) in dem Einrichten eines Punktes, an dem alle E/A von allen Ladevorgängen an alle Datenquellen stillgelegt werden können, um für den erneuten Beginn einen Konsistenzpunkt zu erzeugen, (b)den Ladevorgang nicht unwirtschaftlich werden zu lassen, indem der Ladevorgang einer oder mehrerer Benutzereinheiten lange Zeit warten muss.
  • Um diese Probleme zu lösen, benutzt das Ladesystem einen Hauptvorgang (oder "Stamm" vorgang), um alle Dateien zu öffnen, die benutzt werden sollen, um die Vorgänge zu beginnen, mit denen das tatsächliche Laden von Daten (d.h. die Ladevorgänge der Benutzereinheiten) erfolgen wird, und um darauf zu warten, dass die Ladevorgänge jeder Benutzereinheit dem Hauptvorgang mit Statusinformationen versorgen.
  • Der Ladevorgang der Benutzereinheit benachrichtigt den Hauptvorgang immer dann, wenn der Ladevorgang der Benutzereinheit genug Datensätze verarbeitet hat, so dass ein Kontrollpunkt erforderlich ist (z.B. 100.000 Datensätze), oder dann, wenn er das Laden aller Datensätze in einen Teil der Datenbank (z.B. eine Partition oder einen Tabellenraum) abgeschlossen hat, ohne dass der Kontrollpunkt erreicht worden ist, und dass er zur Verfügung steht, um Daten in den nächsten Teil zu laden. Wenn der Ladevorgang einer Benutzereinheit verfügbar ist, einen weiteren Teil der Datenbank zu laden, kann er das Laden der Daten in den mit ihm verbundenen Eingabedateien ausgeschöpft haben oder auch nicht. Es ist anzumerken, dass der Ladevorgang des DBMS in der Lage ist, Kontrollpunkte zu bilden.
  • Wenn der Hauptvorgang ein Signal empfängt, mit dem angezeigt wird, dass der Ladevorgang einer Benutzereinheit keinen Kontrollpunkt erreicht hat, aber das Laden von Daten in einen Teil der Datenbank abgeschlossen hat, ordnet der Hauptvorgang dem Ladevorgang der Benutzereinheit einen neuen Teil zu und signalisiert dem Ladevorgang der Benutzereinheit, mit dem Laden in den neuen Teil fortzufahren. Dann lädt der Ladevorgang der Benutzereinheit weiter Daten in den neuen Teil, bis er einen Kontrollpunkt erreicht oder bis das Laden dieses Teiles abgeschlossen ist, ohne dass ein Kontrollpunkt erreicht worden ist.
  • Wenn der Hauptvorgang ein Signal erhält, mit dem angezeigt wird, dass der Ladevorgang einer Benutzereinheit einen Kontrollpunkt erreicht hat, ermittelt der Hauptvorgang, ob der Ladevorgang jeder Benutzereinheit gemeldet hat, dass der Ladevorgang einer Benutzereinheit einen Kontrollpunkt erreicht hat. Wenn die Ladevorgänge aller Benutzereinheiten einen Kontrollpunkt erreicht haben, warten sie nun (d.h. es kann keine Anforderung für neue E/A herausgegeben werden), so dass der Hauptvorgang an allen Dateien E/A-Aktivitäten stilllegt, den Kontrollpunkt aufzeichnet und alle wartenden Vorgänge davon benachrichtigt, dass sie fortfahren können. Wenn keiner der Ladevorgänge von Benutzereinheiten einen Kontrollpunkt erreicht hat, wartet der Hauptvorgang darauf, dass der Ladevorgang der nächsten Benutzereinheit meldet, dass er einen Kontrollpunkt erreicht hat.
  • Das Folgende ist ein Beispiel für einen Pseudocode für die Tasken, die, gesteuert von einem Hauptvorgang, vom Ladesystem ausgeführt werden:
    Alle Dateien öffnen
    Ladevorgänge aller Benutzereinheiten beginnen
    Auf ein Signal vom Ladevorgang einer beliebigen Benutzereinheit warten
    Fortfahren, bis es keine zu ladenden Daten mehr gibt
    Wenn das empfangene Signal eine Anforderung für den nächsten Teil ist, dann
    Wenn weitere Teile geladen werden sollen, dann
    Den Ladevorgang der Benutzereinheit benachrichtigen, dass das Laden mit dem nächsten Teil fortgesetzt werden soll,
    Sonst
    Ladevorgang der Benutzereinheit beenden
    Sonst (empfangenes Signal ist für einen Kontrollpunkt)
    Wenn die Ladevorgänge aller Benutzereinheiten auf Kontrollpunkt warten, dann
    E/A an allen Dateien stillegen
    Kontrollpunkt ausführen
    Ladevorgänge aller Benutzereinheiten davon benachrichtigen, fortzufahren
    Sonst
    Auf das Signal des Ladevorganges der nächsten Benutzereinheit warten
    Ende
  • 4 ist ein Flussbild, das Schritte veranschaulicht, die unter der Steuerung des Ladesystems 102 von einem Hauptvorgang ausgeführt werden. Der Hauptvorgang öffnet in Block 400 Eingabe- und Ausgabedateien. Insbesondere enthalten die Eingabedateien Ursprungsdaten, und die Ausgabedateien enthalten eine oder mehrere Fehlerdateien zum Speichern von Fehlermeldungen und eine oder mehrere Schlüssel-/RID-Dateien zum Speichern von Schlüsseln und Zeilenkennzeichnern, die dafür benutzt werden, Indizes zu erstellen. In Block 402 startet der Hauptvorgang den Ladevorgang jeder Benutzereinheit. In Block 404 wartet der Hauptvorgang auf ein Signal vom Ladevorgang einer Benutzereinheit.
  • Beim Empfang eines Signals in Block 406 ermittelt der Hauptvorgang, ob das Signal ein Verfügbarkeitssignal vom Ladevorgang einer Benutzereinheit anzeigt, mit dem gemeldet wird, dass der Ladevorgang der Benutzereinheit das Laden seines zugeordneten Teiles der Datenbank abgeschlossen hat, ohne dass er seinen Kontrollpunkt erreicht hat. Wenn dies der Fall ist, geht der Hauptvorgang weiter zu Block 408, andernfalls geht der Hauptvorgang zu Block 418 weiter.
  • In Block 408 ermittelt der Hauptvorgang, ob es weitere Teile der Datenbank gibt, die geladen werden sollen. Wenn dies der Fall ist, geht der Hauptvorgang weiter zu Block 410, andernfalls geht der Hauptvorgang weiter zu Block 412. In Block 410 ordnet der Hauptvorgang dem Ladevorgang der Benutzereinheit einen neuen Teil (z.B. einen Partition oder einen Tabellenraum) zu, so dass der Ladevorgang der Benutzereinheit damit fortfahren kann, Daten in die Datenbank zu laden, und er signalisiert dem Ladevorgang der Benutzereinheit, dass er mit dem nächsten Teil fortfahren soll. Als Nächstes geht der Hauptvorgang weiter zu Block 404, wo er auf das nächste Signal vom Ladevorgang einer Benutzereinheit wartet. In Block 412 beendet der Hauptvorgang, da es keine weiteren Teile der Datenbank gibt, die geladen werden sollen, den Ladevorgang der Benutzereinheit und geht weiter zu Block 414, wo er ermittelt, ob die Ladevorgänge aller Benutzereinheiten abgeschlossen worden sind. Wenn dies nicht der Fall ist, geht der Hauptvorgang weiter zu Block 404, um auf das nächste Signal vom Ladevorgang einer Benutzereinheit zu warten, andernfalls wird der Hauptvorgang in Block 416 beendet.
  • In Block 418 ermittelt der Hauptvorgang, ob die Ladevorgänge aller Benutzereinheiten auf einen Kontrollpunkt warten. Wenn dies der Fall ist, geht der Hauptvorgang weiter zu Block 420, andernfalls geht der Hauptvorgang zurück zu Block 404. In Block 420 legt der Hauptvorgang alle Eingabe- und Ausgabeaktionen still. In Block 422 führt der Hauptvorgang einen Kontrollpunkt durch. In Block 424 meldet der Hauptvorgang den Ladevorgängen aller Benutzereinheiten, dass sie mit dem Laden fortfahren können und geht zurück zu Block 404.
  • Das Folgende ist ein Pseudocode-Beispiel für die Tasken, die vom Ladesystem, gesteuert vom Ladevorgang einer Benutzereinheit, ausgeführt werden:
    Einen Eingabedatensatz lesen
    Wenn mehr auszuführen ist
    Daten umwandeln und Zeilen bilden
    Zeilen in Datenbank unterbringen
    Ausgabedatensatz/-sätze aufzeichnen
    Wenn es Zeit für einen Kontrollpunkt ist
    Den Hauptvorgang zu Kontrollpunkt benachrichtigen
    Auf die Rückmeldung des Hauptvorganges warten
    Wenn Ende eines Teiles erreicht ist
    Den Hauptvorgang für neue Arbeit benachrichtigen
    Auf die Rückmeldung des Hauptvorganges warten
    Nächsten Datensatz lesen
    Ende
  • 5 ist ein Flussbild, das Schritte veranschaulicht, die unter der Steuerung des Ladesystems 102 vom Ladevorgang einer Benutzereinheit ausgeführt werden. In Block 500 wählt der Ladevorgang der Benutzereinheit den nächsten Eingabedatensatz aus, wobei er mit dem ersten Eingabedatensatz in der ihm zugeordneten Datei beginnt. In Block 502 verarbeitet der Ladevorgang der Benutzereinheit den Eingabedatensatz zu einer Zeile. Dies kann es erforderlich machen, die Daten für den Datensatz neu zu organisieren und die Daten in ein bestimmtes Format umzuwandeln. In Block 504 lädt der Ladevorgang der Benutzereinheit die Zeile in seinen zugeordneten Teil der Datenbank. In Block 506 zeichnet der Ladevorgang der Benutzereinheit Daten in einer oder mehreren Ausgabedateien auf, darunter eine Fehlerdatei und eine Schlüssel-/RID-Datei.
  • In Block 508 ermittelt der Ladevorgang der Benutzereinheit, ob er sich an einem Kontrollpunkt befindet. Wenn dies der Fall ist, geht der Ladevorgang der Benutzereinheit weiter zu Block 510, andernfalls geht der Ladevorgang der Benutzereinheit weiter zu Block 512. In Block 510 meldet der Ladevorgang der Benutzereinheit dem Hauptvorgang, dass er einen Kontrollpunkt erreicht hat, und wartet auf ein Signal vom Hauptvorgang.
  • In Block 512 ermittelt der Ladevorgang der Benutzereinheit, ob er das Laden seines zugeordneten Teiles der Datenbank abgeschlossen hat, ohne dass er seinen Kontrollpunkt erreicht hat (d.h., ob alle Datensätze ausgewählt worden sind). Wenn dies der Fall ist, geht der Ladevorgang der Benutzereinheit weiter zu Block 514, andernfalls geht der Ladevorgang der Benutzereinheit zurück zu Block 500. In Block 514 benachrichtigt der Ladevorgang der Benutzereinheit den Hauptvorgang, dass er zur Verfügung steht, um zusätzliche Daten zu verarbeiten, und wartet auf ein Signal vom Hauptvorgang.
  • Wenn der Ladevorgang der Benutzereinheit bei Block 516 vom Hauptvorgang ein Signal empfängt, ermittelt der Ladevorgang der Benutzereinheit, ob der Hauptvorgang ihm gemeldet hat, das Laden von Daten fortzusetzen oder aufzuhören. Wenn das Signal anzeigt fortzufahren, geht der Ladevorgang der Benutzereinheit zurück zu Block 500, andernfalls wird bei Block 518 der Ladevorgang der Benutzereinheit abgeschlossen. Bei Block 500 wählt der Ladevorgang der Benutzereinheit, falls ihm ein neuer Teil zugeordnet worden ist, den nächsten Datensatz aus seinem zugeordneten Teil aus, wobei er mit dem ersten beginnt.
  • Die Ladevorgänge der Benutzereinheiten ermitteln, wenn ein Kontrollpunkt einzurichten ist, beispielsweise nach dem Verarbeiten einer festen Anzahl von Datensätzen. Bei mehreren symmetrischen Prozessoren läuft der Ladevorgang jeder Benutzereinheit ungefähr mit der gleichen Geschwindigkeit, so dass die Ladevorgänge aller Benutzereinheiten das Kontrollpunktsignal an den Hauptvorgang etwa zum gleichen Zeitpunkt herausgeben werden. Damit besteht ein Vorzug der Erfindung darin, dass der Hauptvorgang den Kontrollpunkt wirksam einrichten kann, ohne dass die Ladevorgänge vieler Benutzereinheiten verzögert werden müssen, indem sie darauf warten, dass ein einzelner zum Abschluss kommt.
  • Zusätzlich kann dem Ladevorgang einer Benutzereinheit dann, wenn der Ladevorgang einer Benutzereinheit das Laden seines Teiles der Datenbank abgeschlossen hat, bevor er seine Kontrollpunktschwelle erreicht hat, ein weiterer Teil der Datenbank zum Laden und zur Fortsetzung der Verarbeitung zugeordnet werden, ehe er seine Kontrollpunktschwelle erreicht (wobei während des Kontrollpunkt-Intervalls alle Datensätze gezählt werden, die in alle Teile geladen werden). Damit besteht ein weiterer Vorzug der Erfindung darin, dass die Ladevorgänge aller Benutzereinheiten so lange wie möglich beschäftigt sind (z.B. wenn der Ladevorgang einer Benutzereinheit seinen ersten Teil nach dem Laden von nur 10.000 Datensätzen abgeschlossen hat, kann er weitere 90.000 Datensätze in einen weiteren Teil laden, ehe er einen Kontrollpunkt anfordert, statt dass er leer laufen muss, während er darauf wartet, dass Ladevorgänge anderer Benutzereinheiten einen Kontrollpunkt erreichen).
  • Schlussfolgerung
  • Dies beschließt die Beschreibung einer Ausführungsform der Erfindung. Das Folgende beschreibt einige alternative Ausführungsformen zur Bewerkstelligung der vorliegenden Erfindung. Beispielsweise kann eine beliebige Art Rechner, wie etwa ein Hauptrechner, ein Minirechner oder ein Arbeitsplatzrechner oder eine Rechneranordnung, wie etwa ein gemeinsam genutzter Hauptrechner, ein Ortsnetz oder ein eigenständiger Arbeitsplatzrechner mit der vorliegenden Erfindung benutzt werden.
  • Die vorstehende Beschreibung einer Ausführungsform der Erfindung ist zum Zwecke der Veranschaulichung und Beschreibung vorgelegt worden. Es besteht nicht die Absicht, sie für umfassend zu halten oder mit ihr die Erfindung auf die genaue Form einzuschränken, die dargelegt worden ist. Angesichts der vorstehenden Darlegung sind viele Modifikationen und Veränderungen möglich. Es ist beabsichtigt, dass der Umfang der Erfindung nicht durch diese ausführliche Beschreibung beschränkt wird, sondern durch die hier anhängenden Ansprüche.

Claims (2)

  1. Verfahren zum Laden von Daten in eine Datenbank, die mit einem Rechner verbunden ist, wobei der Rechner über mehrere Prozessoren verfügt, die jeweils mit dem Laden von Daten beschäftigt sind, und das Verfahren die folgenden Schritte umfasst: von einem Hauptprozess gesteuertes: a) Starten von mehreren Agentenladeprozessen zum parallelen Laden von Daten; b) Warten auf den Empfang eines Kontrollpunktsignals von jedem Agentenladeprozess, wobei das Kontrollpunktsignal durch den Agentenladeprozess gemäß Ladefortschritt erzeugt wird; c) Einrichten eines Kontrollpunktes für alle Agentenladeprozesse durch Anhalten aller Eingabe- und Ausgabeaktivitäten, und Speichern von Statusinformationen beim Empfang des Kontrollpunktsignals von jedem Agentenladeprozess, d) erneutes Starten jedes Agentenladeprozesses, gekennzeichnet durch e) Empfangen eines Verfügbarkeitssignals von einem Agentenladeprozess; f) Feststellen, ob es zusätzliche Daten gibt, die in zusätzliche Teile der Datenbank geladen werden sollen; g) wenn festgestellt wird, dass zusätzliche Daten vorhanden sind, die in zusätzliche Teile der Datenbank geladen werden sollen, h) Zuordnen eines zusätzlichen Teiles der Datenbank zu dem Agentenladeprozess.
  2. Vorrichtung zum Laden von Daten, nach dem Verfahren von Anspruch 1.
DE10063512A 2000-01-05 2000-12-20 Technik zum Einrichten eines Konsistenzpunktes in einem System zum parallelen Laden einer Datenbank Expired - Fee Related DE10063512B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/477,922 US6678701B1 (en) 2000-01-05 2000-01-05 Technique for establishing a point of consistency in a parallel database loading system
US09/477,922 2000-01-05

Publications (2)

Publication Number Publication Date
DE10063512A1 DE10063512A1 (de) 2001-07-19
DE10063512B4 true DE10063512B4 (de) 2006-10-05

Family

ID=23897873

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10063512A Expired - Fee Related DE10063512B4 (de) 2000-01-05 2000-12-20 Technik zum Einrichten eines Konsistenzpunktes in einem System zum parallelen Laden einer Datenbank

Country Status (2)

Country Link
US (1) US6678701B1 (de)
DE (1) DE10063512B4 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080101B1 (en) * 2000-12-01 2006-07-18 Ncr Corp. Method and apparatus for partitioning data for storage in a database
US7080072B1 (en) 2001-11-14 2006-07-18 Ncr Corp. Row hash match scan in a partitioned database system
US7035851B1 (en) * 2001-12-07 2006-04-25 Ncr Corp. Reorganization of database records using partition merging
KR100557997B1 (ko) * 2003-01-29 2006-03-06 삼성전자주식회사 랜딩 패드를 포함하는 반도체 장치의 제조방법
US8156110B1 (en) * 2004-01-29 2012-04-10 Teradata Us, Inc. Rescheduling of modification operations for loading data into a database system
EP1591915A1 (de) * 2004-04-26 2005-11-02 Sap Ag Verfahren, Computerprogrammprodukt und Computergerät zur Bearbeitung von Daten
US20060004846A1 (en) * 2004-06-16 2006-01-05 Bmc Software, Inc. Low-overhead relational database backup and restore operations
US9307059B2 (en) 2012-11-09 2016-04-05 Sap Se Retry mechanism for data loading from on-premise datasource to cloud
US10810188B2 (en) 2017-11-29 2020-10-20 Teradata Us, Inc. Load committed isolation processing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2829078B2 (ja) 1990-02-05 1998-11-25 株式会社日立製作所 プロセス分散方法
US5721909A (en) * 1994-03-30 1998-02-24 Siemens Stromberg-Carlson Distributed database architecture and distributed database management system for open network evolution
US5902352A (en) * 1995-03-06 1999-05-11 Intel Corporation Method and apparatus for task scheduling across multiple execution sessions
DE69635409T2 (de) * 1995-03-06 2006-07-27 Intel Corp., Santa Clara Ein rechnersystem mit unbewachter auf-anfrage-verfügbarkeit
US6192365B1 (en) * 1995-07-20 2001-02-20 Novell, Inc. Transaction log management in a disconnectable computer and network
US5630047A (en) * 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints
US5706489A (en) 1995-10-18 1998-01-06 International Business Machines Corporation Method for a CPU to utilize a parallel instruction execution processing facility for assisting in the processing of the accessed data
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
US5867725A (en) 1996-03-21 1999-02-02 International Business Machines Corporation Concurrent multitasking in a uniprocessor
US5761667A (en) * 1996-08-07 1998-06-02 Bmc Software, Inc. Method of optimizing database organization using sequential unload/load operations
US6442663B1 (en) * 1998-06-19 2002-08-27 Board Of Supervisors Of Louisiana University And Agricultural And Mechanical College Data collection and restoration for homogeneous or heterogeneous process migration

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BARCLAY, T. (u.a.): >>Loading Databases Using Dataflow Parallelism>>, SIGMOD Record, Vol. 23, No. 4, 1994 *

Also Published As

Publication number Publication date
US6678701B1 (en) 2004-01-13
DE10063512A1 (de) 2001-07-19

Similar Documents

Publication Publication Date Title
CN109891402B (zh) 可撤销和在线模式转换
DE202020005681U1 (de) Tabellen mit Journal in Datenbanksystemen
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
US6606626B1 (en) Database system with lock manager enhancement for improving concurrency
DE602005004166T2 (de) Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen
DE102012216022B4 (de) Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger
US6363387B1 (en) Database system providing methodology for enhancing concurrency using row update bit and deferred locking
DE202020005687U1 (de) Gemeinsame Datennutzung bzw. Datenteilung und materilisierte Ansichten in Datenbanken
DE202015009875U1 (de) Transparente Entdeckung eines semistrukturierten Datenschemas
DE202020005680U1 (de) Abfragen über externe Tabellen in Datenbanksystemen
DE202019005484U1 (de) Inkrementale Merkmalsentwicklung und Arbeitsbelastungserfassung in Datenbanksystemen
DE202019005594U1 (de) Sicheres gemeinsames Benutzen von Daten in einem mandantenfähigen Datenbanksystem
CN106599043A (zh) 用于多级数据库的中间件和多级数据库系统
DE112012000280B4 (de) Organisation von Tabellen mit reduzierten Indizes
DE60035432T2 (de) System zur verwaltung der rdbm fragmentierungen
US20150379058A1 (en) Managing data with flexible schema
US6289355B1 (en) Fast log apply
WO2002021327A2 (de) Verfahren und computerprogramm zur erzeugung von dateien für ein datenbanksystem für ein betriebswirtschaftliches anwendungsprogramm
DE10063512B4 (de) Technik zum Einrichten eines Konsistenzpunktes in einem System zum parallelen Laden einer Datenbank
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem
Akhtar Popularity ranking of database management systems
DE112020000657T5 (de) Dienstverwaltung in einem dbms
DE112022000886T5 (de) Datenverarbeitungssystem mit manipulation logischer datensatzgruppen
DE112020000536T5 (de) Erweiterbares überspringen von daten
Chen et al. Architecting and deploying DB2 with BLU acceleration

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000