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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, 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...
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 von1 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-Diensteinheit100 umfasst ein Ladesystem102 und mehrere Prozessoren (Prozessor-1104 und Prozessor-N106 ). Die Rechner-Diensteinheit100 ist mit Datenspeichern verbunden, darunter Datenspeicher108 , der Eingabedateien unbearbeiteter Daten speichert, die in einer Datenbank, Datenspeicher110 , der Partitionen einer Datenbank speichert, und Datenspeicher112 gespeichert werden sollen, der Ausgabedateien zum Festhalten von Fehlerinformationen und von Schlüssel-/RID-Informationen speichert. Unter der Steuerung des Ladesystems102 lädt ein Ladevorgang an jedem Prozessor104 ,106 Daten aus einer Eingabedatei108 in eine Datenbank110 , wobei in den Ausgabedateien112 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 von1 weitere Einzelheiten hinzufügt. In der Umgebung wird ein Rechnersystem202 aus einem oder mehreren Prozessoren gebildet, die mit einer oder mehreren Datenspeichereinrichtungen204 und206 verbunden sind, die in Tabellenräumen eine oder mehrere relationale Datenbanken speichern. Die Datenspeichereinrichtungen204 und206 können ein Festplattenlaufwerk, ein Diskettenlaufwerk, ein CD-ROM-Laufwerk, ein Bandlaufwerk oder eine andere Einheiten umfassen. - Bediener des Rechnersystems
202 benutzen eine Standard-Benutzerschnittstelle208 , wie etwa IMS/DB/DC®, CICS®, TSO®, OS/390®, ODBC® oder eine andere ähnliche Schnittstelle, um zum und vom Rechnersystem202 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 Systemdienste212 und das Modul der Datenbankdienste214 . Der IRLM210 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 Systemdienste212 steuert die gesamte Ausführungsumgebung von DB2® einschließlich des Verwaltens von Protokolldateien206 , 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 Datenbankdienste214 enthält mehrere Submodule, darunter das relationale Datenbanksystem (RDS)216 , den Datenverwalter218 , den Verwalter der Zwischenspeicher220 und andere Baugruppen222 , 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 Ladesystem230 und mehrere Prozessoren (Prozessor-1232 und Prozessor-N234 ). Das Rechnersystem202 ist auch mit einem Datenspeicher236 verbunden, der Eingabedateien nicht bearbeiteter Daten speichert, die in einer Datenbank gespeichert werden sollen, in Datenspeicher238 , der eine Datenbank speichert, und in Datenspeicher240 , 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 Datenbankdienstemodul214 ruft die Ladesteueranweisungen ab oder empfängt sie, wobei die Ladesteueranweisungen im Allgemeinen in einer Textdatei an der Datenspeichereinrichtung204 und206 gespeichert sind oder in das Rechnersystem202 im Dialog über Bedienerschnittstelle208 von einem Bediener eingegeben werden, der an einem Monitor226 sitzt. Das Datenbankdienste-Modul214 leitet dann aus den Ladesteueranweisungen Befehle zur Ausführung durch das Rechnersystem202 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 und206 . Darüber hinaus bestehen die RDBMS-Software, die Ladesteueranweisungen und die davon abgeleiteten Befehle alle aus Befehlen, die dann, wenn sie von dem Rechnersystem202 gelesen und ausgeführt werden, das Rechnersystem202 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 Datenspeichereinrichtungen204 und206 in einen Speicher des Rechnersystems202 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 Ladevorgang300 ,302 ,304 und306 jeder Benutzereinheit das Lesen einer Eingabedatei "unbearbeiteter" Daten310 ,312 ,314 und316 , die beispielsweise durch ein Programm oder einen Benutzer vorbereitet worden ist. Im Beispiel von3 liest der Ladevorgang300 ,302 ,304 und306 jeder Benutzereinheit aus einer unterschiedlichen Quelle von unbearbeiteten Daten310 ,312 ,314 und316 . 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 Ladevorgang300 ,302 ,304 und306 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 Datenbank320 ,322 ,324 und326 (z.B. eine Partition oder einen Tabellenraum). Insbesondere speichert der Ladevorgang300 ,302 ,304 und306 jeder Benutzereinheit eine Zeile mit einem Zeilenkennzeichner (RID) an einem bestimmten Standort in der Datenbank. Zusätzlich zeichnet der Ladevorgang300 ,302 ,304 und306 jeder Benutzereinheit Datensätze zur späteren Verarbeitung in einer oder mehreren Ausgabedateien330 und332 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 und326 geladen worden sind, werden bei340 die Schlüssel- und RID-Information sortiert, und die sortierten Informationen werden bei342 gespeichert. Als Nächstes bildet ein Indexerstellungsvorgang344 Indizes346 ,348 und350 . - 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 Ladesystems102 von einem Hauptvorgang ausgeführt werden. Der Hauptvorgang öffnet in Block400 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 Block402 startet der Hauptvorgang den Ladevorgang jeder Benutzereinheit. In Block404 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 Block408 , andernfalls geht der Hauptvorgang zu Block418 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 Block410 , andernfalls geht der Hauptvorgang weiter zu Block412 . In Block410 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 Block404 , wo er auf das nächste Signal vom Ladevorgang einer Benutzereinheit wartet. In Block412 beendet der Hauptvorgang, da es keine weiteren Teile der Datenbank gibt, die geladen werden sollen, den Ladevorgang der Benutzereinheit und geht weiter zu Block414 , wo er ermittelt, ob die Ladevorgänge aller Benutzereinheiten abgeschlossen worden sind. Wenn dies nicht der Fall ist, geht der Hauptvorgang weiter zu Block404 , um auf das nächste Signal vom Ladevorgang einer Benutzereinheit zu warten, andernfalls wird der Hauptvorgang in Block416 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 Block420 , andernfalls geht der Hauptvorgang zurück zu Block404 . In Block420 legt der Hauptvorgang alle Eingabe- und Ausgabeaktionen still. In Block422 führt der Hauptvorgang einen Kontrollpunkt durch. In Block424 meldet der Hauptvorgang den Ladevorgängen aller Benutzereinheiten, dass sie mit dem Laden fortfahren können und geht zurück zu Block404 . - 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 Ladesystems102 vom Ladevorgang einer Benutzereinheit ausgeführt werden. In Block500 wählt der Ladevorgang der Benutzereinheit den nächsten Eingabedatensatz aus, wobei er mit dem ersten Eingabedatensatz in der ihm zugeordneten Datei beginnt. In Block502 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 Block504 lädt der Ladevorgang der Benutzereinheit die Zeile in seinen zugeordneten Teil der Datenbank. In Block506 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 Block510 , andernfalls geht der Ladevorgang der Benutzereinheit weiter zu Block512 . In Block510 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 Block514 , andernfalls geht der Ladevorgang der Benutzereinheit zurück zu Block500 . In Block514 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 Block500 , andernfalls wird bei Block518 der Ladevorgang der Benutzereinheit abgeschlossen. Bei Block500 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)
- 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.
- Vorrichtung zum Laden von Daten, nach dem Verfahren von Anspruch 1.
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)
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)
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 |
-
2000
- 2000-01-05 US US09/477,922 patent/US6678701B1/en not_active Expired - Fee Related
- 2000-12-20 DE DE10063512A patent/DE10063512B4/de not_active Expired - Fee Related
Non-Patent Citations (1)
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 |