DE69530556T2 - Kommunikationssystem und Verfahren zu energiesparender Cachespeicherung für mobile Datenverarbeitung - Google Patents

Kommunikationssystem und Verfahren zu energiesparender Cachespeicherung für mobile Datenverarbeitung Download PDF

Info

Publication number
DE69530556T2
DE69530556T2 DE69530556T DE69530556T DE69530556T2 DE 69530556 T2 DE69530556 T2 DE 69530556T2 DE 69530556 T DE69530556 T DE 69530556T DE 69530556 T DE69530556 T DE 69530556T DE 69530556 T2 DE69530556 T2 DE 69530556T2
Authority
DE
Germany
Prior art keywords
servers
group
objects
message
invalidation
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 - Lifetime
Application number
DE69530556T
Other languages
English (en)
Other versions
DE69530556D1 (de
Inventor
Ming-Syan Yorktown Heights Chen
Kun-Lung Yorktown Heights Wu
Philip Shi-Lung Chappaqua Yu
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69530556D1 publication Critical patent/DE69530556D1/de
Application granted granted Critical
Publication of DE69530556T2 publication Critical patent/DE69530556T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

  • GRUNDLAGEN DER ERFINDUNG
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Kommunikationssysteme und insbesondere Kommunikationssysteme, die mobile Datenverarbeitungssysteme beinhalten.
  • STAND DER TECHNIK
  • In einer mobilen Datenverarbeitungsumgebung kann eine große Anzahl batteriebetriebener tragbarer Maschinen von vielen Benutzern verwendet werden, um Daten- und Datenbankserver von verschiedenen Orten über drahtlose Kommunikationskanäle abzufragen. Diese mobilen Computer werden möglicherweise häufig für längere Zeiträume abgeschaltet, um den Batteriestrom zu sparen. Außerdem bewegen sie sich möglicherweise häufig von einer Zelle zu einer anderen und werden zu unterschiedlichen Zeiten mit verschiedenen Datenservern verbunden, wodurch eine unbegrenzte Mobilität der Benutzer ermöglicht wird. Aufgrund der unbegrenzten Mobilität können Benutzer von mobilen Computern zu jedem beliebigen Zeitpunkt und an jedem beliebigen Ort benötigte Informationen erhalten.
  • Im Allgemeinen ist die Bandbreite des drahtlosen Kommunikationskanals sehr begrenzt. Folglich kann die Cachespeicherung von häufig verwendeten Daten in einem mobilen Computer ein leistungsfähiges Verfahren zur Verringerung der erforderlichen drahtlosen Bandbreite sein. Sobald eine Cachespeicherung verwendet wird, wird jedoch eine Strategie zur Gültigkeitsüberprüfung des Cachespeichers (cache validation strategy) benötigt, um sicherzustellen, dass die im mobilen Computer zwischengespeicherten Daten mit jenen im Server kohärent sind.
  • Im Allgemeinen gibt es nach dem Stand der Technik zwei verschiedene Vorgehensweisen zur Gültigkeitsüberprüfung von Cachespeichern, je nachdem, ob die Server Kenntnis davon haben, welche Datenobjekte von welchen mobilen Computern zwischengespeichert werden. In einer ersten Vorgehensweise nach dem Stand der Technik verwaltet der Server den Cachespeicherstatus von jedem mobilen Computer und wird als zustandsbehafteter (statefull) Server bezeichnet. Die Gültigkeitsüberprüfung des Cachespeichers kann ausgeführt werden, indem jedes Mal, wenn ein Objekt im Server aktualisiert wird, eine Ungültigkeitsnachricht an die entsprechenden mobilen Computer übertragen wird. Der Server muss außerdem den Ein-/Aus-Status von jedem mobilen Computer laufend verfolgen. Falls ein mobiler Computer ausfällt, verliert der Server möglicherweise den Cachespeicherstatus des mobilen Computers. Folglich muss ein mobiler Computer den Server jedes Mal benachrichtigen, wenn er sich abschalten oder sich von einer Zelle zu einer anderen Zelle bewegen möchte, wodurch die Freiheit und Mobilität des mobilen Benutzers deutlich eingeschränkt wird.
  • In einer zweiten Vorgehensweise nach dem Stand der Technik verfolgt der Server nicht laufend den Cachespeicherstatus von jedem mobilen Computer und wird als zustandsloser (stateless) Server bezeichnet. Er weiß nicht einmal, welche mobilen Computer gegenwärtig aktiv sind. Die Gültigkeitsüberprüfung des Cachespeichers wird normalerweise ausgeführt, indem eine Ungültigkeitsmeldung periodisch gesendet wird, die die IDs von kürzlich aktualisierten Objekten enthält. Jeder aktive mobile Computer empfängt die Meldung und macht seinen Cachespeicherinhalt dementsprechend ungültig. Wenn ein mobiler Computer jedoch zur Energieeinsparung abgeschaltet wird, versäumt er möglicherweise viele Ungültigkeitsrundsendungen. Infolgedessen muss er möglicherweise den gesamten Cachespeicherinhalt löschen, wenn er aktiv wird, da er nicht weiß, ob einige seiner zwischengespeicherten Objekte seit seiner Deaktivierung aktualisiert worden sind. Das Löschen des gesamten Cachespeicherinhaltes nach einer Unterbrechung ist sehr kostspielig, da die meisten Vorteile der Cachespeicherung zur Einsparung von benötigter Bandbreite verloren gehen. Außerdem ist es unnötig, den gesamten Cachespeicherinhalt zu löschen, da die meisten der zwischengespeicherten Objekte in den mobilen Computern möglicherweise eher selten aktualisiert werden und selbst nach einer längeren Unterbrechung wiederhergestellt werden können.
  • Zur Wiederherstellung der zwischengespeicherten Objekte nach einer Unterbrechung kann der mobile Computer eine Prüfung mit dem Server ausführen. Selbst wenn der Server zustandslos ist, kann er das Objektaktualisierungsprotokoll aufrechterhalten. Eine einfache Möglichkeit zur Gültigkeitsüberprüfung ist die Übertragung aller IDs seiner zwischengespeicherten Objekte an den Server. Dies wird als einfache Prüfung (simple checking) (SC) bezeichnet. Eine einfache Prüfung erfordert jedoch einen hohen Kommunikationsaufwand, insbesondere, wenn der Cachespeicherumfang groß ist.
  • Zur Verringerung des Kommunikationsaufwands können die Datenbankobjekte im Server in Gruppen partitioniert werden, und ein mobiler Computer kann die Gültigkeit einer Gruppe anstelle jedes einzelnen Objektes prüfen. Falls die gesamte Gruppe nicht aktualisiert wurde, kann die Gruppe wiederhergestellt werden. Falls jedoch irgendein Objekt in einer Gruppe aktualisiert wurde, muss die gesamte Gruppe aus dem Cachespeicher gelöscht werden. Dies wird als einfache Gruppierung (simple grouping) (SG) bezeichnet. Falls der Gruppenumfang groß ist, kann das Löschen der gesamten Gruppe ebenfalls kostspielig und unnötig sein.
  • In USENIX Summer Conference Proceedings, 6. Juni 1994, Seiten 279 bis 289, Mummert er al., "Large granularity cache coherence for intermittent connectivity" wird eine Realisierung einer Cachespeicherkohärenz mit hoher Granularität (large granularity cache coherence) für das Coda File System gezeigt. Zur Zusammenfassung des Cachespeicherstatus von Datenträgern verwalten Server Versionsstempel (version stamps) für jeden Datenträger, die sie speichern. Ein Client speichert den Versionsstempel zwischen, wobei ein Rückruf (callback) für den Datenträger eingerichtet wird. Falls die Stempel übereinstimmen, sind alle vom Datenträger zwischengespeicherten Daten des Clients gültig. Der Server erteilt einen Rückruf für den Datenträger, um zu ermöglichen, dass der Client die zwischengespeicherten Dateien ohne zusätzliche Kommunikation lesen kann. Falls die Gültigkeitsprüfung fehlschlägt, kehrt der Client zurück zu Dateirückrufen. Selbstverständlich muss der Client sicherstellen, dass Versionsstempel mit den Daten übereinstimmen, die sie darstellen.
  • Das Dokument SIGMOD Record, Band 23, Nr. 2, 1. Juni 1994, Seiten 1 bis 12, Barbara et al., "Sleepers and workaholics: caching strategies in mobile environments", beschreibt eine Cachespeicherungsstrategie, die Ungültigkeitsmeldungen und einen zustandslosen Server verwendet. Die Ungültigkeitsmeldung wird alle L Sekunden gesendet. Die Ungültigkeitsmeldung setzt sich aus den Zeitstempeln der letzten Änderung für Elemente zusammen, die in den letzten w Sekunden aktualisiert wurden. Die mobile Einheit empfängt die Meldung und aktualisiert den Status ihres Cachespeichers. Die mobile Einheit löscht entweder jedes zwischengespeicherte Element aus ihrem Cachespeicher (wenn gemeldet wird, dass das Element zu einem späteren Zeitpunkt als dem im Cachespeicher gespeicherten Zeitstempel geändert wurde) oder aktualisiert den Zeitstempel des Cachespeichers entsprechend dem Zeitstempel der Meldung (falls das Element dort nicht erwähnt wurde). Dies wird für jedes Element im Cachespeicher ausgeführt, unabhängig davon, ob es eine anstehende Anfrage nach diesem Element gibt.
  • Jede der oben erwähnten Vorgehensweisen nach dem Stand der Technik zur Cachespeicherung haben Nachteile, die infolge des großen Kommunikationsaufwands, der für die Aktualisierung des Cachespeichers eines fernen Computers erforderlich ist, die Leistungsfähigkeit des Systems vermindern.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Aufgabe der vorliegenden Erfindung besteht daher darin, einem Computer die Bewegung von einer Zelle zu einer anderen zu ermöglichen, ohne einen Server zu benachrichtigen, und sich zur Einsparung von Batteriestrom vom Server zu trennen, jedoch bei Aktivierung den größten Teil seines Cachespeichers zu bewahren.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ermöglichen ein Kommunikationssystem und -verfahren einschließlich eines leistungsfähigen Verfahrens zur Cachespeicher-Ungültigmachung einem Computer eine Positionsänderung (relocate) und eine Unterbrechung, ohne den Server zu benachrichtigen. Der Server partitioniert die gesamte Datenbank in eine Anzahl von Gruppen. Außerdem kennzeichnet der Server dynamisch kürzlich aktualisierte Objekte in einer Gruppe und schließt sie aus der Gruppe aus, wenn er die Gültigkeit der Gruppe überprüft. Falls diese Objekte bereits in der neuesten Ungültigkeitsrundsendung enthalten waren, kann der ferne Computer sie in seinem Cachespeicher ungültig machen, bevor er die Gruppengültigkeit zusammen mit dem Server überprüft. Wenn die kürzlich aktualisierten Objekte aus einer Gruppe ausgeschlossen wurden, kann der Server daraus schließen, dass die nicht aktualisierten Objekte in der Gruppe im Cachespeicher erhalten bleiben können und den Rest der Gruppe auf Gültigkeit prüfen. Dieses Verfahren wird als „Grouping with COld update set Retention" (GCORE) bezeichnet. GCORE ist energiesparend, da es einem mobilen Computer ermöglicht, sich zur Energieeinsparung zu jedem beliebigen Zeitpunkt abzutrennen und doch den größten Teil des Cachespeicherinhaltes zu bewahren, falls er nicht aktualisiert wurde und folglich als nicht aktualisierter Satz (cold update set) betrachtet wird. Außerdem bringt es durch die Verwendung einer Gruppierung von Daten keinen hohen Kommunikationsaufwand mit sich.
  • In einer bevorzugten Ausführungsform wird GCORE zur Unterstützung einer energiesparenden Cachespeicherung in einem fernen Datenverarbeitungssystem verwendet. Datenbankobjekte werden in eine geringe Anzahl von Gruppen partitioniert. Um Objekte, die nicht aktualisiert wurden, in einer Gruppe zu erhalten, führt der Server für jede Gruppe ein Objektaktualisierungsprotokoll der vergangenen W Rundsendeintervalle, das aus einer Liste von Objekt-IDs und ihren neuesten Aktualisierungszeitpunkten und dem neuesten Aktualisierungszeitpunkt der Gruppe besteht. Der Server sendet periodisch eine Ungültigkeitsmeldung, die die letzten w Rundsendeintervalle des Objektaktualisierungsprotokolls enthält. Falls ein ferner Computer aktiv ist, macht er seine Cachespeichereinträge auf der Grundlage der Ungültigkeitsmeldung ungültig. Falls diese Rundsendemeldung seit der Aktivierung des fernen Computers als Erstes empfangen wird, überträgt er außerdem eine Aufwärtsverbindungsnachricht (uplink message) an den Server, die die Gruppen-IDs und den Zeitstempel der letzten Rundsendemeldung enthält, die vor seiner Abtrennung empfangen wurde. Der Server prüft die Gültigkeit einer Gruppe, indem er überprüft, ob alle seit der Abtrennung des mobilen Computers aktualisierten Objekte in der letzten Rundsendemeldung enthalten waren. Nach dem Empfang der Gültigkeitsmeldung vom Server verarbeitet der gerade aktivierte ferne Computer sodann seine Anfragen, die seit seiner Aktivierung eingeleitet wurden. Folglich wird eine Cachespeicher-Ungültigmachung in GCORE durch eine asymmetrische Vorgehensweise ausgeführt, wobei ein Server Ungültigkeitsmeldungen periodisch sendet und ein ferner Computer seine Cachespeichergültigkeit nach der Abtrennung und erneuten Verbindung überprüfen kann.
  • Die vorhergehende Beschreibung hat die Merkmale und technischen Vorteile der vorliegenden Erfindung umfassend dargelegt, damit die folgende ausführliche Beschreibung der Erfindung besser verstanden werden kann. Im Folgenden werden zusätzliche Merkmale und Vorteile der Erfindung beschrieben, die den Gegenstand der Ansprüche der Erfindung bilden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Für ein vollständigeres Verständnis der vorliegenden Erfindung und ihrer Vorteile wird nun auf die folgenden Beschreibungen in Verbindung mit den begleitenden Zeichnungen Bezug genommen, in denen:
  • 1 ein Blockschaltbild eines Kommunikationssystems dargestellt ist, das die vorliegende Erfindung verkörpert;
  • 2 ein Flussdiagramm eines Prozesses zur Verwaltung einer Liste von Datenobjekten dargestellt ist, die seit der letzten Rundsendung aktualisiert wurden;
  • 3 ein Flussdiagramm eines Prozesses zur Verwaltung eines Gruppenaktualisierungsprotokolls dargestellt ist;
  • 4 ein Flussdiagramm eines Prozesses zur schnellen Überprüfung der Gruppengültigkeit dargestellt ist;
  • 5 ein Flussdiagramm eines Prozesses zur Vorbereitung einer neuen Rundsendemeldung dargestellt ist;
  • 6 ein Flussdiagramm einer Anfrageverarbeitung durch einen fernen Computer dargestellt ist; und
  • 7 ein Flussdiagramm einer Gruppengültigkeitsprüfung durch einen Server dargestellt ist.
  • AUSFÜHRLICHE BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM DER ERFINDUNG
  • Mit Bezugnahme auf 1 wird ein Blockschaltbild eines Kommunikationssystems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung beschrieben.
  • In der folgenden Beschreibung wird vorausgesetzt, dass Datenbankobjekte in Servern 2 verwaltet werden, die durch ein Kommunikationsnetz 3 verbunden sind. Außerdem wird vorausgesetzt, dass die Datenbank in jedem mobilen Server 2 repliziert wird. Folglich kann ein ferner Computer die Datenbank von jeder drahtlosen Funkzelle aus abfragen. Ferne Computer 1 können durch einen drahtlosen Kommunikationskanal mit einem der Server 2 verbunden werden. Wenn sich ein Computer 1 von einer drahtlosen Funkzelle 12, 14, 16, 18 zu einer anderen Zelle 14, 16, 18, 12 bewegt, muss er für die Cachespeicher-Ungültigkeitsmachung keinen der Server 2 benachrichtigen. Anfragen werden in den fernen Computern 1 ausgeführt, während Aktualisierungen an den Datenbanken nur in den Servern 2 ausgeführt werden. Zur Verarbeitung von Anfragen mit den aktuelleren Daten werden Anfragen gestapelt (batched) und direkt nach dem Empfang einer neuen Rundsendemeldung durch einen fernen Computer 1 verarbeitet. Sobald Anfragen bezüglich Datenobjekten vorliegen, werden diese im nichtflüchtigen Speicher der fernen Computer 1 zwischengespeichert, beispielsweise auf Festplatten (nicht gezeigt) in den fernen Computern 1. Die Server 2 senden periodisch Ungültigkeitsmeldungen, die die Objekt-IDs und ihre neuesten Aktualisierungszeitpunkte enthalten. Falls ein ferner Computer 1 aktiv ist, macht er seinen lokalen Cachespeicher entsprechend der Ungültigkeitsmeldung ungültig. Um die Vorteile einer Cachespeicherung zu erhalten, obwohl es den fernen Computern 1 gestattet wird, sich nach Belieben abzutrennen (abzuschalten) oder ihre Position zu verändern, realisieren die Server 2 ein Cachespeicher-Ungültigmachungsverfahren, das als "Grouping with Gold update set retention" (GCORE) 4 bezeichnet wird.
  • Ein Server 2 sendet alle L Zeiteinheiten eine Ungültigkeitsmeldung. Die Ungültigkeitsmeldungen werden nämlich bei ..., T – 2L, T – L und T gesendet. Zur Realisierung von GCORE werden drei wichtige Datenstrukturen von den Servern 2 verwaltet. Die erste, curlist, enthält für jedes eindeutige Objekt, das seit der letzten Ungültigkeitsrundsendung aktualisiert wurde, eine Liste von Paaren von (OID, Zeit) (oid, time), wobei OID der Objektkennzeichner und "Zeit" der Zeitpunkt der Objektaktualisierung ist.
  • struct pair
    Figure 00110001
  • Die zweite, bcast_report, enthält den Zeitpunkt der Rundsendung und eine Liste von Paaren von Objekten, die in den letzten w Rundsendeintervallen aktualisiert wurden.
  • struct bcast_report
    Figure 00110002
  • Die dritte, grouptbl, enthält eine Anordnung von Gruppeneinträgen und wird zum Verwalten des Aktualisierungsprotokolls für jede Gruppe verwendet. Der Server 2 verwaltet das Aktualisierungsprotokoll für jede Gruppe für die letzten W Rundsendeintervalle, wobei W ≥ w.
  • struct group_entry
    Figure 00110003
  • Figure 00120001
  • Die Gruppierungsfunktion kann so einfach wie eine Modulo-Funktion sein, wobei die Anzahl von Objekten in jeder Gruppe ungefähr gleich ist. Andererseits kann die Gruppierungsfunktion auch für verschiedene Typen von Objekten unterschiedlich sein, was zu unterschiedlichen Gruppengrößen führt. Bedingung ist, dass die gewählte Gruppierungsfunktion zwischen den Servern 2 und den fernen Computern 1 vereinbart wird. Es wird vorausgesetzt, dass der letzte Rundsendezeitpunkt (latest_bcast_time) im nichtflüchtigen Speicher (nicht gezeigt) jedes fernen Computers 1 zwischengespeichert wird, so dass ein ferner Computer 1 diese Information nach seiner Aktivierung erhalten kann.
  • Für jedes aktualisierte Objekt führt der Server 2 zwei Prozesse aus: insert_curlist und insert_grouptbl. 2 zeigt das Flussdiagramm für insert_curlist. Wenn das Objekt A ktualisiert wird, 210, wird "curlist" überprüft, um festzustellen, ob es ein Paar gibt, das denselben Objektkennzeichner wie A hat, 211. Ist dies der Fall, wird der Aktualisierungszeitpunkt dieses Paares zum aktuellen Zeitpunkt geändert, 212. Andernfalls wird ein neues Paar erzeugt, das die Objekt-ID A und den aktuellen Aktualisierungszeitpunkt enthält, und am Beginn der aktuellen Liste eingefügt, 213.
  • 3 zeigt das Flussdiagramm für insert_grouptbl. Wenn ein Objekt, beispielsweise A, aktualisiert wird, 320, wird als Erstes die entsprechende Gruppen-ID des Objektes A berechnet, 321. Falls eine solche Gruppen-ID gid ist, wird grouptbl[gid].time zum aktuellen Zeitpunkt geändert. Als Nächstes werden alle Paare überprüft, auf die grouptbl[gid].uplist zeigt, um festzustellen, ob irgendeines von ihnen denselben Objektkennzeichner wie das Objekt A hat, 322. Ist dies der Fall, wird sein entsprechender Aktualisierungszeitpunkt zum aktuellen Zeitpunkt geändert, 324. Andernfalls wird ein neues Paar erzeugt und am Beginn von grouptbl[gid].uplist für das Objekt A eingefügt, 323.
  • Alle L Zeiteinheiten sendet der Server 2 eine Ungültigkeitsmeldung und aktualisiert grouptbl entsprechend. 4 zeigt das Flussdiagramm von advance_grouptbl. Für jeden Eintrag i von grouptbl entfernt der Server die Paare, auf die grouptbl[i].uplist zeigt, deren Aktualisierungszeitpunkte kleiner als T – WL sind, wobei T der aktuelle Rundsendezeitpunkt ist, 430. Außerdem wird für jedes grouptbl[i] die Gesamtanzahl von Paaren, deren Aktualisierungszeitpunkte zwischen T – WL und T – wL liegen, für den neuen Rundsendezeitpunkt T erneut berechnet, 431. Die erneute Berechnung von grouptbl[i].tot_wW dient der schnellen Überprüfung der Gruppengültigkeit.
  • 5 zeigt das Flussdiagramm der Vorbereitung der neuen Rundsendemeldung new_report. Als Erstes werden alle Paare entfernt, auf die bcast_report.uplist zeigt, deren Aktualisierungszeitpunkte kleiner als T – wL sind, 540. Anschließend wird außerdem jedes Paar entfernt, auf das bcast_report.uplist zeigt, das dieselbe Objekt_ID wie diejenige in "curlist" aufweist, 541. Danach wird die gesamte Liste, auf die "curlist" zeigt, am Beginn von bcast_report.uplist eingefügt, "curlist" wird auf NULL zurückgesetzt, und bcast_report.time wird auf den aktuellen Rundsendezeitpunkt gesetzt, 542. Dadurch enthält bcast_report nur die eindeutigen Objektpaare, die in den letzten w Rundsendeintervallen aktualisiert wurden.
  • Wenn ein ferner Computer 1 Anfragen mit aktuellen Daten verarbeiten muss, werden alle Anfragen gestapelt, bis er eine neue Rundsendemeldung empfängt.
  • 6 zeigt das Flussdiagramm der Anfrageverarbeitung durch einen fernen Computer 1. Nach dem Empfang einer neuen boast_report_macht der Computer 1 als Erstes seinen Cachespeicherinhalt auf der Grundlage dieser Meldung ungültig, 650. Falls dieser Computer 1 getrennt wurde und dies die erste bcast_report ist, die er nach seiner Aktivierung empfängt, und latest_bcast_time < bcast_report.time, 651, überträgt er seinen latest_boast_time und seine Gruppen-ID zur Gültigkeitsprüfung an den Server 2, 652. Anschließend wartet er auf die Gültigkeitsergebnisse vom Server 2 und macht seinen Cachespeicher ungültig, 653. Der Computer 1 verarbeitet sodann alle Anfragen, 654. Falls Objekte im lokalen Cachespeicher (nicht gezeigt) nicht gefunden werden können, überträgt er Anforderungen an den Server, 254.
  • Zur Gruppengültigkeitsprüfung führt der Server einen einfachen Prozess aus. 7 zeigt das Flussdiagramm dieses Gültigkeitsprüfungsprozesses. Für jedes grouptbl[i] 760 überprüft der Server, ob grouptbl[i].time < latest_bcast_time, 761. Ist dies der Fall, ist grouptbl[i] gültig, 763. Falls nicht, überprüft er außerdem, ob grouptbl[i].tot_wW = 0 und grouptbl[i].time > (T – WL), 762. Ist dies der Fall, ist grouptbl[i] ebenfalls gültig, 763. Andernfalls ist grouptbl[i] ungültig, 764.

Claims (4)

  1. Verfahren zur Verringerung des Systemaufwands in einem Kommunikationssystem, wenn die Datenkohärenz zwischen einem oder mehreren Servern (2) und einer oder mehreren fernen Einheiten (1) aufrechterhalten wird, wobei die eine oder mehreren fernen Einheiten für den Betrieb in einem Unterbrechungsmodus in einem Kommunikationssystem ausgelegt sind, wobei eine Cachespeicher-Ungültigmachung in einer fernen Einheit durch eine asymmetrische Vorgehensweise ausgeführt wird, wobei ein Server (2) Ungültigkeitsmeldungen periodisch rundsendet und die ferne Einheit ihre Cachespeichergültigkeit nach der Unterbrechung und erneuten Verbindung prüfen kann, wobei das Verfahren die folgenden Schritte umfasst: Aktualisieren von Datenobjekten nur in dem einen oder den mehreren Servern (2), periodisches Rundsenden einer Ungültigkeitsmeldung, die ein oder mehrere Objekte enthält, die während einer neuesten Vielzahl von Rundsendeintervallen aktualisiert wurden, von einem der ein oder mehreren Server (2) an die eine oder mehreren fernen Einheiten (1), damit die eine oder mehreren fernen Einheiten (1) den Inhalt von Cachespeichern in der einen oder den mehreren fernen Einheiten (1) auf der Grundlage von in der Ungültigkeitsmeldung enthaltenen Daten ungültig machen, gekennzeichnet durch die folgenden Schritte: Gruppieren von Datenobjekten, die in dem einen oder den mehreren Servern (2) gespeichert sind, in eine oder mehrere Gruppen, wobei zwischen den Servern (2) und den fernen Einheiten (1) eine Vereinbarung darüber getroffen wird, welche Gruppierungsfunktion ausgewählt wird: Verwalten eines Objektaktualisierungsprotokolls einer zurückliegenden Vielzahl von Rundsendeintervallen, das aus den Objektkennzeichnern und ihren neuesten Aktualisierungszeiten und der neuesten Aktualisierungszeit der Gruppe besteht, in dem einem oder den mehreren Servern für jede Gruppe, wobei die zurückliegende Vielzahl von Rundsendeintervallen größer als die neueste Vielzahl von Rundsendeintervallen ist; Empfangen einer Aufwärtsverbindungsnachricht von einer der fernen Einheiten (1) durch einen der Server (2), falls seit der Aktivierung der fernen Einheit als Erstes eine Rundsendemeldung empfangen wird, wobei die Aufwärtsverbindungsnachricht Gruppen-IDs und einen Zeitstempel der neuesten Rundsendemeldung enthält, die von der fernen Einheit (1) empfangen wurden, bevor sie unterbrochen wurde; und Prüfen der Gültigkeit von jeder Gruppe durch den Server, indem überprüft wird, ob alle Objekte, die seit der Unterbrechung der fernen Einheit (1) aktualisiert wurden, in der neuesten Rundsendemeldung enthalten waren, wobei der Server (2) das eine oder die mehreren Objekte, die während der neuesten Vielzahl von Rundsendeintervallen aktualisiert wurden, aus jeder Gruppe von Objekten ausschließt, wenn er die Gültigkeit der Gruppe prüft; Übertragen einer Gültigkeitsmeldung an die ferne Einheit.
  2. Verfahren nach Anspruch 1, das außerdem die folgenden Schritte umfasst: Warten auf eine nächste Ungültigkeitsrundsendung, um Cachespeichereinträge in einer der fernen Einheiten (1) ungültig zu machen; und Übertragen eines Zeitkennzeichners einer letzten Ungültigkeitsmeldung, die von der fernen Einheit (1) vor einer neuesten Unterbrechung der fernen Einheit (1) empfangen wurde.
  3. Verfahren nach einem der Ansprüche 1 oder 2, das außerdem den folgenden Schritt umfasst: Ermitteln einer Gültigkeit einer Gruppe in dem einen oder den mehreren Servern, die ein oder mehrere während eines festgelegten Rundsendeintervalls aktualisierte Objekte ausschließt.
  4. Kommunikationssystem, das Folgendes umfasst: ein Kommunikationsnetz (3); einen oder mehrere mit dem Kommunikationsnetz (3) verbundene Server (2); eine oder mehrere ferne Einheiten (1), die für eine bestimmte Zeitspanne für den Betrieb in einem Unterbrechungsmodus und für den Betrieb in Verbindung mit dem einem oder den mehreren Servern ausgelegt sind, wobei jede der fernen Einheiten Mittel umfasst, die auf eine Ungültigkeitsmeldung ansprechen, die von einem der Server rundgesendet wurde, um einen in der Ungültigkeitsmeldung gekennzeichneten Cachespeicherinhalt ungültig zu machen, wobei die Cachespeicher-Ungültigmachung durch eine asymmetrische Vorgehensweise ausgeführt wird, wobei der Server (2) Ungültigkeitsmeldungen periodisch rundsendet und eine ferne Einheit ihre Cachespeichergültigkeit nach der Unterbrechung und erneuten Verbindung prüfen kann; wobei jeder der Server (2) Mittel zum Speichern von Datenobjekten umfasst, wobei Aktualisierungen nur in den Servern (2) ausgeführt werden; und Mittel zum periodischen Rundsenden einer Ungültigkeitsmeldung, die ein oder mehrere während einer neuesten Vielzahl von Rundsendeintervallen aktualisierte Objekte enthält, von einem der ein oder mehreren Server (2) an eine oder mehrere ferne Einheiten (1), damit die eine oder mehreren fernen Einheiten (1) den Inhalt von Cachespeichern in der einen oder den mehreren fernen Einheiten (1) auf der Grundlage von in der Ungültigkeitsmeldung enthaltenen Daten ungültig machen, gekennzeichnet durch: Mittel zum Gruppieren von Datenobjekten, die in dem einen oder mehreren Servern (2) gespeichert sind, in eine oder mehrere Gruppen, wobei zwischen den Servern (2) und den fernen Einheiten (1) eine Vereinbarung darüber getroffen wird, welche Gruppierungsfunktion ausgewählt wird; Mittel zum Verwalten eines Objektaktualisierungsprotokolls einer zurückliegenden Vielzahl von Rundsendeintervallen, das aus den Objektkennzeichnern und ihren neuesten Aktualisierungszeiten und der neuesten Aktualisierungszeit der Gruppe besteht, in dem einem oder den mehreren Servern für jede Gruppe, wobei die zurückliegende Vielzahl von Rundsendeintervallen größer als die neueste Vielzahl von Rundsendeintervallen ist; Mittel zum Empfangen einer Aufwärtsverbindungsnachricht von einer der fernen Einheiten (1) durch einen der Server (2), die Gruppen-IDs und einen Zeitstempel der neuesten Rundsendemeldung enthält, die von der fernen Einheit (1) empfangen wurden, bevor sie unterbrochen wurde, falls seit der Aktivierung der fernen Einheit als Erstes eine Rundsendemeldung empfangen wurde; und Mittel zum Prüfen der Gültigkeit von jeder Gruppe durch den Server, indem überprüft wird, ob alle Objekte, die seit der Unterbrechung der fernen Einheit (1) aktualisiert wurden, in der neuesten Rundsendemeldung enthalten waren, wobei der Server (2) das eine oder die mehreren Objekte, die während der neuesten Vielzahl von Rundsendeintervallen aktualisiert wurden, aus jeder Gruppe von Objekten ausschließt, wenn er die Gültigkeit der Gruppe prüft; Mittel zum Übertragen einer Gültigkeitsmeldung an die ferne Einheit.
DE69530556T 1994-11-23 1995-09-15 Kommunikationssystem und Verfahren zu energiesparender Cachespeicherung für mobile Datenverarbeitung Expired - Lifetime DE69530556T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US344325 1994-11-23
US08/344,325 US6128648A (en) 1994-11-23 1994-11-23 Information handling system and method for maintaining coherency between network servers and mobile terminals

Publications (2)

Publication Number Publication Date
DE69530556D1 DE69530556D1 (de) 2003-06-05
DE69530556T2 true DE69530556T2 (de) 2004-04-08

Family

ID=23350053

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69530556T Expired - Lifetime DE69530556T2 (de) 1994-11-23 1995-09-15 Kommunikationssystem und Verfahren zu energiesparender Cachespeicherung für mobile Datenverarbeitung

Country Status (4)

Country Link
US (1) US6128648A (de)
EP (1) EP0714066B1 (de)
JP (1) JP3442919B2 (de)
DE (1) DE69530556T2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826021A (en) * 1996-09-17 1998-10-20 Sun Microsystems, Inc. Disconnected write authorization in a client/server computing system
US5924094A (en) * 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
US6446092B1 (en) 1996-11-01 2002-09-03 Peerdirect Company Independent distributed database system
US6667494B1 (en) * 1997-08-19 2003-12-23 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and semiconductor display device
US6717179B1 (en) 1997-08-19 2004-04-06 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and semiconductor display device
JPH11143379A (ja) 1997-09-03 1999-05-28 Semiconductor Energy Lab Co Ltd 半導体表示装置補正システムおよび半導体表示装置の補正方法
DE19741870A1 (de) 1997-09-23 1999-03-25 Cit Alcatel Verfahren zum Verteilen von Datenpaketen einer Betriebssoftware
US6338086B1 (en) * 1998-06-11 2002-01-08 Placeware, Inc. Collaborative object architecture
US6564218B1 (en) 1998-12-10 2003-05-13 Premitech Aps Method of checking the validity of a set of digital information, and a method and an apparatus for retrieving digital information from an information source
DK173612B1 (da) * 1998-12-10 2001-04-30 Smidth & Co As F L Brænder
US7349902B1 (en) * 1999-08-04 2008-03-25 Hewlett-Packard Development Company, L.P. Content consistency in a data access network system
US20010047394A1 (en) 1999-09-10 2001-11-29 Kloba David D. System, method, and computer program product for executing scripts on mobile devices
US7987420B1 (en) 1999-09-10 2011-07-26 Ianywhere Solutions, Inc. System, method, and computer program product for a scalable, configurable, client/server, cross-platform browser for mobile devices
US8595308B1 (en) 1999-09-10 2013-11-26 Ianywhere Solutions, Inc. System, method, and computer program product for server side processing in a mobile device environment
US7392308B2 (en) 1999-09-10 2008-06-24 Ianywhere Solutions, Inc. System, method, and computer program product for placement of channels on a mobile device
GB2371902B (en) * 1999-09-10 2004-11-17 Avantgo Inc System, method, and computer program product for interactive interfacing with mobile devices
US20020029287A1 (en) * 2000-02-02 2002-03-07 Yechiam Yemini Method and apparatus for dynamically addressing a circuits based network
US7062541B1 (en) 2000-04-27 2006-06-13 International Business Machines Corporation System and method for transferring related data objects in a distributed data storage environment
US20020073027A1 (en) * 2000-12-11 2002-06-13 Hui Helen Shan-Shan Mobile payment system
US7065576B2 (en) * 2001-09-27 2006-06-20 Matsushita Electric Industrial Co., Ltd. Dynamic multicast grouping for vehicles and other mobile objects
KR100434055B1 (ko) * 2002-04-27 2004-06-04 엘지전자 주식회사 이동통신 시스템의 캐시 일관성 유지 방법
US6965564B2 (en) 2003-02-14 2005-11-15 America Online, Inc. Wireless datagram transaction protocol system
KR100531861B1 (ko) * 2003-05-31 2005-11-29 엘지전자 주식회사 무선 인터넷 환경에서의 캐쉬 일관성 유지 방법
US7577960B2 (en) 2003-06-19 2009-08-18 Microsoft Corporation System and method for managing cached objects using notifications bonds
US7873353B2 (en) 2003-09-30 2011-01-18 Ianywhere Solutions, Inc. Method and system for accessing applications and data, and for tracking of key indicators on mobile handheld devices
US8135803B2 (en) 2004-08-23 2012-03-13 Ianywhere Solutions, Inc. Method, system, and computer program product for offline advertisement servicing and cycling
US20140215450A1 (en) * 2013-01-31 2014-07-31 Trane International Inc. System and method for updating software
US10142436B2 (en) 2015-11-19 2018-11-27 Microsoft Technology Licensing, Llc Enhanced mode control of cached data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4714992A (en) * 1985-11-26 1987-12-22 International Business Machines Corporation Communication for version management in a distributed information service
US4714996A (en) * 1985-11-26 1987-12-22 International Business Machines Corporation Impact calculation for version management in a distributed information service
US4827399A (en) * 1986-10-03 1989-05-02 Nec Corporation Common file system for a plurality of data processors
US5151989A (en) * 1987-02-13 1992-09-29 International Business Machines Corporation Directory cache management in a distributed data processing system
US4807224A (en) * 1987-08-21 1989-02-21 Naron Steven E Multicast data distribution system and method
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US5261069A (en) * 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
US5537574A (en) * 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
US5448727A (en) * 1991-04-30 1995-09-05 Hewlett-Packard Company Domain based partitioning and reclustering of relations in object-oriented relational database management systems
US5210753A (en) * 1991-10-31 1993-05-11 International Business Machines Corporation Robust scheduling mechanm for efficient band-width usage in muliticell wireless local networks
US5497463A (en) * 1992-09-25 1996-03-05 Bull Hn Information Systems Inc. Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system
US5452447A (en) * 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5315703A (en) * 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
US5560005A (en) * 1994-02-25 1996-09-24 Actamed Corp. Methods and systems for object-based relational distributed databases
US5434994A (en) * 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5490270A (en) * 1994-06-16 1996-02-06 International Business Machines Corporation Simultaneous updates to the modification time attribute of a shared file in a cluster having a server and client nodes

Also Published As

Publication number Publication date
JPH08235064A (ja) 1996-09-13
EP0714066A2 (de) 1996-05-29
US6128648A (en) 2000-10-03
DE69530556D1 (de) 2003-06-05
JP3442919B2 (ja) 2003-09-02
EP0714066A3 (de) 1997-06-11
EP0714066B1 (de) 2003-05-02

Similar Documents

Publication Publication Date Title
DE69530556T2 (de) Kommunikationssystem und Verfahren zu energiesparender Cachespeicherung für mobile Datenverarbeitung
DE69432895T2 (de) Wiedergewinnung der benutzerortsstellenspeicherung in einer mobilen funktelefonanordnung
DE69533838T2 (de) Verfahren und System zur Aktualisierung der nachgebildeten Datenbanken in Fernsprechnetzen
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
DE60111072T2 (de) Verfahren und vorrichtung zur parallelen nachrichtenübermittlung in echtzeit von dateisegmentierten
DE602004004200T2 (de) System und Verfahren zum Verwalten von gepufferten Objekten unter Verwendung von Mitteilungsverbindungen
DE69929095T2 (de) Verwaltung eines durch eine Mehrzahl von Knoten benutzten Betriebsmittels
DE10085311B3 (de) Verteiltes Dateisystem mit Multicast-Wiedergewinnung
DE60204729T2 (de) Objektenlöschen von einem Vorrichtungspeicher
DE60316783T2 (de) Erkennung von Speichermangel und Feinabschaltung
DE60220263T2 (de) Server-duplexverfahren und geduplextes serversystem
DE60203550T2 (de) Verfahren, System and Computerprogrammprodukt für die Synchronisation von verschiedenen Datenstrukturen durch Benutzung von Aktualisierungsmeldungen
DE60310676T2 (de) System und verfahren zum identifizieren eines drahtlosen versorgungsknotens für eine mobileinheit
DE10393919B4 (de) Spekulative verteilte Konfliktauflösung für ein Cache-Kohärenzprotokoll
DE202014010953U1 (de) Gruppierung von Objekten in einem verteilten Datenspeichersystem basierend auf Protokollen und Platzierungsrichtlinien
DE602005002532T2 (de) Cluster-datenbank mit ferndatenspiegelung
DE10134492A1 (de) Kaskadierte Ausfallübernahme einer Datenverwaltungsanwendung für gemeinsam genutzte Plattenspeichersysteme in lose verbundenen Knotengruppierungen
DE10036726A1 (de) Skalierbares Multimedia-Dateisystem für Netzergänzungsspeichergeräte
EP1959639B1 (de) Ausfallsicheres System zum Verwalten von Client-Server-Kommunikation
DE202013012477U1 (de) Organisieren von daten in einem verteilten speichersystem
DE102013200031A1 (de) Verwaltung einer globalen Weiterleitungstabelle in einem verteilten Switch
DE102009023898A1 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE112012002097T5 (de) Verwalten eines Nachrichtenabonnements in einem Publikations-Abonnement- Nachrichtensystem
DE602004006224T2 (de) Verfahren und Vorrichtung zur Datensynchronisierung eines verteilten Datenbanksystems
EP0964335A2 (de) Verfahren zum gesicherten Ändern von in einer Datenbank gespeicherten Daten, Datenbanksystem und damit ausgestattetes Netzelement

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7