DE69128499T2 - Datenbankverwaltungssystem - Google Patents
DatenbankverwaltungssystemInfo
- Publication number
- DE69128499T2 DE69128499T2 DE69128499T DE69128499T DE69128499T2 DE 69128499 T2 DE69128499 T2 DE 69128499T2 DE 69128499 T DE69128499 T DE 69128499T DE 69128499 T DE69128499 T DE 69128499T DE 69128499 T2 DE69128499 T2 DE 69128499T2
- Authority
- DE
- Germany
- Prior art keywords
- transaction
- database
- lock
- data
- time
- 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
- 238000012545 processing Methods 0.000 claims description 17
- 230000004913 activation Effects 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 claims description 7
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- 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/99931—Database or file accessing
- Y10S707/99939—Privileged access
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Datenbankverwaltungssystem zum Sperren von Daten in einer Anzahl von Datenbanken während der Ausführung von Transaktionen.
- Eine Anzahl von Computern kann in einem verteilten Datenbanksystem angeordnet werden, wobei jeder Computer eine Datenbank aufweist. Die Anzahl von Computern ist untereinander durch Übertragungsleitungen verbunden. Jeder Computer verwaltet seine eigene Datenbank (Computer und zugehörige eigene Datenbank werden hierin als "Standort" bezeichnet). Wenn ein Standort über eine Eingabevorrichtung mit einer Datenverarbeitungsabfrage beauflagt wird, prüft der Computer im Standort, welche Datenbank die erforderlichen Daten für die abgefragte Verarbeitung enthält, indem auf eine Tabelle gespeicherter Datennamen und entsprechender Datenstellen Bezug genommen wird. Wenn die Daten in der eigenen Datenbank des Standortes enthalten sind, liest der Computer die Daten aus dieser Datenbank, führt das Datenverarbeitungsprogramm aus und schreibt das Ergebnis in die Datenbank (eine Folge solcher Prozesse wird als "Transaktion" bezeichnet). Wenn einige Daten nicht nur in der eigenen Datenbank des Standortes enthalten sind, sondern auch in einer Datenbank eines zweiten Standortes, versendet der Computer die Verarbeitungsabfrage an den zweiten Standort, dessen Datenbank die Daten enthält. Der Computer am zweiten Standort liest dann die Daten von seiner Datenbank, führt die Datenverarbeitung an seinem Standort durch und schreibt das Datenverarbeitungsergebnis entsprechend der Verarbeitungsabfrage in seine Datenbank. In solchen Fällen dürfen während der Verarbeitung der Transaktion durch Verwendung der Daten in der Datenbank andere Computer an anderen Standorten keinen Zugriff zu den gleichen Daten zur Ausführung einer anderen Transaktion haben. Wenn der andere Computer auf die gleichen Daten zugreift, sind die resultierenden Daten in der Datenbank uneinheitlich.
- Fig. 1 zeigt zum Beispiel ein Beispiel von zwei Computern, die versuchen auf die gleichen Datenelemente zuzugreifen. Zum Beispiel wird angenommen, daß der Standort die Zweigstelle einer Bank ist und ihre Datenbank die Einzahlungsbilanz speichert. Wenn der Standort Geld vom Kunden erhält, findet eine Transaktion statt. Die Einzahlungsbilanz wird aus dem Kundenkonto herausgelesen, das erhaltene Geld wird zur Einzahlungsbilanz addiert und das Ergebnis wird auf sein Konto geschrieben. Es wird angenommen, daß die Datenbank von Standort A die Einzahlungsbilanz des Kunden X von 50 $ gespeichert hat und eine Einzahlung von 100 $ am Standort A, getätigt vorn Kunden X, erfolgt (diese Transaktion wird als Ta bezeichnet). Es wird angenommen, daß sofort danach ein anderer Standort B 30 $ für das Konto des Kunden X, eingezahlt durch den Kunden X, erhält (diese Transaktion wird als Tb bezeichnet). Als erstes führt der Computer am Standort A READ (Lesen) (Ta) aus. Da die Einzahlungsbilanz des Kunden X 50 $ beträgt, addiert der Computer die erhaltenen 100 $ zu den 50 $ und schreibt 150 $ als aktuelle Einzahlungsbilanz. (WRITE (Ta)). Der Computer am Standort B führt jedoch READ (Tb) vor WRITE (Ta) aus. Der Computer am Standort B liest die Einzahlungsbilanz des Kunden X von 50 $ über die Übertragungsleitung. Dann addiert der Computer am Standort B die erhaltenen 30 $ zu 50 $ und schreibt 80 $ in das Konto des Kunden X als Bilanz (WRITE (Tb). Daher ist die Einzahlungsbilanz des Kunden X 80 $. Die tatsächliche Einzahlungsbilanz des Kunden X müßte jedoch 180 $ sein.
- Daher wird ein dem Stand der Technik entsprechendes Sperrverfahren verwendet, um das Auftreten dieses Problemtyps zu verhindem. Nach diesem Verfahren setzt der Computer am Standort A eine Markierung, die dem Konto des Kunden X in der Datenbank A entspricht, bevor der Computer am Standort A READ (Ta) ausführt. Diese Markierung verbietet den Zugriff durch andere Computer. Wenn der Computer am Standort A WRITE (Ta) abschließt, löscht der Computer des Standortes A die Markierung, die dem Konto des Kunden X in der Datenbank A entspricht. Daher verzögert der Computer am Standort B die Durchführung der Transaktion (Tb) während der Durchführung der Transaktion (Ta), weil eine Markierung, die dem Konto des Kunden X entspricht, gesetzt ist. Nachdem die Markierung durch den Computer am Standort A gelöscht ist, führt der Computer am Standort B die Transaktion (Tb) durch. Das Sperrverfahren verhindert das Erzeugen unkorrekter Daten. Im Sperrverfahren kann jedoch ein sogenannte Blockierung zwischen einer Anzahl von Transaktionen auftreten. Fig. 2A, 2B, 2C und 2D zeigen ein Beispiel, wie die Blockierung zwischen zwei Transaktionen auftreten kann. Es wird angenommen, daß die Transaktion A mit der Sperrung der anderen Transaktion ab den beiden Daten i und j beginnt. Transaktion B beginnt ebenfalls mit der Sperrung anderer Transaktionen ab den beiden Daten i und j. Die Sperroperation wird wie folgt ausgeführt:
- (1) Transaktion A sperrt Datenelement i (Fig. 2A)
- (2) Transaktion B sperrt Datenelement j (Fig. 2B)
- (3) Transaktion A versucht das Datenelement j zu sperren, muß jedoch warten, bis das Datenelernent j freigegeben ist (Fig. 2C).
- (4) Transaktion B versucht das Datenelement i zu sperren, muß jedoch warten bis das Datenelement i freigegeben ist (Fig. 2D).
- Wenn beide Transaktionen A und B warten müssen&sub1; bis ein erforderliches Datenelement durch die andere Transaktion freigegeben ist, wie im vorliegenden Beispiel, tritt eine Blockierung ein. In diesem Falle ist die Ursache der Blockierung, daß die Transaktion B das Datenelement j gesperrt hat, bevor die Transaktion A in der Lage war, das Datenelement j zu sperren. Wenn jedoch nur eine der Transaktionen A und B gleichzeitig beide Datenelemente i und j sperrt, tritt eine Blockierung zwischen den Transaktionen nicht auf. Wenn die erste Transaktion die Datenelemente i und j freigibt, kann die andere Transaktion beide Datenelemente i und j sperren. Kurz gesagt, es tritt keine Blockierung auf. In einem solchen Falle können zwei positive Folgeerscheinungen auftreten.
- Fig. 3A zeigt die erste Folgeerscheinung folgendermaßen dar:
- (1) Transaktion A sperrt gleichzeitig andere Transaktionen mit den Datenelementen i und j.
- (2) Transaktion B versucht die Datenelemente i und j zu sperren, muß jedoch warten bis die Transaktion A die Datenelemente i und j freigibt.
- Fig. 3B zeigt die zweite Folgeerscheinung folgendermaßen:
- (1) Transaktion B sperrt gleichzeitig andere Transaktionen mit den Datenelementen i und j.
- (2) Transaktion A versucht die Datenelemente i und j zu sperren, muß jedoch warten, bis die Transaktion B die Datenelemente i und j freigibt.
- In diesen beiden Situationen erhält eine Transaktion den exclusiven Zugriff auf beide Datenelemente i und j. Daher ist die Transaktion beendet, bevor die beiden Datenelemente i und j freigegeben sind. Nur dann kann die andere Transaktion Zugriff auf beide Datenelemente i und j erhalten.
- In einem verteilten Datenbanksystem wird jedoch das Sperrverfahren über die Übertragungsleitungen zwischen den Datenbanken ausgeführt. Es wird zum Beispiel angenommen, daß die Datenelemente i und j in den Datenbanken A bzw. B enthalten sind. Der Standort A enthält den Computer A und die Datenbank A und der Standort B enthält den Computer B und die Datenbank B. Demgemäß sperrt die Transaktion des Computers A andere Transaktionen mit den Datenelementen j in der Datenbank B später, als die Transaktion des Computers A das Datenelement i in der Datenbank A sperrt, weil es eine Übertragungslaufzeit zwischen dem Computer A und der Datenbank B gibt. Das gleiche gilt, wenn die Transaktion des Computers B das Datenelement i in der Datenbank A später sperrt, als die Transaktion des Computers B das Datenelement j in der Datenbank B sperrt, weil es eine Übertragungslaufzeit zwischen dem Computer B und der Datenbank A gibt. Daher ist es bei den bekannten Datenbankverwaltungssystemen für eine Transaktion schwierig, die anderen Transaktionen gegenüber mehreren Datenelernenten in verteilten Datenbanken gleichzeitig zu sperren.
- Der Vortrag "Eine Analyse des Einflusses von Multiversionen auf die Leistungsfähigkeit von Zeitmarken-Algorithmen", IEEE Journal on Selected Areas in Communications 7(1989)3 beschreibt eine Untersuchung der Leistungsfähigkeit von konservativen Multiversions-Zeitmarken-Algorithmen in verteilten Datenbanksystemen, in denen die Daten in einer Reihenfolge wiedergefunden werden, die durch mit jeder Transaktion verknüpfte Zeitmarken bestimmt wird.
- Es ist eine Aufgabe der vorliegenden Erfindung, ein Datenbankverwaltungssystem zum wirksamen Sperren einer Mehrzahl von Datenelernenten in verteilten Datenbanken unter Verwendung eines Zeitmarkenverfahrens zur Verfügung zu stellen, das eine verbesserte Leistungsfähigkeit sichert.
- Demgemäß stellt die vorliegende Erfindung ein Datenbankverwaltungssystem zur Verfügung, bestehend aus:
- einer Anzahl von Standorten, an denen jeweils ein Computer, eine Datenbank und eine Uhr vorgesehen sind;
- Übertragungseinrichtungen, um die Anzahl von Standorten miteinander zu verbinden, um zwischen den Standorten Befehle zu versenden;
- wobei in den jeweiligen Datenbanken Daten zur Verarbeitung gespeichert sind und wobei jeder Computer aufweist:
- eine Transaktions-Erzeugungseinrichtung zum Erzeugen einer Transaktion, und
- eine Transaktions-Verwaltungseinrichtung, um festzustellen, welche Datenbanken Daten enthalten, die zur Durchführung der Transaktion erforderlich sind, die von der Transaktions-Erzeugungseinrichtung erzeugt wurde, und welche Standorte an der Transaktion beteiligt sind; gekennzeichnet durch:
- eine Maximallaufzeit-Entscheidungseinrichtung zum Auswählen der maximalen Laufzeit, die erforderlich ist, um an alle diese Standorte einen Sperrbefehl zu senden;
- eine Sperrzeit-Entscheidungseinrichtung, um auf Basis der maximalen Laufzeit und der aktuellen Uhrzeit eine Sperrzeit zu bestimmen, wobei die Transaktions-Verwaltungseinrichtung die Sperrzeit als den Sperrbefehl an die Standorte versendet;
- eine Ablaufsteuerungseinrichtung, um einen Sperrbefehl zu empfangen, der von der Transaktions-Verwaltungseinrichtung eines anderen Standortes über die Übertragungseinrichtungen versendet wurde, und
- eine Sperraktivierungseinrichtung, um die Ablaufsteuerungseinrichtung zu aktivieren, wenn die Sperrzeit des empfangenen Sperrbefehls mit der aktuellen Uhrzeit übereinstimmt, wodurch die Ablaufsteuerungseinrichtung in Reaktion auf die Aktivierung durch die Sperraktivierungseinrichtung die erforderlichen Daten in der Datenbank sperrt.
- Fig. 1 zeigt ein Beispiel von zwei Transaktionen, die das Zugreifen auf eine Datenbank nach dem Stand der Technik erfordern;
- Fig. 2a, 2b, 2c und 2d zeigen ein Beispiel einer Blockierung zwischen zwei Computern, die versuchen, zwei Transaktionen zu verarbeiten;
- Fig. 3a und 3b zeigen Beispiele , die eine Blockierung zwischen zwei Transaktionen vermeiden;
- Fig. 4 zeigt ein Blockdiagramm eines einzelnen Standortes des Datenbankverwaltungssystems gemäß der vorliegenden Erfindung;
- Fig. 5A zeigt Beispiele des Datenaufbaus einer Transaktion;
- Fig. 5B zeigt ein Beispiel für den Aufbau eines Sperrbefehls;
- Fig. 5c zeigt ein Beispiel für den Datenaufbau der Datenbank und der Warteschlange;
- Fig. 6 zeigt ein Blockdiagramm des Datenbankverwaltungssystems gemäß der vorliegenden Erfindung (jeder Standort befindet sich in Übereinstimmung mit Fig. 4, obwohl aus Übersichtsgründen nicht alle Paare dargestellt sind);
- Fig. 7 zeigt ein Flußdiagramm für die Verarbeitung des Transaktions-Verwaltungsabschnittes des Datenbankverwaltungssystems gemäß der vorliegenden Erfindung; und
- Fig. 8 zeigt ein Flußdiagramm für die Verarbeitung des Ablaufsteuerungsabschnittes des Datenbankverwaltungssystems gemäß der vorliegenden Erfindung.
- Fig. 4 zeigt ein Blockdiagramm eines Standortes des Datenbankverwaltungssystems gemäß der vorliegenden Erfindung. Jeder Standort hat einen Computer 12 und eine Datenbank 15. Jeder Computer besteht aus einem Transaktions-Erzeugungsabschnitt 1, einem Transaktions-Verwaltungsabschnitt 3, einem Transaktions- Ausführungsabschnitt 4, einem Maximallaufzeit-Entscheidungsabschnitt 5, einem Sperrzeit-Entscheidungsabschnitt 9, einem Sperraktivierungsabschnitt 11, einer Uhr 13 und einer Warteschlange 14. Bei einer Anzahl von Standorten wird der Standort, an dem die Transaktion durch den Transaktions-Erzeugungsabschnitt 1 erzeugt wird, als "Hauptstandort" bezeichnet. Der Transaktions-Erzeugungsabschnitt 1 ist eine Eingabeeinrichtung wie zum Beispiel eine Tastatur, und der Benutzer gibt die Transaktionsabfrage über den Transaktions-Erzeugungsabschnitt 1 ein. Der Transaktions-Verwaltungsabschnitt 3 analysiert die Transaktionsabfrage und prüft, welche Datenbank die für die Ausführung der Transaktion erforderlichen Daten enthält. Darauf erzeugt der Transaktions-Verwaltungsabschnitt 3 die Datenstruktur der Transaktion.
- Fig. 5a zeigt den Datenaufbau der Transaktion. Im vorliegenden Fall ist das Konto des Kunden X in der Datenbank A des Standortes A (Hauptstandort) gespeichert. Er gibt eine Geldüberweisung von seinem Konto zum Konto des Kunden Y in Auftrag, das in der Datenbank B des Standortes B gespeichert ist. Zwei Transaktionen sind für den Auftrag des Kunden X erforderlich. Die Transaktion (Tx) besteht darin 100 $ vom Konto des Kunden X in der Datenbank A abzuziehen. Die Transaktion (Ty) besteht darin dem Konto des Kunden Y in der Datenbank B 100 $ hinzuzufügen. In diesem Fall führt der Transaktions-Erzeugungsabschnitt 4 des Standortes A die Transaktion (Tx) aus und der Transaktions-Verwaltungsabschnitt 4 des Standortes A versendet die Transaktion (Ty) zum Standort B. Daher müssen während der Verarbeitung der Transaktionen das Konto des Kunden X in der Datenbank A und das Konto des Kunden Y in der Datenbank B gesperrt werden.
- Der Transaktions-Verwaltungsabschnitt 3 erkennt und liefert den Namen der Datenbank, in dem die erforderlichen Daten gespeichert sind, zum Maximallaufzeit-Entscheidungsabschnitt 5. Der Maximallaufzeit-Entscheidungsabschnitt 5 hat vorher die erforderlichen Laufzeiten gespeichert, die erforderlich sind, um Befehle zu jedem Standort im Datenbankverwaltungssystem zu versenden. Daher wählt der Abschnitt 5 die Laufzeit entsprechend dem Standortnamen, der von dem Transaktions-Verwaltungsabschnitt 3 zur Verfügung gestellt wird. Wenn mehr als ein Standort beteiligt ist und die Daten von zwei oder mehr Datenbanken außer der Datenbank am Hauptstandort erhalten werden müssen, wählt der Maximallaufzeit-Entscheidungsabschnitt die maximale Laufzeit aus den Laufzeiten für jeden Standort aus.
- Als nächstes liefert der Maximallaufzeit-Entscheidungsabschnitt 5 die maximale Laufzeit zum Sperrzeit-Entscheidungsabschnitt 7. Der Sperrzeit-Entscheidungsabschnitt 7 hat ein Register für die aktuelle Uhrzeit, das immer die aktuelle Uhrzeit der Uhr 13 aufweist. (Das Register für die aktuelle Uhrzeit ist in Fig. 4 nicht dargestellt). Ferner speichert der Sperrzeit-Entscheidungsabschnitt 7 vorher die Zeitabweichung der Uhr zwischen dem Hauptstandort und den anderen Standorten. Der Sperrzeit-Entscheidungsabschnitt 7 addiert die maximale Laufzeit und die Zeitabweichung zur aktuellen Zeit hinzu. Diese Zeitsumme wird als "Sperrzeit" bezeichnet. Darauf liefert der Sperrzeit-Entscheidungsabschnitt 7 die Sperrzeit zum Transaktions-Verwaltungsabschnitt 3. Der Transaktions-Verwaltungsabschnitt 3 erzeugt den Sperrbefehl unter Verwendung der Sperrzeit. Fig. 5b zeigt den Datenaufbau des Sperrbefehls. Der Sperrbefehl bedeutet, daß der Standort, der den Sperrbefehl empfängt, das Datenelement entsprechend der Adresse an der Sperrzeit sperren muß. Der Transaktions-Verwaltungsabschnitt 3 versendet den Sperrbefehl ebenfalls an die anderen Standorte, die Daten enthalten, die für die Ausführung der Transaktion erforderlich sind.
- Jeder Standort enthält einen Ablaufsteuerungsabschnitt 9, der den Sperrbefehl, der vom Transaktions-Verwaltungsabschnitt des anderen Standortes über die Übertragungsleitung versandt wurde, empfängt. Der Sperrbefehl kann auch durch den Transaktions-Verwaltungsabschnitt seines eigenen Standortes versandt werden. Wenn der Ablaufsteuerungsabschnitt 9 den Sperrbefehl empfängt, versendet der Ablaufsteuerungsabschnitt 9 die Sperrzeit des Sperrbefehls zum Sperraktivierungsabschnitt 11. Der Sperraktivierungsabschnitt 11 vergleicht die Sperrzeit mit der aktuellen Zeit der Uhr 13. Wenn die Sperrzeit mit der aktuellen Zeit der Uhr 13 übereinstimmt, versendet der Sperraktivierungsabschnitt 11 ein Aktivierungssignal zum Ablaufsteuerungsabschnitt 9. Zu dieser Zeit sperrt der Ablaufsteuerungsabschnitt 9 das Datenelement entsprechend der Adresse des Sperrbefehls in der Datenbank 15. Wenn das Datenelement frei ist (kurz gesagt, das Datenelement ist nicht gesperrt worden), sperrt der Ablaufsteuerungsabschnitt 9 sofort das Datenelement.
- Wenn jedoch das Datenelement nicht frei ist, wartet der Ablaufsteuerungsabschnitt 9 mit der Ausführung des Sperrbefehls. Der Standort enthält eine Warteschlange 14 für jedes Datenelement in der Datenbank. Die Warteschlange 14 speichert Sperrbefehle nach dem FIFO-Modus (First-in First-out) (Erster eingehender Befehl wird als erster wieder ausgegeben). Kurz gesagt, der Ablaufsteuerungsabschnitt 9 leitet den Sperrbefehl von der letzten Zeile in die entsprechende Warteschlange. Wenn das Datenelement durch den Transaktions-Ausführungsabschnitt 4 freigegeben wird, wird der Sperrbefehl, der sich in der Kopfzeile in der entsprechenden Warteschlange befindet, ausgeführt. Kurz gesagt, der Ablaufsteuerungsabschnitt 9 sperrt das Datenelement entsprechend dem Sperrbefehl.
- Fig. 5c zeigt den Datenaufbau der Datenbank und der Warteschlange. Die Datenbank speichert das Datenelement und die Markierung entsprechend einer Adresse. Wenn die Markierung auf "1" gesetzt ist, bedeutet das, daß das Datenelement gesperrt ist. Wenn die Markierung auf "0" zurückgestellt ist, bedeutet das, daß das Datenelement freigegeben ist. Jede Warteschlange entspricht einem jeweiligen Datenelement. Somit wird während des Warteschlangenprozesses der Sperrbefehl gespeichert und die Markierung wird in sich wiederholender Weise durch den Ablaufsteuerungsabschnitt 9 jedesmal dann gesetzt, wenn die Markierung durch den Transaktions-Ausführungsabschnitt 4 zurückgestellt ist.
- Fig. 6 zeigt ein Blockdiagramm eines Datenbankverwaltungssystems gemäß der vorliegenden Erfindung. Dieses Datenbankverwaltungssystem besteht aus drei Standorten A, B und C. Fig. 7 zeigt ein Flußdiagramm für das verarbeiten einer Transaktion durch den Transaktions-Verwaltungsabschnitt des Hauptstandortes. Fig. 8 zeigt ein Flußdiagramm für die Verarbeitung durch den Ablaufsteuerungsabschnitt jedes Standortes. Wir beziehen uns nun auf Fig. 6, 7 und 8. Die Verarbeitung durch das Datenbankverwaltungssystem der vorliegenden Erfindung wird nachfolgend detailliert erläutert. (Am Standort B und am Standort C ist es so zu verstehen, daß der Transaktions-Erzeugungsabschnitt, der Transaktions-Verwaltungsabschnitt, der Maximallaufzeit-Entscheidungsabschnitt, der Sperrzeit-Entscheidungsabschnitt und die Uhr vorhanden sind, obwohl sie in Fig. 6 aus Gründen einer klaren Darstellung weggelassen wurden).
- Am Standort A wird angenommen, daß die Transaktionsabfrage durch den Transaktions-Erzeugungsabschnitt 1a des Computers 12a geliefert wurde und die Datenbanken 15a, 15b und 15c die für die Ausführung der Transaktion erforderlichen Daten speichern. So speichert zum Beispiel die Datenbank isa das Konto des Kunden X. Die Datenbank 15b speichert das Konto des Kunden Y. Die Datenbank 15c speichert das Konto des Kunden Z. Der Kunde X gibt eine Geldüberweisung von seinem Konto auf das Konto des Kunden Y mit einem Betrag von 100 $ und auf das Konto des Kunden Z mit einem Betrag von 200 $ über den Transaktions-Erzeugungsabschnitt 1A des Standortes A in Auftrag. Entsprechend der Transaktionsabfrage werden drei Transaktionen (Ta, Tb, Tc) durch den Transaktions-Verwaltungsabschnitt 3a erzeugt. Die Transaktion (Ta) besteht in einer Subtraktion von 300 $ vorn Konto des Kunden X in der Datenbank isa. Die Transaktion (Tb) besteht in einer Addition von 100 $ zum Konto des Kunden Y in der Datenbank 15b. Die Transaktion (Tc) besteht in einer Addition von 200 $ zum Konto des Kunden Z in der Datenbank 15c. (Schritt 71 in Fig. 7).
- Der Transaktions-Verwaltungsabschnitt 3a versendet die Datenbanknamen (15a, 15b, 15c) zum Maximallaufzeit-Entscheidungsabschnitt 5a. Der Maximallaufzeit-Entscheidungsabschnitt 5a hat vorher die Laufzeit für den Versand der Befehle vorn Standort A zum Standort B bzw. zum Standort C gespeichert. Demgemäß bestimmt der Maximallaufzeit-Entscheidungsabschnitt 5a die maximale Laufzeit Θ nach der folgenden Formel (Schritt 73 in Fig. 7)
- Θ = max (Laufzeit A T B), Laufzeit (A T C)
- Laufzeit (A 4 B): Laufzeit vorn Standort A zum Standort B
- Laufzeit (A 4 C): Laufzeit vorn Standort A zum Standort C
- Kurz gesagt, der Maximallaufzeit-Entscheidungsabschnitt 5 wghlt den Maximalwert aus den gespeicherten Laufzeiten aus. Darauf versendet der Maximallaufzeit-Entscheidungsabschnitt 5 die maximale Laufzeit (Θ) an den Sperrzeit-Entscheidungsabschnitt 7a. Der Sperrzeit-Entscheidungsabschnitt 7a enthält ein Register für die aktuelle Zeit, in dem die aktuelle Zeit (t) konstant durch eine Uhr 13 zur Verfügung gestellt wird (Das Register für die aktuelle Zeit ist in Fig. 6 nicht dargestellt. Der Sperrzeit- Entscheidungsabschnitt 7a speichert vorher die Zeitabweichung ( ) zwischen der Uhrzeit des Standortes A und der Uhrzeit der Standorte B und C. Demgemäß bestimmt der Sperrzeit-Entscheidungsabschnitt 7a die Sperrzeit (T) nach der folgenden Formel (Schritt 75 in Fig. 7):
- T = t + Θ + (1)
- Kurz gesagt, der Sperrzeit-Entscheidungsabschnitt 7a addiert die maximale Laufzeit (Θ) und die Zeitabweichung ( ) zur aktuellen Zeit (t). Darauf versendet der Sperrzeit-Entscheidungsabschnitt 7a die Sperrzeit zum Transaktions-Verwaltungsabschnitt 3a. Der Transaktions-Verwaltungsabschnitt 3a erzeugt einen Sperrbefehl unter Verwendung der Sperrzeit und eine Adresse entsprechend den für die Durchführung der Transaktionen erforderlichen Daten. Im vorliegenden Falle werden drei Sperrbefehle für das Sperren der Daten in der Datenbank 15a, 15b bzw. 15c erzeugt. Darauf versendet der Transaktions-Verwaltungsabschnitt 3a drei Sperrbefehle an die Ablaufsteuerungsabschnitte 9a, 9b bzw. 9c. Der Sperrbefehl zum Sperren des Datenelementes in der Datenbank 15a wird an den Ablaufsteuerungsabschnitt 9a versendet. Der Sperrbefehl zum Sperren des Datenelementes in der Datenbank 15b wird an den Ablaufsteuerungsabschnitt 9b versendet. Der Sperrbefehl zum Sperren des Datenelementes in der Datenbank 15c wird an den Ablaufsteuerungsabschnitt 9c versendet (Schritt 77 in Fig. 7). Unter Verwendung der Formel (1) zur Bestimmung der Sperrzeit (T) ist gesichert, daß der Sperrbefehl die Standorte B und C vor der aktuellen Zeit jeder Uhr in den Standorten B und C erreicht und daß alle Datenbanken gleichzeitig gesperrt werden.
- Nach dem Versenden des Sperrbefehls versendet der Transaktions- Verwaltungsabschnitt 3a die drei Transaktionen (Ta, Tb, Tc) zu den Ablaufsteuerungsabschnitten 9a, 9b bzw. 9c. Die folgende Erläuterung gilt für die Verarbeitung am Standort A. Die Verarbeitung an den Standorten B und C ist jedoch gleich. Wenn der Ablaufsteuerungsabschnitt 9a die Sperrbefehle empfängt, versendet der Ablaufsteuerungsabschnitt 9a die Sperrzeit des Sperrbefehls an den Sperraktivierungsabschnitt 11a (Schritt 81 in Fig. 8). Der Ablaufsteuerungsabschnitt 9a empfängt die Transaktion (Ta). Der Ablaufsteuerungsabschnitt 9a versendet die Transaktion (Ta) an den Transaktions-Ausführungsabschnitt 4a. Der Sperraktivierungsabschnitt ha enthält ein Register für die aktuelle Zeit, in dem die aktuelle Zeit der Uhr 13a gespeichert ist und laufend auf den aktuellen Stand gebracht wird. Der Sperraktivierungsabschnitt 11a vergleicht die Sperrzeit mit der aktuellen Zeit des Registers für die aktuelle Zeit. Wenn die Sperrzeit mit der aktuellen Zeit übereinstimmt, versendet der Sperraktivierungsabschnitt lla Signale an den Ablaufsteuerungsabschnitt 9a. Der Ablaufsteuerungsabschnitt 9a sucht das Datenelement entsprechend der Adresse des Sperrbefehls in der Datenbank isa (Schritt 83 in Fig. 8). Der Ablaufsteuerungsabschnitt 9a prüft, ob das Datenelement entsprechend der Adresse frei ist oder nicht (Schritt 85 in Fig. 8). Wenn das Datenelement frei ist (Markierung für das Datenelernent ist nicht gesetzt), setzt der Ablaufsteuerungsabschnitt 9a die Markierung und sendet das Sperrvollendungssignal mit der Adresse des Datenelementes an den Transaktions-Ausführungsabschnitt 4a. Der Transaktions-Ausführungsabschnitt 4a beginnt mit der Ausführung der Transaktion (Ta) unter Verwendung des Datenelementes (Schritt 87 in Fig. 8).
- Wenn das Datenelement gesperrt ist (die Markierung für das Datenelement ist gesetzt), leitet der Ablaufsteuerungsabschnitt 9a den Sperrbefehl im FIFO (First-in First-out) Modus in die Warteschlange 14a, die dem Datenelement entspricht (Schritt 89 in Fig. 8). In diesem Falle führt der Transaktions-Ausführungsabschnitt 4a eine andere Transaktion unter Verwendung des Datenelementes aus. Wenn der Transaktions-Ausführungsabschnitt 4a die andere Transaktion abgeschlossen hat, gibt der Abschnitt 4a das Datenelement frei (die Markierung wird zurückgesetzt) und sendet das Transaktionsvollendungssignal mit der Adresse des Datenelementes an den Ablaufsteuerungsabschnitt 9a. Der Ablaufsteuerungsabschnitt 9a sperrt das Datenelernent, das der Adresse entspricht gemäß dem Sperrbefehl, der in der Kopfzeile der Warteschlange gespeichert ist. Auf diese Weise wird durch Sperren des erforderlichen Datenelementes die Transaktion in der Sperrzeit ausgeführt.
Claims (10)
1. Datenbankverwaltungssystem, mit:
einer Anzahl von Standorten, an denen jeweils ein
Computer (12), eine Datenbank (15) und eine Uhr (13)
vorgesehen sind;
Übertragungseinrichtungen, um die Anzahl von Standorten
miteinander zu verbinden, um zwischen den Standorten Befehle
zu versenden;
wobei in den jeweiligen Datenbanken Daten zur
Verarbeitung gespeichert sind und wobei jeder Computer aufweist:
eine Transaktions-Erzeugungseinrichtung (1) zum
Erzeugen einer Transaktion, und
eine Transaktions-Verwaltungseinrichtung (3), um
festzustellen, welche Datenbanken Daten enthalten, die zur
Durchführung der Transaktion erforderlich sind, die von
der Transaktions-Erzeugungseinrichtung erzeugt wurde, und
welche Standorte an der Transaktion beteiligt sind;
gekennzeichnet durch:
eine Maximallaufzeit-Entscheidungseinrichtung (5) zum
Auswählen der maximalen Laufzeit, die erforderlich ist, um
an alle diese Standorte einen Sperrbefehl zu senden;
eine Sperrzeit-Entscheidungseinrichtung (7), um auf
Basis der maximalen Laufzeit und der aktuellen Uhrzeit eine
Sperrzeit zu bestimmen, wobei die
Transaktions-Verwaltungseinrichtung die Sperrzeit als den Sperrbefehl an die
Standorte versendet;
eine Ablaufsteuerungseinrichtung (9), um einen
Sperrbef ehl zu empfangen, der von der
Transaktions-Verwaltungseinrichtung eines anderen Standortes über die
Übertragungseinrichtungen versendet wurde; und
eine Sperraktivierungseinrichtung (11), um die
Ablaufsteuerungseinrichtung zu aktivieren, wenn die Sperrzeit des
empfangenen Sperrbefehls mit der aktuellen Uhrzeit
übereinstimmt, wodurch die Ablaufsteuerungseinrichtung in Reaktion
auf die Aktivierung durch die Sperraktivierungseinrichtung
die erforderlichen Daten in der Datenbank sperrt.
2. Datenbankverwaltungssystem nach Anspruch 1, bei dem die
Transaktions-verwaltungseinrichtung die Transaktion nach dem
Sperrbefehl an diese Standorte versendet.
3. Datenbankverwaltungssystem nach Anspruch 1 oder Anspruch 2,
das außerdem eine Transaktions-Durchführungseinrichtung (4)
aufweist, um die Transaktion durchzuführen, indem die
erforderlichen Daten in der Datenbank verwendet werden, nachdem
die erforderlichen Daten durch die
Ablaufsteuerungseinrichtung gesperrt sind.
4. Datenbankverwaltungssystem nach einem der vorhergehenden
Ansprüche, bei dem die Transaktions-Verwaltungseinrichtung
außerdem den Sperrbefehl an die Ablaufsteuerungseinrichtung
ihres eigenen Standorts sendet, wenn die Datenbank ihres
eigenen Standorts Daten enthält, die zur Durchführung der
Transaktion erforderlich sind.
5. Datenbankverwaltungssystem nach einem der vorhergehenden
Ansprüche, bei dem die Transaktions-Verwaltungseinrichtung
die Transaktion nach dem Sperrbefehl an die
Ablaufsteuerungseinrichtung ihres eigenen Standorts sendet, wenn die
Datenbank ihres eigenen Standorts Daten enthält, die zur
Durchführung der Transaktion erforderlich sind.
6. Datenbankverwaltungssystem nach Anspruch 1, bei dem die
Sperrzeit-Entscheidungseinrichtung die Sperrzeit bestimmt,
indem die aktuelle Uhrzeit ihres eigenen Standorts, die
maximale Laufzeit und eine Uhrzeitdifferenz zwischen ihrem
eigenen Standort und den anderen Standorten addiert werden.
7. Datenbankverwaltungssystem nach Anspruch 3, bei dem die
Transaktions-Durchführungseinrichtung die erforderlichen
Daten in der Datenbank freigibt, wenn die Transaktions-
Durchführungseinrichtung die Durchführung der Transaktion
beendet hat.
8. Datenbankverwaltungssystem nach Anspruch 7, das außerdem
eine Anzahl von Warteschlangen (14) aufweist, die zu
Datenelementen gehören, die jeweils in der Datenbank gespeichert
sind, um Sperrbefehle zeitweise in einem First-In/First-Out-
Modus zu speichern, wobei die Ablaufsteuerungseinrichtung
den Sperrbefehl entsprechend dem erforderlichen Datenelernent
in die Warteschlange gibt, wenn das erforderliche
Datenelement bereits in Reaktion auf einen vorhergehenden
Sperrbefehl gesperrt worden sind.
9. Datenbankverwaltungssystem nach Anspruch 8, bei dem die
Ablaufsteuerungseinrichtung die erforderlichen Daten gemäß
des in der Kopfzeile einer zugehorigen Warteschlange
gespeicherten Sperrbefehls sperrt, wenn die erforderlichen Daten
durch die Transaktions Durchführungseinrichtung freigegeben
worden sind.
10. Datenbankverwaltungssystem nach Anspruch 1, bei dem die
Ablaufsteuerungseinrichtung die erforderlichen Daten in
Reaktion auf den Sperrbefehl sofort sperrt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2157492A JPH0448350A (ja) | 1990-06-18 | 1990-06-18 | データベース管理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69128499D1 DE69128499D1 (de) | 1998-02-05 |
DE69128499T2 true DE69128499T2 (de) | 1998-04-16 |
Family
ID=15650873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69128499T Expired - Fee Related DE69128499T2 (de) | 1990-06-18 | 1991-06-12 | Datenbankverwaltungssystem |
Country Status (4)
Country | Link |
---|---|
US (1) | US5269020A (de) |
EP (1) | EP0462751B1 (de) |
JP (1) | JPH0448350A (de) |
DE (1) | DE69128499T2 (de) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0613083B1 (de) * | 1993-02-25 | 2002-01-23 | Sun Microsystems, Inc. | Transaktionsverwaltung in objektorientiertem System |
US5752026A (en) * | 1994-04-28 | 1998-05-12 | The United States Of America As Represented By The Secretary Of The Navy | Early commit locking computer database protocol |
US5787486A (en) * | 1995-12-15 | 1998-07-28 | International Business Machines Corporation | Bus protocol for locked cycle cache hit |
JP3094900B2 (ja) * | 1996-02-20 | 2000-10-03 | ヤマハ株式会社 | ネットワーク機器およびデータ送受信方法 |
US6125368A (en) * | 1997-02-28 | 2000-09-26 | Oracle Corporation | Fault-tolerant timestamp generation for multi-node parallel databases |
US6012060A (en) * | 1997-05-30 | 2000-01-04 | Oracle Corporation | Sharing, updating data blocks among multiple nodes in a distributed system |
US6345287B1 (en) * | 1997-11-26 | 2002-02-05 | International Business Machines Corporation | Gang scheduling for resource allocation in a cluster computing environment |
CA2369081C (en) * | 1999-04-30 | 2012-02-07 | X.Com Corporation | System and method for electronically exchanging value among distributed users |
US7720762B1 (en) | 2002-10-03 | 2010-05-18 | Gofigure Payments, Llc | System and method for electronically processing commercial transactions based upon threshold amount |
US7376583B1 (en) | 1999-08-10 | 2008-05-20 | Gofigure, L.L.C. | Device for making a transaction via a communications link |
WO2010064939A1 (en) | 2008-12-05 | 2010-06-10 | Business Intelligence Solutions Safe B.V. | Methods, apparatus and systems for data visualization and related applications |
US9235831B2 (en) | 2009-04-22 | 2016-01-12 | Gofigure Payments, Llc | Mobile payment systems and methods |
SG10201704581VA (en) * | 2009-12-10 | 2017-07-28 | Royal Bank Of Canada | Synchronized processing of data by networked computing resources |
US9652491B2 (en) * | 2013-04-15 | 2017-05-16 | International Business Machines Corporation | Out-of-order execution of strictly-ordered transactional workloads |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4096561A (en) * | 1976-10-04 | 1978-06-20 | Honeywell Information Systems Inc. | Apparatus for the multiple detection of interferences |
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
JPS5955553A (ja) * | 1982-09-22 | 1984-03-30 | Fujitsu Ltd | 分散デ−タベ−ス・システムにおけるタイムスタンプ同期方式 |
US4648036A (en) * | 1985-03-06 | 1987-03-03 | At&T Bell Laboratories | Method for controlling query and update processing in a database system |
US4819159A (en) * | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
US4914570A (en) * | 1986-09-15 | 1990-04-03 | Counterpoint Computers, Inc. | Process distribution and sharing system for multiple processor computer system |
US4887204A (en) * | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
US4881166A (en) * | 1987-07-24 | 1989-11-14 | Amoco Corporation | Method for consistent multidatabase transaction processing |
US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
DE68913629T2 (de) * | 1988-03-14 | 1994-06-16 | Unisys Corp | Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem. |
US5095421A (en) * | 1989-08-17 | 1992-03-10 | International Business Machines Corporation | Transaction processing facility within an operating system environment |
US5161227A (en) * | 1989-11-13 | 1992-11-03 | International Business Machines Corporation | Multilevel locking system and method |
US5168570A (en) * | 1989-12-29 | 1992-12-01 | Supercomputer Systems Limited Partnership | Method and apparatus for a multiple request toggling priority system |
US4989733A (en) * | 1990-05-21 | 1991-02-05 | Marc Patry | Ready-to-use medical trays |
-
1990
- 1990-06-18 JP JP2157492A patent/JPH0448350A/ja active Pending
-
1991
- 1991-06-12 DE DE69128499T patent/DE69128499T2/de not_active Expired - Fee Related
- 1991-06-12 EP EP91305318A patent/EP0462751B1/de not_active Expired - Lifetime
- 1991-06-17 US US07/714,905 patent/US5269020A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0448350A (ja) | 1992-02-18 |
US5269020A (en) | 1993-12-07 |
EP0462751B1 (de) | 1997-12-29 |
EP0462751A2 (de) | 1991-12-27 |
DE69128499D1 (de) | 1998-02-05 |
EP0462751A3 (en) | 1993-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69128499T2 (de) | Datenbankverwaltungssystem | |
DE69114763T2 (de) | Verteiltes Datenbanksystem. | |
DE69410489T2 (de) | Verfahren und gerät für die synchronisation und den ablauf von mehreren datenströmen und echtzeitaufgaben | |
DE69031233T2 (de) | Adaptive Arbeitsfolgeplanung für Mehrfachverarbeitungssysteme | |
DE69230462T2 (de) | Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln | |
DE69107506T2 (de) | Verfahren und Vorrichtung zur Gleichzeitigkeitssteuerung von gemeinsamen Datenaktualisierungen und Abfragen. | |
DE69522046T2 (de) | Verfahren zur hierarchischen Betriebsmittelverwaltung | |
DE2934971C2 (de) | Nach dem Fließbandprinzip arbeitender Zentralprozessor | |
DE69129678T2 (de) | Verfahren und System für eine konsequente Zeitfestlegung in verteilten Rechnerdatenbanken | |
DE69422743T2 (de) | Endlosschleife-Erkennungsgerät | |
DE69432746T2 (de) | Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems | |
EP0635792B1 (de) | Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen | |
DE68924061T2 (de) | Versionskontrolle in einem Datenverarbeitungssystem. | |
DE4216871A1 (de) | Ausfuehrungsordnen zum sicherstellen der serienherstellbarkeit verteilter transaktionen | |
DE4033336A1 (de) | Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung | |
DE2063197A1 (de) | Anordnung zur numerischen Steuerung von Werkzeugmaschinen | |
DE69021788T2 (de) | Anordnung und Verfahren zur Analyse von Fehlimpulssignalen in einem Logiksimulator. | |
DE60026068T2 (de) | System für externe transaktionen mit dynamischen prioritäten | |
DE3886756T2 (de) | Betriebsmittelzugriff für Multiprozessorrechnersystem. | |
DE3850447T2 (de) | Asynchrone Übertragungssysteme. | |
DE3855494T2 (de) | Abfragevorrichtung und -methode | |
DE2443579B2 (de) | Asynchroner Arbiter | |
DE2912073C2 (de) | ||
DE69622301T2 (de) | Konsistenzprüfung einer Instruktionsverarbeitungsfolge für ein Multiprozessorsystem | |
DE68903280T2 (de) | Vektorschlange in computern mit vektorregister. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
8339 | Ceased/non-payment of the annual fee |