DE69822561T2 - Verfahren zur Isolierung eines Speicherplatzes mit einem veralteten Datum - Google Patents

Verfahren zur Isolierung eines Speicherplatzes mit einem veralteten Datum Download PDF

Info

Publication number
DE69822561T2
DE69822561T2 DE69822561T DE69822561T DE69822561T2 DE 69822561 T2 DE69822561 T2 DE 69822561T2 DE 69822561 T DE69822561 T DE 69822561T DE 69822561 T DE69822561 T DE 69822561T DE 69822561 T2 DE69822561 T2 DE 69822561T2
Authority
DE
Germany
Prior art keywords
transaction
variable
value
access
hold
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
DE69822561T
Other languages
English (en)
Other versions
DE69822561D1 (de
Inventor
Dominique Guidot
Franck Jouenne
Benoit Paul-Dubois-Taine
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.)
Alcatel Lucent SAS
Original Assignee
Alcatel SA
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 Alcatel SA filed Critical Alcatel SA
Application granted granted Critical
Publication of DE69822561D1 publication Critical patent/DE69822561D1/de
Publication of DE69822561T2 publication Critical patent/DE69822561T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Small-Scale Networks (AREA)
  • Machines For Laying And Maintaining Railways (AREA)
  • Information Transfer Systems (AREA)
  • Discharging, Photosensitive Material Shape In Electrophotography (AREA)
  • Warehouses Or Storage Devices (AREA)
  • Storage Device Security (AREA)

Description

  • Die Erfindung betrifft ein Verfahren zur Isolierung eines Speicherplatzes mit einem veralteten „Datum" (bzw. Wert), wobei dieses Verfahren für jede Echtzeit- und/oder im System integrierte Anwendung anwendbar ist, die mit einem Datenverwaltungssystem arbeitet, das einen gemeinsam genutzten, sogenannten Transaktionsspeicher verwaltet, und die den Datenzugriff durch Zeiger (bzw. Pointer) ermöglicht. Ein solcher Speicher ist der Hauptspeicher eines Computers, in dem gleichzeitig mehrere Prozesse ausgeführt werden. Jeder Prozess besteht seinerseits im allgemeinen aus mehreren elementaren Tasks, die miteinander im Hinblick auf den Zugriff auf Daten, die gelesen und geändert werden sollen, konkurrieren können. Der Speicher ist in Elemente mit fester Größe strukturiert, die im folgenden als Speicherplätze bezeichnet werden.
  • In einem Computer unterscheidet man den Hauptspeicher, der eine begrenzte Kapazität hat, in dem jedoch auf alle Plätze direkt und somit sehr schnell zugegriffen werden kann, und einem Massenspeicher, der im allgemeinen aus einer Festplatte besteht, die eine viel höhere Kapazität besitzt, auf die jedoch viel weniger schnell zugegriffen werden kann, weil eine Spur ausgewählt und anschließend darauf gewartet werden muss, dass der auf einer Spur gesuchte Platz vor einem Lesekopf erscheint. Klassischerweise lädt das Betriebssystem eines Computers nur die Daten in den Hauptspeicher, die in einem bestimmten Moment tatsächlich benötigt werden, und der Ladevorgang erfolgt mit Hilfe eines schnellen und spezialisierten kleinen Speichers, der Cache-Speicher genannt wird und der eine merkliche Beschleunigung des Zugriffs auf die Festplatte durch einen Vorwegnahme-Mechanismus bewirkt, welcher sich den Umstand zu Nutze macht, dass die Daten von den Anwendungen im allgemeinen sequentiell genutzt werden. Die klassischen Datenverwaltungssysteme sind daher unter Berücksichtigung des Umstandes optimiert werden, dass die Daten einen Cache-Speicher durchlaufen.
  • Die Fortschritte in der Technologie der Halbleiterspeicher ermöglichen nun die Realisierung eines Hauptspeichers, der eine ausreichende Kapazität besitzt, um sämtliche von allen in einem Computer ausgeführten Prozessen gemeinsam genutzten Daten in den Hauptspeicher zu laden, und dies sogar für Anwendungen, die große Datenmengen handhaben. Der Festplatte kommt dann nur noch die Aufgabe der Sicherung der Daten zu, indem sie eine aktualisierte Kopie aller Daten aufbewahrt, die sich im Hauptspeicher befinden. Das Laden aller Daten in den Hauptspeicher ist besonders vorteilhaft für Anwendungen, welche die Daten nicht sequentiell auswerten, da ein Cache-Speicher für diese Anwendungen nur geringe Vorteile bietet. Dies ist insbesondere bei Anwendungen der Fall, welche Telekommunikations-Vermittlungsanlagen steuern.
  • Bekannt sind Datenverwaltungssysteme für objektorientierte Datenbanken und Datenverwaltungssysteme für relationale Datenbanken.
  • Es gibt zwei Arten des Zugriffs auf einen Datenwert: den Lesezugriff oder den Schreibzugriff. Für jeden Zugriffstyp sind zwei Arten des Informationstransfers zwischen dem Datenverwaltungssystem und einer elementaren Task bekannt: ein Transfermodus basierend auf dem Wert und ein Transfermodus basierend auf einem Zeiger.
  • Für einen Lesezugriff (beziehungsweise Schreibzugriff) auf den Wert einer Variablen besteht der auf dem Wert basierende Transfermodus darin, dass ein Wert der Variablen an dem Speicherplatz gelesen (bzw. geschrieben) wird, der den aktuellen Wert der Variablen enthält; dagegen besteht der auf einem Zeiger basierende Transfermodus darin, dass der Task, die den Lese- bzw. Schreibvorgang angefordert hat, eine als Zeiger bezeichnete Adresse geliefert wird, welche den Speicherplatz bezeichnet, an dem sich der zu lesende Wert befindet (bzw. den Ort, an den ein Wert geschrieben werden soll); dabei steht es der Task anschließend frei, an diesem Ort die ganze Zeit über, in der sie diesen Zeiger besitzt, zu lesen bzw. zu schreiben. Wenn eine Task auf eine Variable im Zeiger-Modus zugreift, ist bekannt, dass dem Speicherplatz, der den aktuellen Wert dieser Variablen enthält, für diese Task eine als "Hold" bezeichnete Sperrung zugewiesen wird. Dieser Hold verbietet jeder anderen Task den Zugriff auf diesen Platz, um die Konsistenz der von jeder einzelnen Task gesehenen Daten zu wahren. Die Task, die einen Hold für einen Speicherplatz besitzt, der einen Wert einer Variablen enthält, kann auf diesen Platz so oft zugreifen, wie sie wünscht, und zwar so lange, bis sie beschließt, diesen Hold freizugeben.
  • Der auf einem Pointer basierende Transfermodus ist in objektorientierten Datenverwaltungssystemen bekannt. Er hat den Vorteil, schnelle Zugriffe zu ermöglichten. Er gestattet es, einen Datenwert wie eine Variable einer Programmiersprache zu manipulieren. Objektorientierte Datenverwaltungssysteme haben jedoch folgenden Nachteil: Entweder bieten sie keine Multitasking-Transaktionen (folglich gibt es keine konkurrierenden Tasks), oder sie bieten keine auf ein Objekt bezogene Sperrung (jeder konkurrierende Zugriff führt zur Sperrung einer Seite und somit dazu, dass diese Seite vollständig in ein Protokoll kopiert wird. Dieser Grad von Granularität führt somit zu Mehrkosten).
  • Der auf dem Wert basierende Transfermodus kann eingesetzt werden, ohne konkurrierende Zugriffe auf der Ebene der Anwendungen zu verwalten. Konkurrierende Zugriffe werden vor allem mit Hilfe von Schreib- oder Lesesperren verwaltet, die vom Datenverwaltungssystem der Datenbank zugewiesen werden.
  • Eine Gruppe von Lese- und/oder Schreibvorgängen, die sich auf mehrere Variablen beziehen, die von einer Task bei derselben Abfrage angefordert werden, wird als Transaktion bezeichnet. Bei einer Transaktion kann jeder Vorgang entweder mit dem auf dem Wert basierenden Transfermodus oder mit dem auf einem Zeiger basierenden Transfermodus ausgeführt werden. Jede Transaktion unterteilt sich in drei Phasen:
    • – Eine Eröffnungsphase, während der das Datenverwaltungssystem der Task, welche die Transaktion eröffnet hat, eine einmalige Transaktionskennung liefert, wobei diese Kennung einen Speicherplatz bezeichnet, der einen Deskriptor der Transaktion enthält;
    • – Eine Zugriffsphase, während der Lese- oder Schreibvorgänge von der Task, welche die Transaktion eröffnet hat, ausgeführt werden, die jedoch für die anderen Benutzer, die nicht von dieser Transaktion betroffen sind, unsichtbar bleiben; und während der dieser Transaktion für den betreffenden Speicherplatz als Lesesperren und Schreibsperren bezeichnete Rechte zugewiesen werden. Nach einem der bekannten Zugriffsverfahren schreibt eine Transaktion, wenn sie einen Schreibzugriff ausführt, den neuen Wert der Variablen provisorisch an den als Zwischenspeicher („Journal") bezeichneten Speicherort, der dieser Transaktion für diese Variable zugewiesen wurde. Auf diesen Zwischenspeicher kann nur von dieser Transaktion zugegriffen werden.
    • – Eine Abschluss- oder Bestätigungsphase, während der die Schreib- und Lesevorgänge bestätigt werden. Nach dem oben dargestellten bekannten Verfahren werden die neuen Werte (die in den dieser Transaktion zugewiesenen Zwischenspeicherplätzen enthalten sind), an die Orte geschrieben, die die jeweiligen aktuellen Werte enthalten, und sie werden für alle Tasks sichtbar. Die zu lesenden Werte werden tatsächlich gelesen. Die dieser Transaktion zugewiesenen Zwischenspeicher, Sperren und Holds werden freigegeben.
  • Es kann jedoch vorkommen, dass eine Transaktion abgebrochen wird, entweder auf Anforderung der Task, die die Eröffnung dieser Transaktion angefordert hat, oder aufgrund eines Konflikts mit einer anderen Transaktion oder aufgrund einer Inkohärenz einer Abfrage, die diese Transaktion bildet.
  • Dem Speicherplatz, der den aktuellen Wert oder den neuen Wert einer Variablen enthält, welche Gegenstand einer Transaktion ist, kann eine Sperre zugewiesen werden, um andere Vorgänge zu unterbinden, welche die Konsistenz der Daten beeinträchtigen würden. Eine Sperre kann einer gesamten Datentabelle zugewiesen werden.
  • Bestimmte Transaktionsprotokolle bieten die Möglichkeit, eine Transaktion unter Gewährleistung von vier als "ACID" bezeichneten Eigenschaften durchzuführen:
    • – Atomizität („atomicité") (entweder werden sämtliche von einer Transaktion angeforderten Zugriffe bearbeitet oder keiner);
    • – Konsistenz („consistance") (sämtliche Daten gehen von einem stabilen Zustand in einen anderen stabilen Zustand über);
    • – Isolation („isolation") (die neuen Werte der Variablen sind außerhalb der Transaktion nicht sichtbar, bevor diese abgeschlossen ist);
    • – Dauerhaftigkeit („durabilité") (sobald eine Transaktion bestätigt ist, bleiben die neuen Werte auch bei Ausfällen des Arbeitsplatzes, auf dem sie gespeichert sind, erhalten; diese Werte werden auf einer Festplatte oder auf einem anderen betriebsfähigen Arbeitsplatz gesichert);
    • – Serialisierung (wenn mehrere Transaktionen parallel ablaufen, ist ihr Ergebnis dasselbe, wie wenn sie nacheinander ablaufen würden).
  • Die Patentanmeldung FR 2 727 222 beschreibt ein solches Transaktionsprotokoll. Die bekannten Datenverwaltungssysteme gewährleisten die ACID-Eigenschaften, sie haben jedoch den Nachteil, keinen auf einem Zeiger basierenden Zugriff zu bieten, der einen schnelleren Zugriff ermöglichen würde. Sie sind daher nicht vollkommen zufriedenstellend.
  • Im Rahmen eines Systems, bei dem sämtliche Daten in einen Halbleiter-Hauptspeicher geladen werden, ist es möglich, auf Zeigern basierende Zugriffe in einer Transaktion oder außerhalb einer Transaktion durchzuführen, doch die Verwendung von Zeigern und somit auch von Holds bringt einen Nachteil mit sich: Wenn die erste Transaktion abgebrochen wird, kann die Zuweisung eines Holds zu einem Speicherplatz erhalten bleiben, obwohl der an diesem Platz enthaltene Wert veraltet ist. Dieser Wert ist veraltet, weil dieser Ort der Zwischenspeicher ist, der den aktuellen Wert einer Variablen enthält, oder den neuen Wert, den diese erste Transaktion dieser Variablen geben wollte.
  • Dieser Hold verbietet weiterhin den Zugriff auf diesen Platz und verbietet somit weiterhin den Zugriff auf diese Variable, weil dieser Speicherplatz dieser Variablen zugewiesen bleibt, um ihren aktuellen Wert bzw. ihren neuen Wert zu speichern. Auf diese Variable kann folglich unnötigerweise weiterhin so lange nicht zugegriffen werden, bis die Anwendung, die diesen Hold besitzt, beschließt, ihn freizugeben. Während dieser Zeit versuchen eine oder mehrere andere Transaktionen vielleicht, auf diese Variable zuzugreifen. Dieser nutzlose Versuch belastet die gesamten Leistungen des Systems.
  • Ziel der Erfindung ist es, für diesen Nachteil Abhilfe zu schaffen. Gegenstand der Erfindung ist ein Verfahren zur Isolierung eines Speicherplatzes, der einen veralteten Wert einer Variablen enthält, im gemeinsam genutzten Speicher eines Computers, wobei auf diesen Platz durch einen Zeiger für einen Zugriff im Rahmen einer ersten Transaktion verwiesen wird, wobei eine als Hold bezeichnete Sperre auf diesen Platz gesetzt ist und einer einzigen Task zugewiesen ist, und wobei dieser Hold den Zugriff auf diesen Speicherplatz für alle anderen Tasks untersagt; dadurch gekennzeichnet, dass
    • – wenn diese erste Transaktion eine abgebrochene Transaktion ist und:
    • – wenn der veraltete Wert ein neuer Wert dieser Variablen ist, besteht das Verfahren darin, im Deskriptor dieser Variablen die Identität der abgebrochenen Transaktion und die Adresse dieses Speicherplatzes zu löschen und diese Adresse in den Deskriptor der genannten Transaktion zu schreiben; anschließend diesen Hold freizugeben;
    • – wenn der veraltete Wert zuvor der aktuelle Wert der Variablen war, besteht das Verfahren darin, im Deskriptor dieser Variablen die Identität der abgebrochenen Transaktion und die Adresse dieses Speicherplatzes zu löschen und sie in den Deskriptor der genannten Transaktion zu schreiben; anschließend den dem Zeiger zugewiesenen Hold freizugeben; anschließend dem aktuellen Wert einen freien Speicherplatz zuzuweisen, diesen aktuellen Wert an diesen Speicherplatz zu schreiben und die Adresse dieses Speicherplatzes in den Deskriptor dieser Variablen zu schreiben;
    • – wenn diese erste Transaktion eine Transaktion ist, die aufgrund einer zweiten Transaktion abgebrochen wurde, die den Zugriff auf diese Variable anfordert, um einen neuen Wert zu schreiben, und die diesen Zugriff bestätigt, und wenn der veraltete Wert zuvor der aktuelle Wert der Variablen war, besteht das Verfahren darin, die Adresse der Speicherplätze, die den veralteten aktuellen Wert (Vcou) und den neuen Wert enthalten, im Deskriptor dieser Variablen auszutauschen; und es besteht darin, einen Hold auf den Speicherplatz zu setzen, der den veralteten Wert enthält, um eine Änderung des veralteten Wertes zu verhindern; die Identität der zweiten Transaktion zu löschen; anschließend den Hold freizugeben, der dem Zeiger für diesen neuen Wert zugewiesen wurde, sofern einer vorhanden war.
  • Das auf diese Weise gekennzeichnete Verfahren macht den Speicherplatz, der den veralteten Wert enthält, nicht frei, isoliert ihn aber gegenüber anderen Transaktionen als derjenigen, die den ersten Zeiger besitzt. Dies ermöglicht der Task, die Eigentümerin des ersten Zeigers ist, weiterhin auf diese veraltete Variable zuzugreifen. Dagegen können beliebige Transaktionen auf einen anderen Wert der Variablen zugreifen, ohne zu warten, weil der Deskriptor dieser Variablen diese Transaktionen auf einen Speicherplatz verweist, auf den ein freier Zugriff möglich ist und der diesen anderen Wert enthält.
  • Anhand der nachfolgenden Beschreibung eines Ausführungsbeispiels und der dazugehörigen Zeichnungen wird die Erfindung besser verständlich, und weitere Merkmale werden ersichtlich werden: Die 1 bis 3 stellen jeweils einen der drei Fälle dar, die auftreten können.
  • Gemäß der Erfindung weist ein Datenverwaltungssystem jeder Variablen einen Variablendeskriptor zu, der die folgenden Informationen enthält, die von diesem Datenverwaltungssystem ausgewertet werden:
    • – Die Identität TR der Transaktion, die einen Schreibzugriff auf diese Variable angefordert hat, wenn diese Zugriffsanforderung im Rahmen einer Transaktion erfolgt.
    • – Die Adresse ADvc eines Speicherplatzes, der den aktuellen Wert dieser Variablen enthält.
    • – Einen Binärindikator Hvc, der angibt, ob einem Zeiger, welcher auf den Platz verweist, der den aktuellen Wert dieser Variable enthält, ein Hold zugewiesen wurde.
    • – Die Adresse ADvn eines Speicherplatzes, der den neuen Wert enthält, welcher den aktuellen Wert dieser Variablen ersetzen soll.
    • – Einen Binärindikator Hvn, der angibt, ob ein Hold für den Platz des neuen Wertes dieser Variablen zugewiesen wurde.
  • Das Datenverwaltungssystem weist jeder Transaktion einen Transaktionsdeskriptor zu, der die folgenden Informationen enthält, die vom Datenverwaltungssystem ausgewertet werden:
    • – Die Identität IT dieser Transaktion.
    • – Die Adressen ADV der Deskriptoren der Variablen, auf die ein Schreibzugriff durch diese Transaktion erfolgt.
    • – Die Adressen AVO der Speicherplätze, welche die jeweiligen veralteten Werte der Variablen enthalten, auf die ein Schreibzugriff durch diese Transaktion erfolgt.
  • 1 veranschaulicht die Anwendung des Verfahrens gemäß der Erfindung in einem Fall, in dem eine Transaktion T1 abgebrochen wurde und wo ein dieser Transaktion T1 zugewiesener Zeiger auf den Speicherplatz ADR1 eines Wertes Vnou verweist, welcher der neue Wert einer Variablen V1 ist. Der Deskriptor DV1 der Variablen V1 enthält: die Identität T1 dieser Transaktion, die Adresse ADR1 des Speicherplatzes, der diesen neuen Wert enthält, die Adresse ADR0 des (nicht dargestellten) Speicherplatzes, der den aktuellen Wert dieser Variablen enthält, und einen Indikator Hvn = 1, der angibt, dass dieser Transaktion T1 ein Hold zugewiesen wurde. Dieser Hold verbietet es, den neuen Wert Vnou dieser Variablen zu lesen oder zu verändern, außer für die Transaktion T1, die diesen Hold besitzt.
  • Der Wert Vnou ist veraltet, weil die Transaktion T1 abgebrochen wurde. Das Datenverwaltungssystem löscht im Deskriptor V1 diese Variable, die Identität T1 der abgebrochenen Transaktion und die Adresse ADR1 dieses Speicherplatzes. Es schreibt diese Adresse ADR1 in den Deskriptor T1 der genannten Transaktion. Anschließend gibt es den Hold frei, indem es den Wert des Indikators Hvn im Deskriptor DV1 der Variablen auf Null zurücksetzt. So können von nun an andere Benutzer auf diese Variable zugreifen und ihr einen beliebigen neuen Wert geben, während die Transaktion T1 weiterhin während der Zeit, die sie benötigt, um den Abbruch der Transaktion festzustellen, auf ihren neuen Wert zugreifen kann.
  • 2 veranschaulicht die Anwendung des Verfahrens gemäß der Erfindung in einem Fall, in dem eine Transaktion T1 abgebrochen wurde und wo ein dieser Transaktion T1 zugewiesener Zeiger auf den Speicherplatz ADR1 eines Wertes Vcou verweist, welcher der aktuelle Wert einer Variablen V1 ist. Das Datenverwaltungssystem löscht im Deskriptor DV1 der Variablen die Identität T1 der abgebrochenen Transaktion und die Adresse ADR2 dieses Speicherplatzes. Es schreibt diese Adresse ADR2 in den Deskriptor der Transaktion T1; anschließend gibt es den dem Zeiger zugewiesenen Hold frei, indem es den Wert des Indikators Hvc im Deskriptor der Transaktion T1 auf Null zurücksetzt. Anschließend weist es dem aktuellen Wert einen freien Speicherplatz zu, indem es der Adresse ADvc des Speicherplatzes, der den aktuellen Wert dieser Variablen enthält, im Deskritpor DV1 dieser Variablen einen Wert ADR3 gibt. So wird der Zugriff auf den aktuellen Wert Vcou für alle Benutzer möglich, weil sie frei auf die Adresse ADR3 zugreifen können, während die Transaktion T1 während der Zeit, die sie für die ausdrückliche Zurücknahme des Holds benötigt, weil sie ihre Hold-Verarbeitung beendet hat oder weil sie bemerkt hat, dass sie abgebrochen wurde, weiterhin auf den aktuellen Wert zugreifen kann.
  • 3 veranschaulicht die Anwendung des Verfahrens gemäß der Erfindung in einem Fall, in dem eine erste Transaktion T1 wegen einer zweiten Transaktion T2 abgebrochen wurde, die den Zugriff auf die betreffende Variable anfordert, um einen neuen Wert Vnou zu schreiben, und die diesen Zugriff bestätigt. Der aktuelle Wert Vcou der Variablen ist folglich veraltet. Das Datenverwaltungssystem tauscht im Deskriptor DV1 dieser Variablen die Adressen ADR0 und ADR1 der Speicherplätze aus, die den veralteten aktuellen Wert Vcou und den neuen Wert Vnou enthalten; es setzt einen Hold auf den Speicherplatz ADR0, der den aktuellen Wert Vcou enthält, indem es dem Indikator Hvn im Deskriptor DV1 der Variablen den Wert Eins gibt, um eine Änderung des veralteten Wertes zu verhindern. Anschließend gibt es den Hold frei, der dem Zeiger für den Speicherplatz zugewiesen wurde, welcher den aktuellen Wert enthalten sollte und der von nun an diesen neuen Wert Vnou enthält, indem es dem Indikator Hvc den Wert Eins gibt. Andererseits löscht es in diesem Deskriptor DV1 die Identität T2 der zweiten Transaktion. Auf diese Weise können alle Benutzer auf den neuen aktuellen Wert Vnou am Speicherplatz ADR1 zugreifen. Die Deskriptoren T1 und T2 der Transaktionen sind unverändert. Die Verarbeitung des Abbruchs von T1 erfolgt analog zu jener, die unter Bezugnahme auf 1 beschrieben wurde.

Claims (1)

  1. Verfahren zur Isolierung eines Speicherplatzes (AD1), der einen veralteten Wert einer Variablen enthält, im gemeinsam genutzten Speicher eines Computers, wobei auf diesen Platz durch einen Zeiger für einen Zugriff im Rahmen einer ersten Transaktion (T1) verwiesen wird, wobei eine als Hold bezeichnete Sperre (H = 1) auf diesen Platz gesetzt ist und einer einzigen Task zugewiesen ist, und wobei dieser Hold den Zugriff auf diesen Speicherplatz für alle anderen Tasks untersagt; dadurch gekennzeichnet, dass – wenn diese erste Transaktion (T1) eine abgebrochene Transaktion ist und: – wenn der veraltete Wert ein neuer Wert (Vnou) dieser Variablen ist, besteht das Verfahren darin, im Deskriptor (DV1) dieser Variablen die Identität (T1) der abgebrochenen Transaktion und die Adresse (ADR1) dieses Speicherplatzes zu löschen und diese Adresse in den Deskriptor (T1) der genannten Transaktion zu schreiben; anschließend diesen Hold freizugeben (Hvn = 0); – wenn der veraltete Wert zuvor der aktuelle Wert der Variablen war, besteht das Verfahren darin, im Deskriptor dieser Variablen die Identität (T1) der abgebrochenen Transaktion und die Adresse (ADR2) dieses Speicherplatzes zu löschen und sie in den Deskriptor der genannten Transaktion zu schreiben; anschließend den dem Zeiger zugewiesenen Hold (Hvc) freizugeben; anschließend dem aktuellen Wert einen freien Speicherplatz (ADR3) zuzuweisen, diesen aktuellen Wert (Vcou) an diesen Speicherplatz zu schreiben und die Adresse (ADR3) dieses Speicherplatzes in den Deskriptor (DV1) dieser Variablen zu schreiben; – wenn diese erste Transaktion (T1) eine Transaktion ist, die aufgrund einer zweiten Transaktion (T2) abgebrochen wurde, die den Zugriff auf diese Variable anfordert, um einen neuen Wert (Vnou) zu schreiben, und die diesen Zugriff bestätigt, und wenn der veraltete Wert zuvor der aktuelle Wert (Vcou) der Variablen war, besteht das Verfahren darin, die Adresse der Speicherplätze, die den veralteten aktuellen Wert (Vcou) und den neuen Wert (Vnou) enthalten, im Deskriptor (DV1) dieser Variablen auszutauschen; und es besteht darin, einen Hold (Hvn = 1) auf den Speicherplatz (ADR0) zu setzen, der den veralteten Wert (Vcou) enthält, um eine Änderung des veralteten Wertes zu verhindern; die Identität (T2) der zweiten Transaktion zu löschen; anschließend den Hold freizugeben (Hvn = 0), der dem Zeiger für diesen neuen Wert (Vnou) zugewiesen wurde, sofern einer vorhanden war.
DE69822561T 1997-06-19 1998-06-15 Verfahren zur Isolierung eines Speicherplatzes mit einem veralteten Datum Expired - Fee Related DE69822561T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9707636 1997-06-19
FR9707636A FR2765003B1 (fr) 1997-06-19 1997-06-19 Procede pour isoler un emplacement de memoire contenant une valeur obsolete

Publications (2)

Publication Number Publication Date
DE69822561D1 DE69822561D1 (de) 2004-04-29
DE69822561T2 true DE69822561T2 (de) 2005-02-24

Family

ID=9508177

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69822561T Expired - Fee Related DE69822561T2 (de) 1997-06-19 1998-06-15 Verfahren zur Isolierung eines Speicherplatzes mit einem veralteten Datum

Country Status (7)

Country Link
US (1) US5926835A (de)
EP (1) EP0889404B1 (de)
JP (1) JPH1165906A (de)
AT (1) ATE262697T1 (de)
CA (1) CA2239796A1 (de)
DE (1) DE69822561T2 (de)
FR (1) FR2765003B1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189607A (ja) * 2000-12-22 2002-07-05 Nec Corp メモリ管理方法及び情報処理装置
US7703098B1 (en) * 2004-07-20 2010-04-20 Sun Microsystems, Inc. Technique to allow a first transaction to wait on condition that affects its working set
US7937709B2 (en) 2004-12-29 2011-05-03 Intel Corporation Synchronizing multiple threads efficiently

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263155A (en) * 1991-02-21 1993-11-16 Texas Instruments Incorporated System for selectively registering and blocking requests initiated by optimistic and pessimistic transactions respectively for shared objects based upon associated locks
US5218698A (en) * 1991-11-22 1993-06-08 Aerojet-General Corporation Garbage collection system for a symbolic digital processor
FR2727222B1 (fr) * 1994-11-21 1996-12-27 Cit Alcatel Protocole transactionnel, et systeme pour la mise en oeuvre de ce protocole

Also Published As

Publication number Publication date
ATE262697T1 (de) 2004-04-15
JPH1165906A (ja) 1999-03-09
CA2239796A1 (fr) 1998-12-19
EP0889404A1 (de) 1999-01-07
FR2765003B1 (fr) 1999-09-24
US5926835A (en) 1999-07-20
EP0889404B1 (de) 2004-03-24
DE69822561D1 (de) 2004-04-29
FR2765003A1 (fr) 1998-12-24

Similar Documents

Publication Publication Date Title
DE69822541T2 (de) Verfahren zum Verwalten eines geteilten Speichers
DE69533786T2 (de) Vorrichtung zum Erzeugen von objektorientierten Schnittstellen für relationale Datenbanken und von dieser Vorrichtung durchgeführtes Verfahren
DE102012216022B4 (de) Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger
DE69838367T2 (de) Paralleles Dateiensystem und Verfahren zur unabhängigen Aufzeichnung von Metadaten
DE60313783T2 (de) Bewegen von daten zwischen speichereinheiten
DE602005004166T2 (de) Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen
DE4218025C2 (de) Vorrichtung und Verfahren zur automatischen Zuordnung von Datenspeichereinrichtungen in einem Computersystem
DE69722962T2 (de) Strukturiertes datenspeichersystem mit global adressierbarem speicher
DE69734129T2 (de) Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren
DE102013204521B4 (de) Transaktionsverwaltung für Datenbanksysteme
EP0703534B1 (de) Speicherverwaltungssystem eines Rechnersystems
DE69818135T2 (de) Verfahren zum Zugriff auf Datenbankinformation
DE69913984T2 (de) Verteiltes transaktionales verarbeitungssystem und verfahren
DE3439302A1 (de) Speichersteuerungsvorrichtung
EP0569605A1 (de) Verfahren zur Zugriffsverwaltung und -steuerung mehrerer Rechner auf gemeinsame Daten
DE19961499A1 (de) Caching von Objekten in Platten-gestützten Datenbanken
DE69936257T2 (de) Erzeugen und uberprüfen von referenz-adresszeigern
DE4033336A1 (de) Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung
DE202014010907U1 (de) Isolierung von Clients verteilter Speichersysteme
DE4423559A1 (de) Datenverbindungsverfahren und Vorrichtung für Multiprozessor-Computersysteme mit gemeinsamem Speicher
DE19810802A1 (de) Störungsfreies Aktualisieren von Daten
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE2226382B2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
EP3084638A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: ALCATEL LUCENT, PARIS, FR

8339 Ceased/non-payment of the annual fee