DE69128499T2 - Datenbankverwaltungssystem - Google Patents

Datenbankverwaltungssystem

Info

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
Application number
DE69128499T
Other languages
English (en)
Other versions
DE69128499D1 (de
Inventor
Mitsuru Kakimoto
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of DE69128499D1 publication Critical patent/DE69128499D1/de
Application granted granted Critical
Publication of DE69128499T2 publication Critical patent/DE69128499T2/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/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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/99931Database or file accessing
    • Y10S707/99939Privileged 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.
DE69128499T 1990-06-18 1991-06-12 Datenbankverwaltungssystem Expired - Fee Related DE69128499T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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