DE69228297T2 - Verfahren und vorrichtung zur reduzierung der sperrzeit eines gemeinsamen puffers - Google Patents
Verfahren und vorrichtung zur reduzierung der sperrzeit eines gemeinsamen puffersInfo
- Publication number
- DE69228297T2 DE69228297T2 DE69228297T DE69228297T DE69228297T2 DE 69228297 T2 DE69228297 T2 DE 69228297T2 DE 69228297 T DE69228297 T DE 69228297T DE 69228297 T DE69228297 T DE 69228297T DE 69228297 T2 DE69228297 T2 DE 69228297T2
- Authority
- DE
- Germany
- Prior art keywords
- buffer
- contents
- shared buffer
- database
- shared
- 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
- 239000000872 buffer Substances 0.000 title claims description 232
- 238000000034 method Methods 0.000 title claims description 50
- 230000000903 blocking effect Effects 0.000 title 1
- 230000015654 memory Effects 0.000 claims description 66
- 230000008569 process Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 14
- 238000004904 shortening Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 description 17
- 101000648495 Homo sapiens Transportin-2 Proteins 0.000 description 9
- 101150088456 TRN1 gene Proteins 0.000 description 9
- 102100028747 Transportin-2 Human genes 0.000 description 9
- 238000011084 recovery Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 206010039203 Road traffic accident Diseases 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000002253 acid Substances 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die vorliegende Erfindung betrifft ein Verfahren und ein Gerät zum Verkürzen einer Verriegelungsperiode eines gemeinsam verwendeten Puffers und speziell ein Verfahren und ein Gerät zum Verkürzen einer Verriegelungsperiode eines gemeinsam verwendeten Puffers, der eingreift, wenn Anwendungsprogramme ein Datenbank-Managementsystem fragen auf eine Datenbasis oder Datenbank zuzugreifen. Ein Verkürzen der Verriegelungsperiode, während welcher die Inhalte des Puffers, der gemeinsam durch Transaktionen verwendet wird, in die Datenbank zurückgeschrieben werden, verkürzt eine Wartezeit der Transaktionen.
- Viele Datenverarbeitungssysteme, die auf Computern arbeiten, verwenden eine Datenbank. Die Datenbank besteht aus einer Datei oder einem Verzeichnis, welches verschiedene Daten enthält, die durch Anwender gemeinsam verwendet werden, und die durch ein Datenbank-Managementsystem, das aus einer Software besteht, gesteuert werden. Anwendungsprogramme, die auf dem Computer laufen, erzeugen Transaktionen entsprechend einer Anfrage bei dem Datenbank-Managementsystem auf die Datenbank Bezug zu nehmen oder diese auf den neuesten Stand zu bringen. Jede Transaktion dient als eine Ausführungseinheit, um auf die Datenbank Bezug zu nehmen, Daten von der Datenbank wieder aufzufinden und die Datenbank auf den neuesten Stand zu bringen.
- Wenn eine Transaktion auf die Datenbank für einige Daten über das Datenbank-Managementsystem zugreift, können die Daten bereits in einem Puffer vorhanden sein, der durch die Transaktionen gemeinsam verwendet wird und zwar aufgrund einer anderen Transaktion, die zu einem früheren Zeitpunkt auf die gleichen Daten zugegriffen hat, oder es müssen die Daten von der Datenbank zu dem gemeinsam verwendeten Puffer übertragen werden. Die in Frage stehende Transaktion nimmt dann Bezug auf die Inhalte des gemeinsam verwendeten Puffers oder bringt die Inhalte des gemeinsam verwendeten Puffers auf den neuesten Stand und zwar über das Datenbank-Managementsystem. Auf diese Weise werden Daten der Datenbank in einer Platte als auch in wenigstens einem Puffer gespeichert, der durch die Transaktionen gemeinsam verwendet wird. Wenn einige Daten fortlaufend für eine lange Zeit durch die Transaktionen verwendet werden, bleiben die Daten immer in dem gemeinsam verwendeten Puffer.
- Der gemeinsam verwendete Puffer ist einem flüchtigen Speicher zugeordnet, der mit hoher Geschwindigkeit arbeitet. Wenn ein Systemabsturz auftritt bevor ein Ergebnis einer Transaktion, die auf den gemeinsam verwendeten Puffer einwirkt, zurück in die Datenbank auf der Platte geschrieben wurde, gehen die Inhalte des gemeinsam verwendeten Puffers verloren. Um einen solchen Verlust zu vermeiden, müssen die Inhalte des gemeinsam verwendeten Puffers als ein Post- Update-log in einem nicht flüchtigen Speicher abgespeichert werden. Gemäß dem Post-Update-log und den Daten auf der Platte werden die Inhalte des gemeinsam verwendeten Puffers wiedergewonnen, wenn sie verloren wurden. Die Zeit, die für die Wiedergewinnung erforderlich ist, ist proportional zu dem Volumen der Post-Update-log. Die Wiederherstellungszeit wird verkürzt, wenn das Volumen der Post-Update-log kleiner gemacht wird. Um das Volumen der Post-Update-log zu reduzieren, müssen die Inhalte des gemeinsam verwendeten Puffers periodisch zurück zu der Datenbank auf der Platte geschrieben werden. Eine Periode, um die Inhalte des gemeinsam verwendeten Puffers zurück auf die Datenbank auf der Platte zu schreiben, bildet eine Verriegelungsperiode des gemeinsam verwendeten Puffers.
- Während der Verriegelungsperiode des Puffers, der durch die Transaktionen gemeinsam verwendet wird, werden die Transaktionen in eine Warteschlange gebracht.
- Die Vorliegende Erfindung betrifft ein Verfahren und ein Gerät zum Verkürzen solch einer Verriegelungsperiode eines gemeinsam verwendeten Puffers auf eine Speicher-Kopierperiode.
- Ein Verfahren zum Verkürzen einer Verriegelungsperiode eines gemeinsam verwendeten Puffers in einem Datenverarbeitungssystem involviert einen Schritt, um einen Kopien- Speicher zu sichern, der verwendet wird, wenn die Inhalte des gemeinsam verwendeten Puffers nicht flüchtig gemacht werden;
- einen Schritt gemäß einer zeitweiligen Verriegelung des gemeinsam verwendeten Puffers;
- einen Schritt gemäß einem Kopieren der Inhalte des gemeinsam verwendeten Puffers in den Kopien-Speicher;
- einen Schritt gemäß einem Entriegeln des gemeinsam verwendeten Puffers nach der Vervollständigung des Kopiervorganges in den Kopien-Speicher;
- einen Schritt gemäß einem Kopiervorgang der log-Daten in dem log-Puffer in die log-Datei, um die log-Daten nicht flüchtig zu machen bevor der gemeinsam verwendete Puffer auf den neuesten Stand gebracht wird, und
- einen Schritt gemäß einem Nichtflüchtigmachen der Inhalte des Kopien-Speichers;
- wobei der gemeinsam verwendete Puffer verriegelt wird bevor die Inhalte desselben in den Kopien-Speicher kopiert werden und entriegelt wird nach der Vervollständigung des Kopiervorgangs und bevor die Nichtflüchtigmachung der Inhalte des Kopien-Speichers stattgefunden hat.
- Das Verfahren umfaßt in bevorzugter Weise ferner einen Schritt gemäß einem Bestimmungsvorgang, ob der gemeinsam verwendete Puffe, der nicht flüchtig zu machen ist, auf den neuesten Stand gebracht wird oder nicht. Wenn der gemeinsam verwendete Puffer nicht auf den neuesten Stand gebracht wird, werden die Inhalte des gemeinsam verwendeten Puffers zurückgeschrieben in eine Datenbasis und werden nicht flüchtig gemacht ohne eine Sicherung in dem Kopien-Speicher und ohne ein Kopieren der Inhalte des gemeinsam verwendeten Puffers in den Kopien-Speicher.
- Ein Datenverarbeitungssystem gemäß einem anderen Aspekt der vorliegenden Erfindung umfaßt ein Datenbasis-Managementsystem zum Zugreifen auf eine Datenbasis und zum Managen der Datenbasis, umfaßt wenigstens einen Puffer, der durch die Transaktion gemeinsam verwendet wird, einen log-Puffer, um Pre-und Post-Update-logs zu speichern, eine log-Datei zum Speichern der Pre-und Post-Update-logs, und umfaßt die Datenbasis zum Speichern der Daten, wobei das Datenverarbeitungssystem folgendes aufweist:
- einen Kopien-Speicher, um die Inhalte des gemeinsam verwendeten Puffers zeitweilig zu speichern; und
- einen Ersetzungs-Controller, um die Inhalte des gemeinsam verwendeten Puffers in den Kopien-Speicher zu kopieren, eine Prozeß-Wählvorrichtung, um zu bestimmen, ob der gemeinsam verwendete Puffer auf den neuesten Stand gebracht wird oder nicht, einen Exklusiv-Controller, um den gemeinsam verwende ten Puffer exklusiv zu steuern, und einen log-Controller, um die Pre-und Post-Update-logs zu sichern,
- wobei der gemeinsam verwendete Puffer verriegelt wird, bevor die Inhalte desselben in den Kopienspeicher kopiert werden, und der gemeinsam verwendete Puffer entriegelt wird und zwar nach der Vervollständigung des Kopiervorganges und bevor die Inhalte des Kopienspeichers nicht flüchtig gemacht werden, um eine Verriegelungsperiode des gemeinsam verwendeten Puffes zu verkürzen.
- Wenn der gemeinsam verwendete Puffer nicht auf den neuesten Stand gebracht wird, so schreibt die Prozeß-Wählvorrichtung die Inhalte des gemeinsam verwendeten Puffers in die Datenbasis und macht diese nicht flüchtig und zwar ohne eine Sicherung des Kopienspeichers und ohne einen Kopiervorgang der Inhalte des gemeinsam verwendeten Puffers in den Kopienspeicher.
- Fig. 1 erläutert die Steuerung des gemeinsam verwendeten Puffers gemäß einem Stand der Technik;
- Fig. 2 erläutert den Einschreibvorgang von gepufferten Daten zu einer Datenbasis gemäß dem Stand der Technik;
- Fig. 3 erläutert zeitweilige Änderungen in den Transaktionen gemäß dem Stand der Technik;
- Fig. 4 zeigt eine grundlegende Anordnung der vorliegenden Erfindung;
- Fig. 5 zeigt einen Fluß von Prozessen gemäß einer Ausführungsform der vorliegenden Erfindung;
- Fig. 6 zeigt das Einschreiben von gepufferten Daten in eine Datenbasis gemäß der Ausführungsform;
- Fig. 7 erläutert zeitweilige Änderungen in den Transaktionen gemäß der Ausführungsform; und
- Fig. 8 vergleicht die Wirkungen der vorliegenden Erfindung mit denjenigen des Standes der Technik.
- Bevor Ausführungsformen der vorliegenden Erfindung erläutert werden, wird ein Stand der Technik und die damit auftretenden Probleme erläutert.
- Fig. 1 erläutert die Steuerung von gemeinsam verwendeten Puffern gemäß dem Stand der Technik. Anwendungsprogramme AP1 und AP2 erzeugen Transaktionen, um Übertragungen zu einer Datenbasis 20 vorzunehmen und diese auf den neuesten Stand zu bringen. Ein Datenbasis-Managementsystem 11 besteht aus einer Software zum Zugreifen auf die und zum Managen der Datenbasis 20. Ein Speicher MEM ist in einem Datenverarbeitungssystem angeordnet. Puffer B1 und B2 werden durch die Transaktionen gemeinsam verwendet. Ein log-Puffer 16 speichert Pre-und Post-Update-logs. Eine log-Datei 19 speichert die Inhalte des log-Puffers 16.
- Das Anwendungsprogramm AP1 findet Daten von der Datenbasis 20 wieder auf und zwar über das Datenbasis-Managementsystem 11. Das Anwendungsprogramm AP2 findet Daten von der Datenbasis 20 über das System 11 auf und erneuert die Daten. Wenn das Anwendungsprogramm AP1 das Datenbasis- Managementsystem 11 mit einem Befehl versieht, um nach Daten zu suchen bzw. Daten wieder aufzufinden (einer Aufzeichnung oder einer Spalte) überträgt das Datenbasis-Managementsystem 11 die erforderlichen Daten von dem gemeinsam verwendeten Puffer B1 zu dem Anwendungsprogramm AP1, wenn der Puffer B1 eine Seite (Block) hält, die bzw. der die erforderlichen Daten enthält. Wenn der Puffer B1 die Seite nicht enthält, ruft das Datenbasis-Managementsystem 11 die Seite von der Datenbasis 20 ab, setzt diese in den Puffer B1 und überträgt die erforderlichen Daten von dem Puffer B1 zu dem Anwendungsprogramm AP1.
- Wenn das Anwendungsprogramm AP2 das Datenbasis- Managementsystem 11 mit eine Befehl versieht, um Daten von der gleichen Seite abzurufen wie diejenigen, die durch das Anwendungsprogramm AP1 angefragt wurden, überträgt das Datenbasis-Managementsystem 11 die erforderlichen Daten, die bereits von der Datenbasis 20 zu dem gemeinsam verwendeten Puffer B1 übertragen worden sind, von dem Puffer B1 zu dem Anwendungsprogramm AB2 ohne wiederholt nach den Daten in der Datenbasis 20 zu suchen.
- Es wird häufig eine Seitenzahl als ein Schlüssel verwendet, um eine entsprechende Seite in einem Puffer zu verriegeln, der durch die Transaktionen gemeinsam verwendet wird. Die verriegelte Seite ermöglicht es den Transaktionen, um gleichzeitig auf Daten Bezug zu nehmen, die darin gespeichert sind, hindert jedoch die Transaktionen daran gleichzeitig die Seite auf den neuesten Stand zu bringen. Wenn beispielsweise das Anwendungsprogramm AP2 einen Befehl erzeugt, um eine Seite in dem gemeinsam verwendeten Puffer B2 auf den neuesten Stand zu bringen, während die gleiche Seite gemäß einer Seitenzahl auf den neuesten Stand gebracht wird und verriegelt wird, die durch das Anwendungsprogramm AP1 vorgesehen wurde, so muß eine Transaktion, die durch den Erneuerungsbefehl des Anwendungsprogramms AP2 verursacht wird, so lange warten, bis die Seite entriegelt wird.
- Wenn die Transaktion des Anwendungsprogramms AP1 einen Fortsetzungspunkt erreicht, entriegelt das Datenbasis- Managementsystem 11 die Seite. Danach wird die Seite in dem gemeinsam verwendeten Puffer B2 erneut durch die Erneuerungstransaktion des Anwendungsprogramms AP2 verriegelt und wird auf den neuesten Stand gebracht.
- Der gemeinsam verwendet Puffer kann Subseite für Subseite oder Aufzeichnung für Aufzeichnung anstelle von Seite für Seite blockiert werden. In diesem Fall können die Anwendungsprogramme AP1 und AP2 gleichzeitig die Subseiten oder Auf zeichnungen in dem gemeinsam verwendeten Puffer auf den neuesten Stand bringen.
- Die Inhalte (Seiten) des gemeinsam verwendeten Puffers werden zurück auf die Platte (Datenbasis 20) bei einer vorbestimmten Zeitsteuerung geschrieben. Dann wird das Halten von log-Daten, die durch den letzten Schreibvorgang oder Lesevorgang auf den neuesten Stand gebracht wurden, nicht dafür erforderlich, um die Inhalte des Puffers wieder zu gewinnen, selbst wenn sie verloren gehen. Der log-Puffer 16 speichert zeitweilig die Pre-und Post-Update-logs der gemeinsam verwendeten Puffer B1 und B2. Die Inhalte des log-Puffers 16 werden dadurch nicht flüchtig gemacht, indem diese in der log-Datei 19 mit einer vorbestimmten Zeitsteuerung gesichert werden.
- Fig. 2 erläutert eine Rückschreiboperation gemäß dem Stand der Technik. Es sind zwei Transaktionen TRN1 und TRN2 vorhanden. Das Datenbasis-Managementsystem 11 umfaßt einen Verriegelungs-Controller 70. Ein Puffer, der durch die Transaktionen gemeinsam verwendet wird, besteht aus einer Bit-Map 30. Die Datenbasis 20 enthält Überlauf-Seiten 31. Eine Datenbasis 20' wird dazu verwendet, um die Inhalte des gemeinsam verwendeten Puffers nicht flüchtig zu machen. Die Bit-Map 30 steuert die Überlauf-Seiten 31. Beispielsweise ist irgendein Bit der Bit-Map 30 EIN, wenn sich eine entsprechende Seite der Überlauf-Seiten 31 in Verwendung befindet, und ist AUS, wenn die entsprechende Seite nicht verwendet wird. Die Bit- Map 30 wird durch eine Transaktion auf den neuesten Stand gebracht, welche die Überlauf-Seiten 31 verwendet oder auch nicht verwendet.
- Immer wenn ein Bit der Bit-Map 30 auf den neuesten Stand gebracht wird, wird ein log der Bit-Map in einer log-Datei oder in einem nicht flüchtigen Speicher angesammelt. Wenn ein Systemabsturz auftritt, wird die Bit-Map 30 gemäß den Post- Update-logs wieder hergestellt. Die Menge an logs muß so klein wie möglich sein, um die Kosten eines Wiederherstellungssystems zu reduzieren. Um die Quantität der Post-Updatelogs zu reduzieren, die zum Wiederherstellen eines gemeinsam verwendeten Puffers verwendet werden, nachdem die Inhalte desselben verloren gegangen sind, wird die Bit-Map 30 in der Datenbasis 20' gesichert, die in einer Platte realisiert sein kann.
- Die Bit-Map, welche die Überlauf-Seiten managt, wird durch die Transaktionen häufig zugegriffen und sie wird daher auch als Überhitzungspunkt (hot spot) bezeichnet. Wenn einmal die Bit-Map von der Datenbasis in den gemeinsam verwendeten Puffer gelesen wurde, wird sie fortlaufend zugegriffen und wird niemals in die Platte (Datenbasis 20') zurückgeschrieben, wenn sie nicht zwangsweise in der Datenbasis 20' gesichert wird. Um die Quantität der Post-Update-logs zu reduzieren, die erforderlich sind, um die Bit-Map wieder herzustellen und um die Kosten des Wiederherstellungssystems zu reduzieren, muß die Bit-Map in dem gemeinsam verwendeten Puffer zwangsweise in der Datenbasis 20' gesichert werden.
- Fig. 3 zeigt zeitweilige Änderungen in den Transaktionen gemäß dem Stand der Technik. Wenn die Bit-Map 30 von Fig. 2 zwangsweise in die Datenbasis 20' zurückgeschrieben wird, werden die Transaktionen TRN1 und TRN2, die dabei sind, die Überlaufseiten 31 zu erhalten, in einer Warteschlange aufgereiht, bis die Bit-Map 30 vollständig in die Datenbasis 20' zurückgeschrieben worden ist. Wenn nämlich einmal die Rückschreiboperation der Bit-Map 30 gestartet hat, werden die Erneuerungs-Anforderungen der Transaktionen TRN1 und TRN2 in eine Warteschlange gebracht, bis die Rückschreiboperation endet.
- Wenn eine Transaktion den Überhitzungspunkt (hot spot) wie die Bit-Map 30 des gemeinsam verwendeten Puffers auf den neuesten Stand bringt während die Inhalte des Puffers zwangs weise zurück zur Datenbasis geschrieben werden, so werden Daten in der Mitte des Erneuerungsvorganges in der Datenbasis gesichert. Um die Inhalte des gemeinsam verwendeten Puffers wieder herzustellen, die aufgrund eines Systemabsturzes verloren gegangen sind, ist es erforderlich ein spezielles log- System zu verwenden, welches eine eingeschränkte Konstruktion und idempotente Charakteristika verwendet.
- Solch ein log-System kann alte logs für verlorene logs ersetzen.
- Die vorliegende Erfindung basiert jedoch auf einem Standard-log-System, welches einen Verlust von Pre-und Post- Update-logs nicht zuläßt. Die vorlegende Erfindung führt daher getrennt den Rückschreibvorgang der Inhalte eines gemeinsam verwendeten Puffers und den Sicherungsvorgang einer log des Puffers durch. Es werden nämlich bei der vorliegenden Erfindung alle logs eines gemeinsam verwendeten Puffers gesichert bevor eine Rückschreiboperation gestartet wird und es werden Transaktionen gestoppt, die den gemeinsam verwendeten Puffer auf den neuesten Stand bringen und zwar während der Rückschreiboperation.
- Wie zuvor erläutert wurde, müssen Transaktionen, die einen gemeinsam verwendeten Puffer auf den neuesten Stand bringen, in einen Wartezustand gebracht werden während die Inhalte des Puffers zu einer Datenbasis zurückgeschrieben werden. Dies führt zu einer Verlängerung einer Ansprechzeit der Transaktionen. Eine Ansprechzeit einer Transaktion besteht aus einer Summe aus einer ursprünglichen Ansprechzeit der Transaktion, einer Rückschreibzeit eines gemeinsam verwendeten Puffers und einer Schreibzeit eines Pre-Update-logs. Wenn nämlich die Inhalte eines gemeinsam verwendeten Puffers, der durch eine Transaktion auf den neuesten Stand gebracht wird, zu einer Datenbasis zurückgeschrieben werden, so besteht die Ansprechzeit der Transaktion aus einer Summe aus der ur sprünglichen Ansprechzeit der Transaktion, einer Zeit, die erforderlich ist, um die Inhalte des Puffers zu der Datenbasis zurückzuschreiben, und aus einer Zeit, die erforderlich ist, um ein Pre-Update-log des Puffers zu sichern, welches durch eine momentan aktive Transaktion erneuert wurde, und zwar in eine log-Datei.
- Eine Transaktion, die sich in einem Wartezustand befindet und zwar aufgrund eines verriegelten Überhitzungspunktes (hot spot) in einem gemeinsam verwendeten Puffer kann Ressourcen involvieren, anders als die des gemeinsam verwendeten Puffers. Es kann nämlich die Transaktion andere Seiten einer Datenbasis involvieren und auch Speicher zusätzlich zu dem Überhitzungspunkt, die zwangsweise zu der Datenbasis zurückgeschrieben werden. Dies bedeutet, daß, während die Transaktion sich in dem Wartezustand befindet, andere Transaktionen hinter der in Frage stehenden Transaktion in eine Warteschlange eingereiht werden, bis die Ressourcen, die mit der in Frage stehenden Transaktion in Beziehung stehen, freigegeben werden. Die in einer Warteschlange aufgereihten Transaktionen sind unfähig irgendeine Ressource zu verwenden. Selbst ein System, welches eine Kapazität von MIPS (Millionen Befehle pro Sekunde) bzw. Gütegrad besitzt, ist unfähig irgendeine Ressource zu verwenden, bis der erste Wartezustand aufgehoben wird. Diese Situation gleicht einem Verkehrsstau und wird als ein Geleitphänomen bezeichnet. Andere herkömmliche Techniken zum Steuern von Datenbasis-Puffern enthalten ein Schatten- Seitenverfahren (Shadow paging method) und ein Multiversion- Gleichlauf-Steuerverfahren. Diese Verfahren gleichen der vorliegenden Erfindung dahingehend, daß sie die Inhalte eines gemeinsam verwendeten Puffers kopieren. Jedoch unterscheiden sie sich wesentlich von der vorliegenden Erfindung, was im folgenden erläutert werden soll.
- Das Schatten-Seiten-Verfahren verriegelt einen gemeinsam verwendeten Puffer Seite um Seite und, wenn eine Transaktion eine gegebene Seite auf den neuesten Stand bringt, erlaubt es keiner anderen Transaktion die verriegelte Seite mit zu verwenden. Bevor die erneuernde Transaktion einen Fortschreitungspunkt erreicht, werden die Inhalte der Seite in der Mitte des Erneuerungsvorganges zurück zu einer nicht benutzten Seite geschrieben, die einer Platte (einer Datenbasis) zugeordnet ist. Die Datenbasis enthält Seiten-Daten und eine Tabelle, welche Beziehungen zwischen den Seitenzahlen und den Stellen auf der Platte anzeigt. Wenn die Inhalte der auf den neuesten Stand gebrachten Seite vollständig zurück zu der zugeordneten Seite auf der Platte geschrieben wurden, wird eine originale Seite zu der zugeordneten Seite in der Tabelle verschoben und dann wird der Transaktion ein Zugeständnis gemacht. Ein Rückrollvorgang wird einfach dadurch erreicht, indem die zugeordnet Seite gelöscht wird. Dieses Schatten- Seitenverfahren ähnelt der vorliegenden Erfindung dahingehend, daß es einen Bereich zum Speichern der zurückgeschriebenen Daten zuweist. Dieses Verfahren weist jedoch den Bereich auf der Platte zu, verhindert die gemeinsame Benutzung einer Seite, die auf den neuesten Stand gebracht wird, und berücksichtigt niemals eine Verbesserung in der Rückschreib- Performance.
- Das Multiversion-Gleichlauf-Steuerverfahren (multiversion concurrency control method) wird nun beschrieben. Dieses Verfahren garantiert nicht eine Sequenz von Schritten. Eine erneuernde Transaktion umfaßt eine exklusive Kopie von Daten, die zu erneuern sind, und setzt andere Transaktionen in einen Wartezustand, bis sie einen Fortschreitungspunkt erreicht. Den Transaktionen wird es erlaubt, gleichzeitig auf eine übergebene oder übertragene letzte Kopie Bezug zu nehmen, wann immer eine erneuernde Transaktion einen Fortschreitungs punkt (commit point) erreicht, wird auf eine neue Version Bezug genommen. In der Mitte der Transaktion existiert keine schmutzige Kopie. Die Reihenfolge der Übertragung und Bezugnahme kann eingeschränkt sein, um verschiedene Ebenen der Integritäten zu erzielen. Dieses Verfahren ähnelt der vorliegenden Erfindung dahingehend, daß es eine Kopie eines gemeinsam verwendeten Puffers anfertigt. Dieses Verfahren löst jedoch niemals die Probleme, die sich auf die Zwangs-Rückschreiboperation beziehen. Die vorliegende Erfindung ist wirksam für das Multiversions-Verfahren und ein herkömmliches striktes exklusives Steuerverfahren.
- Eine Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren und ein Gerät zum Verkürzen einer Verriegelungsperiode zu schaffen, während der andere Transaktionen in eine Warteschlange gebracht werden und in der die Inhalte eines Puffers, der durch die Transaktionen gemeinsam verwendet wird, zu einer Datenbasis zurückgeschrieben werden.
- Die vorliegende Erfindung verbessert eine Ansprechzeit einer Transaktion, die einen Puffer auf den neuesten Stand bringt. Wenn vorausgesagt wird, daß keine Transaktion auftreten wird, die den Puffer auf den neuesten Stand bringt, so läßt die vorliegende Erfindung den zeitweiligen Kopiervorgang der Inhalte des Puffers weg, um die Ansprechzeit zu verbessern. Dies führt zu einer weiteren Verbesserung eines Systemdurchsatzes gegenüber einem Standardfall, bei dem die zeitweilige Kopieroperation durchgeführt wird.
- Fig. 4 zeigt eine grundlegende Anordnung der vorliegenden Erfindung. Diese Anordnung umfaßt ein Datenverarbeitungssystem 10 mit einer CPU und mit Speichern. Ein Datenbasis- Managementsystem 11 besteht aus einer Software, um auf eine Datenbasis zuzugreifen und diese zu managen. Das Datenbasis- Managementsystem 11 besitzt einen Ersetzungs-Controller 12, um die Inhalte eines in Rede stehenden Puffers zu kopieren, um eine Verriegelungsperiode des Puffers zu verkürzen, eine Prozeß-Wählvorrichtung 13, um zu bestimmen, ob der Puffer auf den neuesten Stand gebracht wird oder nicht, einen Exklusiv- Controller 14 zum Steuern des Puffers und einen log- Controller 15 zum Sichern von Pre-und Post-Update-logs. Ein log-Puffer 16 speichert die Pre-und Post-Update-logs. Eine Gruppe von Puffern 17 wird durch die Transaktionen gemeinsam verwendet. Ein Kopienspeicher 18 speichert zeitweilig die Inhalte von einem der gemeinsam verwendeten Puffer 17. Eine log-Datei 19 ist in einer Platte oder in einem nicht flüchtigen Speicher realisiert. Die Datenbasis 20 ist in einer Platte oder in einem nicht flüchtigen Speicher realisiert.
- Gemäß der vorliegenden Erfindung sind die Puffer 17 nicht auf diejenigen beschränkt, die unten aufgeführt sind, sondern können von irgendeiner anderen Art sein. Diese Puffer werden durch eine Vielzahl von Transaktionen gemeinsam verwendet und speichern Daten in einer nicht flüchtigen Weise.
- Ein Verfahren zum Verkürzen der Verriegelungsperiode von irgendeinem der gemeinsam verwendeten Puffer gemäß der vorliegenden Erfindung ergibt sich aus den anhängenden Ansprüchen.
- Dieses Verfahren enthält auch einen Sachritt zum voraussagen, ob der in Betracht stehende Puffer, der nicht flüchtig zu machen ist, auf den neuesten Stand gebracht wird oder nicht, d. h. ob irgendeine Transaktion einen Teil in einer Datenbasis entsprechend dem in Betracht stehenden Puffer auf den neuesten Stand bringt oder nicht.
- Wenn der in Betracht stehende Puffer nicht auf den neuesten Stand gebracht wird, so werden die Inhalte des betreffenden Puffers in die Datenbasis zurückgeschrieben und werden nicht flüchtig gemacht und zwar ohne Sicherung des Kopienspeichers und ohne die Inhalte des in Betracht stehenden Puffers in den Kopienspeicher zu kopieren.
- Diese Schritte werden durch das Datenbasis-Managementsystem 11 gemanagt. Jeder der Schritte wird in Einzelheiten erläutert. Wenn die Inhalte von einem betreffenden einen der gemeinsam verwendeten Puffer 17 nicht flüchtig gemacht werden, indem sie zu der Datenbasis 20 zurückgeschrieben werden, so sichert der Ersetzungs-Controller 12 den Kopienspeicher 18. Der Kopienspeicher 18 muß die gleiche Größe besitzen wie der in Betracht stehende Puffer 17, der in Fig. 4 als strichlierter Bereich herausgegriffen ist. Der Ersetzungs- Controller 12 fragt den Exklusiv-Controller 14 den in Betracht stehenden Puffer 17 zu verriegeln. Der Verriegelungsvorgang serialisiert eine Periode, in der die Transaktion vollständig den in Betracht stehenden Puffer auf den neuesten Stand bringt, und eine Periode, in der die Inhalte des in Betracht stehenden Puffers nicht flüchtig gemacht werden und in welcher die erforderliche Kommunikation durchgeführt wird.
- Dieser Verriegelungsvorgang besteht nicht aus einer Transaktionsverriegelung, sondern dient dazu ein gleichzeitiges Ausführen einer Puffer-Steuerfunktion eines Zugriff- Moduls zum Zugreifen auf die Datenbasis zu verhindern und um eine Rückschreibfunktion der Inhalte des in Betracht stehenden Puffers zu der Platte (Datenbasis) zu verhindern. Andererseits besteht die Transaktionsverriegelung aus einer Transaktion-Teile-Verrieglung (transaction granule lock), welche direkt die ACID-Charakteristika einer Transaktion garantiert. Beispielsweise verwendet die Transaktionsverriegelung eine logische Seite oder eine Aufzeichnungszahl als einen Schlüssel, um eine entsprechende Seite oder eine Aufzeichnung in einer Datenbasis zu verriegeln. Bevor nämlich auf die Inhalte einer gegebenen Seite Bezug genommen wird oder diese auf den neuesten Stand gebracht wird oder auf eine Aufzeichnung der Datenbasis Bezug genommen wird bzw. diese auf den neuesten Stand gebracht wird, verriegelt eine Trans aktion die Inhalte der Seite oder der Aufzeichnung gemäß einer logischen Zahl der Seite oder der Aufzeichnung. Die Seite oder die Aufzeichnung wird entriegelt nachdem die Transaktion einen Foranschreitungspunkt (commit point) erreicht hat.
- Nachdem der Exklusiv-Controller 14 den in Rede stehenden Puffer 17 blockiert hat, werden die Inhalte des Puffers in den Kopienspeicher 18 kopiert. Danach entriegelt der Exklusiv-Controller 14 den in Rede stehenden Puffer 17.
- Es werden die Pre-und Post-Update-logs nicht flüchtig gemacht, wenn dies erforderlich ist. Die Inhalte des Kopienspeichers 18 werden in die Datenbasis 20 geschrieben und werden nicht flüchtig gemacht. Der Kopienspeicher 18 wird dann freigegeben.
- Wie zuvor erläutert wurde wird gemäß der vorliegenden Erfindung vorausgesagt, ob der in Rede stehende Puffer auf den neuesten Stand gebracht wird oder nicht, d. h. ob irgendeine Transaktion einen Teil der Datenbasis entsprechend dem betreffenden Puffer auf den neuesten Stand bringt oder nicht. Beispielsweise wird der angesprochene Puffer während einer Stapel-Wiederauffindoperation oder während einer Breitbereich-Gemeinsamblockierung niemals auf den neuesten Stand gebracht. Wenn vorausgesagt wird, daß der in Rede stehende Puffer nicht auf den neuesten Stand gebracht wird, so werden die Inhalte des betreffenden Puffers in die Datenbasis zurückgeschrieben und werden nicht flüchtig gemacht ohne eine Sicherung des Kopienspeichers und ohne die Inhalte des Puffers in den Kopienspeicher zu kopieren.
- Der Vorhersageprozeß soll nun in Einzelheiten erläutert werden. In Fig. 4 umfaßt der Ersetzungs-Controller 12 die Prozeß-Wählvorrichtung 13. Die Prozeß-Wählvorrichtung 13 sagt voraus, ob ein angesprochener Puffer der gemeinsam verwendeten Puffer 17 auf den neuesten Stand gebracht wird oder nicht. Diese Vorhersage wird mit Verwendung der Exklusiv- Steuerung einer Transaktion-Verriegelung realisiert. Es wird nämlich die Vorhersage dadurch durchgeführt, indem nachgeschaut wird, ob der in Rede stehende Puffer 17 gegenüber einer Transaktion unter einem nicht gemeinsamen Modus verriegelt ist oder nicht indem nachgeschaut wird, ob ein Verriegelungsbedarf des nicht gemeinsamen Modus existiert oder nicht.
- Wenn vorausgesagt wird, daß der angesprochene Puffer auf den neuesten Stand gebracht wird, so wird der Kopienspeicher 18 gesichert, der angesprochene Puffer wird zeitweilig verriegelt und es werden die Inhalte des angesprochenen Puffers in den Kopienspeicher kopiert. Wenn vorausgesagt wird, daß der in Rede stehende Puffer nicht auf den neuesten Stand gebracht wird, werden die Inhalte des in Rede stehenden Puffers nicht flüchtig gemacht ohne Sicherung des Kopienspeichers 18 und ohne die Inhalte des in Rede stehenden Puffers in den Kopienspeicher zu kopieren.
- In Fig. 4 geben die Bezugszeichen (1) bis (9) die Schritte an, die in dem Datenverarbeitungssystem durchgeführt werden. Es wird jeder dieser Schritte erläutert. Die in der folgenden Erläuterung verwendete Numerierung entspricht den Schrittnummern, die in der Figur gezeigt sind.
- (1) Ein strichlierter einer der gemeinsam verwendeten Puffer 17 wird nicht flüchtig gemacht. Die Prozeß-Wählvorrichtung 13 in dem Ersetzungs-Controller 12 sagt voraus, ob der angesprochene Puffer 17 auf den neuesten Stand gebracht wird oder nicht. Wenn dieser nicht auf den neuesten Stand gebracht wird, wird der Schritt (2) ausgeführt und, wenn er auf den neuesten Stand gebracht wird, wird der Schritt (3) durchgeführt. Wie in dem unteren Teil der Figur angezeigt ist, ist der Schritt (1) optional. Es werden nämlich die Inhalte des angesprochenen Puffers immer nicht flüchtig gemacht und zwar durch den Kopienspeicher 18 ohne eine Erneuerungs-Vorhersage. Alternativ können die Inhalte des angesprochenen Puffers ge mäß einem Ergebnis der Erneuerungs-Vorhersage nicht flüchtig gemacht werden.
- (2) Der Exklusiv-Controller 14 verriegelt zeitweilig den in Rede stehenden Puffer 17. Der log-Controller 15 schreibt ein Pre-Update-log in die log-Datei 19 über den log-Puffer 16 ein. Der log-Puffer 16 besteht aus einem nicht flüchtigen Speicher zum Speichern der Pre-und Post-Update-logs. Die Inhalte des in Rede stehenden Puffers 17 werden zu der Datenbasis 20 geschrieben und werden nicht flüchtig gemacht. Der Exklusiv-Controller 14 entriegelt den in Rede stehenden Puffer 17, um den Prozeß zu vervollständigen.
- (3) Wenn bestimmt wird, daß der in Rede stehende Puffer 17 auf den neuesten Stand gebracht wird, wird der Kopienspeicher 18 gesichert. Die Größe des Kopienspeichers 18 muß gleich sein oder größer sein als diejenige des in Rede stehenden Puffers 17 (der strichlierte Bereich in der Figur).
- (4) Der Exklusiv-Controller 14 verriegelt den in Rede stehenden Puffer 17.
- (5) Die Inhalte des in Rede stehenden Puffers 17 werden in den Kopienspeicher 18 kopiert.
- (6) Nach dem Kopiervorgang entriegelt der Exklusiv- Controller 14 den in Rede stehenden Puffer 17.
- (7) Das Pre-Update-log in dem log-Puffer 16 wird in der log-Datei 19 gespeichert und wird nicht flüchtig gemacht.
- (8) Die Inhalte des Kopienspeichers 18 werden in die Datenbasis 20 geschrieben und werden nicht flüchtig gemacht.
- (9) Der gesicherte Bereich des Kopienspeichers 18 wird nach der Vervollständigung der Nichtflüchtigmachung freigegeben.
- Auf diese Weise wird bei dem Schritt (4) der in Rede stehende Puffer 17 verriegelt und bei dem Schritt (5) werden die Inhalte des in Rede stehenden Puffers 17 (der strichlierte Bereich) in den Kopienspeicher 18 kopiert. Unmittelbar nach der Vervollständigung des Kopiervorganges wird bei dem Schritt (6) der in Rede stehende Puffer 17 entriegelt. Demzufolge ist die Verriegelungsperiode des in Rede stehenden Puffers 17 sehr kurz, wodurch eine Ansprechzeit einer Transaktion verbessert wird, die damit befaßt ist den in Rede stehenden Puffer 17 auf den neuesten Stand zu bringen. Wie zuvor erläutert wurde, besteht eine Ansprechzeit einer Transaktion aus einer Summe aus einer ursprünglichen Ansprechzeit der Transaktion, einer Zeit, um die Inhalte eines gemeinsam verwendeten Puffers zu einer Datenbasis zurückzuschreiben, und aus einer Zeit, um ein Pre-Update-log der Transaktion, die den in Rede stehenden Puffer auf den neuesten Stand bringt und nun ausgeführt wird, in die log-Datei 19 zu schreiben. Die vorliegende Erfindung beseitigt die Zeit, um die Inhalte des in Rede stehenden Puffers zur Datenbasis zurückzuschreiben aus der Ansprechzeit.
- Bei dem Schritt (1) sagt die Prozeß-Wählvorrichtung 13 vorher, ob der in Rede stehende Puffer 17 auf den neuesten Stand gebracht wird oder nicht. Wenn der Puffer nicht auf den neuesten Stand gebracht wird, werden bei dem Schritt (2) die Inhalte des in Rede stehenden Puffers nicht flüchtig gemacht und zwar ohne Verwendung des Kopienspeichers 18. Dies beseitigt das Sichern des Kopienspeichers, der nicht verwendet wird, wodurch der Durchsatz des Systems verbessert wird und zwar verglichen mit einem normalen Fall, bei dem der Kopienspeicher verwendet wird.
- Das Nichtflüchtigmachen von dem Pre-Update-log bei den Schritten (2) und (7) wird nicht notwendiger Weise benötigt. Es sollen nun im folgenden Fälle erläutert werden, bei denen das Nichtflüchtigmachen von Pre-Update-log benötigt wird und nicht benötigt wird. In einem gewissen Fall muß auch das Post-Update-log nicht flüchtig gemacht werden. Die nachfolgende Erläuterung betrifft lediglich die Operationen, die auftreten, wenn die Inhalte eines in Rede stehenden Puffers in der Datenbasis gesichert werden. Die Notwendigkeit und die Nicht-Notwendigkeit der logs in anderen Fällen wird nicht erläutert. Wenn eine Transaktion vorhanden ist, die einen in Rede stehenden Puffer 17 auf den neuesten Stand bringt, um diesen nicht flüchtig zu machen und, wenn ein Pre-Update-log vorhanden ist, muß das Pre-Update-log nicht flüchtig gemacht werden. Wenn eine Transaktion, die den in Rede stehenden Puffer 17 auf den neuesten Stand bringt, bereits einen Übertragungspunkt erreicht hat, oder wenn eine Überlaufseite neu zugewiesen wird, um Daten zum ersten Mal zu empfangen, und Daten in dem in Rede stehenden Puffer 17 erstellt wurden ungeachtet einer Ursprungsseite in der Platte (der Datenbasis 20), muß das Pre-Update-log nicht nicht flüchtig gemacht werden.
- Fig. 5 zeigt einen Fluß von Schritten gemäß einer Ausführungsform der vorliegenden Erfindung. Jeder der Schritte wird erläutert. Ein Bereich, der mit einer strichlierten Linie umschlossen ist, entspricht einer Verriegelungsperiode.
- (a) Die Prozeß-Wählvorrichtung 13 sagt voraus, ob ein angesprochener Puffer der gemeinsam verwendeten Puffer 17, der nicht flüchtig zu machen ist, auf den neuesten Stand gebracht wird oder nicht. Wenn dieser nicht auf den neuesten Stand gebracht wird, so wird der Schritt (b) ausgeführt und, wenn er auf den neuesten Stand gebracht wird, so wird der Schritt (f) ausgeführt. Der Schritt (a) kann weggelassen werden, so daß der Kopienspeicher 18 bereits gesichert ist wann immer die Inhalte des in Rede stehenden Puffers nicht flüchtig gemacht werden und zwar ohne eine Vorhersage der Wahrscheinlichkeit des Erneuerns.
- (b) Der Exklusiv-Controller 14 verriegelt zeitweilig den in Rede stehenden Puffer 17. Dieser Schritt serialisiert zeitweise eine Periode, um aktuell die Inhalte des in Rede stehenden Puffers 17 auf den neuesten Stand zu bringen und eine Periode, um dieselben in den Kopienspeicher zu kopieren bevor dieselben zu der Datenbasis zurückgeschrieben werden.
- (c) Der log-Controller 15 speichert das Pre-Update-log des in Rede stehenden Puffers in der log-Datei 19 über den log-Puffer 16.
- (d) Die Inhalte des in Rede stehenden Puffes werden nicht flüchtig gemacht und es wird die erforderliche Kommunikation durchgeführt.
- (e) Der Exklusiv-Controller 14 entriegelt den in Rede stehenden Puffer. Dies vervollständigt dann den Fluß.
- (f) Wenn vorausgesagt wird, daß der in Rede stehende Puffer auf den neuesten Stand gebracht wird, wird der Kopienspeicher 18 gesichert. Die Größe des Kopienspeichers 18 muß die gleiche sein wie die Größe des in Rede stehenden Puffers.
- (g) Der Exklusiv-Controller 14 verriegelt den in Rede stehenden Puffer 17, um zeitweilig Transaktionen daran zu hindern, auf den in Rede stehenden Puffer zuzugreifen.
- (h) Die Inhalte des in Rede stehenden Puffers (der strichlierte Bereich in Fig. 4) werden in den Kopienspeicher 18 kopiert.
- (i) Unmittelbar nach der Vervollständigung des Kopiervorganges, entriegelt der Exklusiv-Controller 14 den in Rede stehenden Puffer 17.
- (j) Das in dem Puffer 16 gespeicherte Pre-Update-log wird in der log-Datei 19 gespeichert und wird nicht flüchtig gemacht.
- (k) Die Inhalte des in Rede stehenden Puffers werden nicht flüchtig gemacht und die erforderliche Kommunikation wird durchgeführt.
- (l) Nach der Vervollständigung des Nichtflüchtigmachens der Inhalte des Kopienspeichers 18 wird der Kopienspeicher 18 freigegeben.
- Auf diese Weise wird bei dem Schritt (a) bestimmt, ob der in Rede stehende Puffer gemäß den exklusiven Steuerdaten (die Verriegelung des in Rede stehenden Puffers gegenüber den Transaktionen) auf den neuesten Stand gebracht wird oder nicht. Es wird nämlich diese Bestimmung dadurch durchgeführt, indem nachgeschaut wird, ob der in Rede stehende Puffer 17, der mit einer in Rede stehenden Seite involviert ist, gegenüber den Transaktionen unter einem nicht gemeinsamen Modus verriegelt ist oder nicht, oder indem nachgeschaut wird, ob ein Verriegelungsbedarf des nicht gemeinsamen Modus besteht oder nicht. Wenn der in Rede stehende Puffer verriegelt ist oder ein Bedarf dafür besteht, daß er unter einem gemeinsam Benutzungsmodus verriegelt wird, wird bestimmt, daß der in Rede stehende Puffer nicht auf den neuesten Stand gebracht wird. Wenn der in Rede stehende Puffer verriegelt ist oder ein Bedarf dafür besteht, daß er unter einem nicht Gemeinsam- Modus verriegelt wird, so wird bestimmt, daß der in Rede stehende Puffer auf den neuesten Stand gebracht wird.
- Wenn beispielsweise eine oder eine Vielzahl von Transaktionen eine gegebene Seite unter einem gemeinsam Verwendungsmodus verriegelt, so wird vorausgesagt, daß keine Transaktion auf eine Erneuerung der Seite wartet während die Seite verriegelt ist und eine direkte Rückschreibung zu einer Datenbasis erfolgt. Wenn andererseits eine Transaktion eine gegebene Seite unter einem nicht Gemeinsam-Modus verriegelt, so wird vorhergesagt, daß es einige Transaktionen gibt, die auf eine Erneuerung der Seite warten während die Seite verriegelt ist und ein direktes Rückschreiben zur Datenbasis erfolgt. In dieser Weise wird die Wahrscheinlichkeit der Erneuerung festgelegt.
- Fig. 6 zeigt das Rückschreiben der Daten zu einer Datenbasis gemäß einer Ausführungsform der vorliegenden Erfindung. Ähnlich zu Fig. 2 enthält diese Ausführungsform Transaktionen TRN1 und TRN2, eine Bit-Map 30, eine Datenbasis 20 und 20', einen Kopienspeicher 18 und Überlaufseiten 31. Der Bit-Map ist in einem gemeinsam verwendeten Puffer realisiert und wird in den Kopienspeicher 18 kopiert.
- Wenn ein gemeinsam verwendeter Puffer häufiger auf den neuesten Stand gebracht wird als andere gemeinsame verwendete Puffer, so werden die Inhalte desselben nicht zu der Datenbasis zurückgeschrieben. Es werden nämlich die erneuerten Inhalte des Puffers immer in einem Speicher gehalten, ohne daß sie in der Datenbasis gesichert werden. Solch ein belegter Puffer wird als ein Überhitzungspunkt (hot spot) bezeichnet.
- Wie unter Hinweis auf Fig. 2 erläutert wurde, wird die Bit-Map 30, welche die Überlaufseiten 31 steuert, leicht zu einem Überhitzungspunkt (hot spot), da die Bit-Map 30 Seite für Seite zugegriffen wird und die Datendichte der Bit-Map 30 dicht oder hoch ist. In diesem Fall müssen die Inhalte des Puffers zwangsweise zu der Datenbasis zurückgeschrieben werden oder es muß eine große Menge an Post-Update-logs für die Wiederherstellung vorbereitet werden. Die vorliegende Erfindung minimiert den Einfluß der Verriegelung des Puffers, indem der Kopienspeicher 18 in einem Standard-Datenbasis- Managementsystem gesichert wird.
- Nach der Vervollständigung des Kopiervorganges wird der Bit-Map 30 entriegelt, und es können daher die Transaktionen TRN1 und TRN2, die den Bit-Map 30 Bit für Bit verriegeln können, das oder den Bit-Map 30 verwenden. Es werden nämlich die Transaktionen TRN1 und TRN2 lediglich für eine Periode in einen Wartezustand versetzt, während welcher der Bit-Map 30 in den Kopienspeicher 18 kopiert wird. Diese Technik verkürzt in bemerkenswerter Weise die Verriegelungsperiode verglichen zum Stand der Technik. In der Praxis kann diese Technik die Verriegelungsperiode um etwa 1/10000 bis 1/100000 des Standes der Technik reduzieren, wodurch drastisch eine Ansprechzeit einer Transaktion verbessert wird, das Geleitphänomen beseitigt wird und der Durchsatz erhöht wird.
- Fig. 7 erläutert die zeitweiligen Änderungen in den Transaktionen gemäß der Ausführungsform der vorliegenden Erfindung. In der Figur ist auf der Abszisse die Zeit aufgetragen und die Segmente geben die Transaktionen wieder. Gemäß dem Stand der Technik werden die Transaktionen TRN1 und TRN2 zum Erneuern der Bit-Map 30 in einen Wartezustand versetzt, während die Bit-Map 30 zurück zu der Datenbasis 20' geschrieben wird.
- Gemäß der Ausführungsform der vorliegenden Erfindung sind die Transaktionen TRN1 und TRN2 unabhängig von der Rückschreiboperation des Bit-Map 30 zur Datenbasis 20'. Die Transaktionen TRN1 und TRN2 werden lediglich für eine Periode zwischen t1 und t2 in einen Wartezustand versetzt, in welcher die Bit-Map 30 in den Kopienspeicher 18 kopiert wird bevor sie in der Datenbasis 20' gesichert wird.
- Die Periode gemäß dem Kopiervorgang der Bit-Map 30 in den Kopienspeicher 18 ist sehr kurz verglichen mit der Periode gemäß dem Rückschreibvorgang der Bit-Map 30 zur Datenbasis 20'. Es ist nämlich die Verriegelungsperiode zwischen t1 und t2 sehr kurz.
- In den Fig. 8(A) und 8(B) werden die vorliegende Erfindung und der Stand der Technik verglichen, wobei in Fig. 8(A) der Stand der Technik gezeigt ist und in Fig. 8(B) die vorliegende Erfindung gezeigt ist.
- In Fig. 8(A) wird ein gemeinsam verwendeter Puffer, dessen Inhalt zurückzuschreiben ist, für eine gesamte Rückschreibperiode verriegelt, die exklusiv in Bezug auf die Verriegelungsperioden für die Datenerneuerung sein muß. Es wird nämlich eine Transaktion, die den gemeinsam verwendeten Puffer auf den neuesten Stand bringt, in einen Wartezustand gebracht und zwar während der Rückschreibperiode des Puffers.
- Dies führt zu einer Verzögerung einer Ansprechzeit der Transaktion.
- In Fig. 8(B) ist die Verriegelungsperiode des Puffers lediglich mit einer Speicher-Kopierperiode gleich, die aus einer Vorbereitungsperiode für die Rückschreiboperation besteht. Während einer tatsächlichen Rückschreiboperation ist der Puffer entriegelt, so daß Transaktionen, die den Puffer auf den neuesten Stand bringen, im wesentlichen nicht verzögert werden.
- Wie oben erläutert wurde, werden bei der vorliegenden Erfindung die Inhalte eines Puffers, die nicht flüchtig zu machen sind, zeitweilig in einen zeitweiligen Speicher kopiert und es wird die Kopie nicht flüchtig gemacht. Dies verkürzt die Verriegelungzeit, die für das Nichtflüchtigmachen der Inhalte des Puffers erforderlich ist und verbessert auch eine Ansprechzeit einer Transaktion, die den Puffer auf den neuesten Stand bringt. Darüber hinaus wird die durch die vorliegende Erfindung das Geleitphänomen im wesentlichen eliminiert, um einen Durchsatz zu verbessern.
- Die vorliegende Erfindung schafft ein Verfahren und ein Gerät zum Verkürzen einer Verriegelungsperiode eines gemeinsam verwendeten Puffers, der verwendet wird, wenn ein Anwendungsprogramm ein Datenbasis-Managementsystem veranlaßt auf eine Datenbasis zuzugreifen. Da die Verriegelungsperiode verkürzt wird, werden Transaktionen, die den Puffer gemeinsam verwenden, nicht für eine lange Zeit in einer Warteschlange aufgereiht. Dies führt zu einer Verbesserung in dem Durchsatz eines Datenverarbeitungssystems, welches einen Computer verwendet. Die vorliegende Erfindung ist daher auf verschiedenen industriellen Gebieten anwendbar. Momentan handhaben On-Line- Transaktions-Verarbeitungssysteme gleichzeitig mehr als 1000 Prozesse. In solchen System verursacht eine Warteschlange bei einem Überhitzungspunkt unmittelbar ein Geleitphänomen. Dies gleicht einem Verkehrsunfall, der einen Verkehrsstau in großen Städten verursacht. Durch die vorliegende Erfindung wird eine Rückschreibperiode stark reduziert, um das Geleitphänomen zu beseitigen, welches einer Beschäftigung mit einem Verkehrsunfall entspricht, um den Verkehrsstau aufzulösen, wodurch nicht nur eine Ansprechzeit der Transaktionen sondern auch der Durchsatz verbessert werden.
Claims (4)
1. Verfahren zum Verkürzen einer Verriegelungsperiode
eines gemeinsam verwendeten Puffers in einem
Datenverarbeitungssystem, mit den folgenden Schritten:
einem Schritt (3) zum Sichern eines Kopienspeichers
(18), der verwendet wird, wenn die Inhalte des gemeinsam
verwendeten Puffers (17) nicht flüchtig gemacht werden;
einem Schritt (4), um zeitweilig den gemeinsam
verwendeten Puffer zu verriegeln;
einem Schritt (5) zum Kopieren der Inhalte des
gemeinsam verwendeten Puffers in den Kopienspeicher;
einem Schritt (6) zum Entriegeln des gemeinsam
verwendeten Puffers nach der Vervollständigung des Kopiervorganges
in den Kopienspeicher;
einem Schritt (7) zum Kopieren der log-Daten in dem
log-Puffer (16) in die log-Datei (19), um die log-Daten,
bevor der gemeinsam verwendete Puffer (17) auf den neuesten
Stand gebracht wird, nicht flüchtig zu machen; und
einem Schritt (8), um die Inhalte des Kopienspeichers
nicht flüchtig zu machen,
wobei der gemeinsam verwendete Puffer verriegelt wird,
bevor die Inhalte desselben in den Kopienspeicher kopiert
werden, und entriegelt wird nach der Vervollständigung des
Kopiervorganges und bevor die Inhalte des Kopienspeichers
nicht flüchtig gemacht werden.
2. Verfahren nach Anspruch 1, ferner mit einem Schritt, um
zu bestimmen, ob der gemeinsam verwendete Puffer, der
nichtflüchtig zu machen ist, auf den neuesten Stand gebracht wird
oder nicht,
wobei die Inhalte des gemeinsam verwendeten Puffers in
eine Datenbank zurückgeschrieben werden und nicht flüchtig
gemacht werden ohne Sicherung des Kopienspeichers und ohne
die Inhalte des gemeinsam verwendeten Puffers in den
Kopienspeicher zu kopieren, wenn bestimmt wurde, daß der gemeinsam
verwendete Puffer nicht auf den neuesten Stand gebracht wird.
3. Datenverarbeitungssystem mit einem Datenbank-
Managementsystem (11), um auf eine Datenbank zuzugreifen und
diese zu managen, mit wenigstens einem Puffer (17), der durch
Transaktionen gemeinsam verwendet wird, einem log-Puffer (16)
zum zeitweiligen Speichern von Pre-und Post-Update-logs,
einer log-Datei (19) zum Speichern der Pre- und
Post-Updatelogs, und der Datenbank (20) zum Speichern der Daten, wobei
das Datenverarbeitungssystem folgendes aufweist:
einen Kopienspeicher (18), um die Inhalte des gemeinsam
verwendeten Puffers (17) zeitweilig zu speichern; und
einen Ersetzungs-Controller (12), um die Inhalte des
gemeinsam verwendeten Puffers in den Kopienspeicher zu
kopieren, eine Prozeß-Wählvorrichtung (13) um zu bestimmten, ob
der gemeinsam verwendete Puffer auf den neuesten Stand
gebracht wird oder nicht, einen Exklusiv-Controller (14), um
den gemeinsam verwendeten Puffer exklusiv zu steuern, und
einen log-Controller (15) zum Sichern der Pre-und
Post-Updatelogs,
wobei der gemeinsam verwendete Puffer verriegelt wird
bevor die Inhalte desselben in den Kopienspeicher kopiert
werden und nach der Vervollständigung des Kopiervorganges und
vor der Nichtflüchtigmachung der Inhalte des Kopienspeichers
entriegelt wird, um eine Verriegelungsperiode des gemeinsam
verwendeten Puffers zu verkürzen.
4. Datenverarbeitungssystem nach Anspruch 3, bei dem die
Prozeß-Wählvorrichtung (13) dann, wenn bestimmt wurde, daß
der gemeinsam verwendet Puffer nicht auf den neuesten Stand
gebracht wird, die Inhalte des gemeinsam verwendeten Puffers
in die Datenbank schreibt und diese nicht-flüchtig macht und
zwar ohne eine Sicherung des Kopienspeichers und ohne die
Inhalte des gemeinsam verwendeten Puffers in den Kopienspeicher
zu kopieren.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19649791 | 1991-08-06 | ||
PCT/JP1992/000996 WO1993003436A1 (en) | 1991-08-06 | 1992-08-05 | Method and apparatus for reducing lock period of shared buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69228297D1 DE69228297D1 (de) | 1999-03-11 |
DE69228297T2 true DE69228297T2 (de) | 1999-06-02 |
Family
ID=16358753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69228297T Expired - Fee Related DE69228297T2 (de) | 1991-08-06 | 1992-08-05 | Verfahren und vorrichtung zur reduzierung der sperrzeit eines gemeinsamen puffers |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0551528B1 (de) |
JP (1) | JP3107094B2 (de) |
DE (1) | DE69228297T2 (de) |
WO (1) | WO1993003436A1 (de) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7430553B2 (en) * | 2005-12-30 | 2008-09-30 | Microsoft Corporation | Managing states with delta pager |
US8510281B2 (en) * | 2008-12-18 | 2013-08-13 | Sap Ag | Ultimate locking mechanism |
US9794340B2 (en) | 2014-09-15 | 2017-10-17 | Ge Aviation Systems Llc | Mechanism and method for accessing data in a shared memory |
JP6272556B2 (ja) * | 2015-04-02 | 2018-01-31 | 株式会社日立製作所 | 共有リソース更新装置及び共有リソース更新方法 |
US10037166B2 (en) | 2016-08-03 | 2018-07-31 | Ge Aviation Systems Llc | Tracking memory allocation |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816881B2 (ja) * | 1986-04-18 | 1996-02-21 | 株式会社日立製作所 | データベース更新方法 |
JPH0816880B2 (ja) * | 1986-04-18 | 1996-02-21 | 株式会社日立製作所 | データベースシステムおよびその処理方法 |
JPS63133240A (ja) * | 1986-11-25 | 1988-06-06 | Hitachi Ltd | 常駐テ−ブルの内容保証方式 |
JPS6468850A (en) * | 1987-09-10 | 1989-03-14 | Fujitsu Ltd | System crush recovery processing system |
JPH033046A (ja) * | 1989-05-31 | 1991-01-09 | Hitachi Ltd | ログ記録管理方式 |
JP2503288B2 (ja) * | 1990-05-11 | 1996-06-05 | 富士通株式会社 | デ―タベ―ス処理方式 |
JP2503289B2 (ja) * | 1990-05-15 | 1996-06-05 | 富士通株式会社 | デ―タベ―ス管理処理方式 |
-
1992
- 1992-08-05 JP JP05503476A patent/JP3107094B2/ja not_active Expired - Lifetime
- 1992-08-05 WO PCT/JP1992/000996 patent/WO1993003436A1/ja active IP Right Grant
- 1992-08-05 DE DE69228297T patent/DE69228297T2/de not_active Expired - Fee Related
- 1992-08-05 EP EP92916959A patent/EP0551528B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3107094B2 (ja) | 2000-11-06 |
DE69228297D1 (de) | 1999-03-11 |
EP0551528B1 (de) | 1999-01-27 |
EP0551528A4 (de) | 1994-01-05 |
EP0551528A1 (de) | 1993-07-21 |
WO1993003436A1 (en) | 1993-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69311952T2 (de) | Verfahren und System zur inkrementalen Datensicherung | |
DE69030024T2 (de) | Verfahren zur Herstellung einer Duplikation von einer Datenbank | |
DE69312781T2 (de) | Verfahren und System zum Seitendatei Statusabrufen in einem Nullzeittyp Sicherungskopieprozess | |
DE69126067T2 (de) | Verfahren und Gerät zur Verwaltung von Zustandsidentifizierern zur effizienten Wiederherstellung | |
DE69516538T2 (de) | Speicherung von rechnerdaten | |
DE69604882T2 (de) | Einzeltransaktionsverfahren für ein Dateiensystem mit Logging-Möglichkeit in einem Rechnerbetriebssytem | |
DE68927142T2 (de) | Verriegelungs- und Lese-Minimierung in einem segmentierten Speicherraum | |
DE4220198C2 (de) | Transaktionsverarbeitungsverfahren für einen digitalen Computer und Transaktionsverarbeitungssystem | |
DE102012216022B4 (de) | Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger | |
DE69601850T2 (de) | Transaktionsgerättreiberverfahren für ein Dateiensystem mit Logging-Möglichkeit | |
DE3788444T2 (de) | Verfahren zum Wiederanlauf einer langlaufenden fehlertoleranten Operation in einem transaktionsorientierten Datenbasissystem. | |
DE69032337T2 (de) | Multiprozessorsystem verwendendes Datenbasisverarbeitungssystem | |
DE69128367T2 (de) | System und Verfahren zur Transaktionsbearbeitung mit verminderter Verriegelung | |
EP0163096B1 (de) | Einrichtung zur Rettung eines Rechnerzustandes | |
DE69221259T2 (de) | Verwaltung von Datenbankwiederherstellung nach Fehler | |
DE3854667T2 (de) | Datenbasissystem mit einer Baumstruktur. | |
DE69223287T2 (de) | Steuerungsverfahren für eine Computerspeichereinrichtung | |
DE68922431T2 (de) | Datenbasiserholung in einem Rechnersystem nach einem Systemabsturz. | |
DE69631106T2 (de) | On-line-Rekonfiguration einer Speicherplattenanordnung | |
DE69621841T2 (de) | Rechnersicherungssystem mit offenen Dateien | |
DE112017005868T5 (de) | Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem | |
DE69505629T2 (de) | Verfahren zur Verwaltung von Rückwärts- und Vorwärtslogbüchern eines Transaktionsobjekts | |
US5715447A (en) | Method of and an apparatus for shortening a lock period of a shared buffer | |
DE69622647T2 (de) | Wiederherstellbares Plattensteuersystem mit nichtflüchtigem Speicher | |
DE112009004503T5 (de) | Optimierung der zugriffszeit von auf speichern gespeicherten dateien |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |