DE69530556T2 - Kommunikationssystem und Verfahren zu energiesparender Cachespeicherung für mobile Datenverarbeitung - Google Patents
Kommunikationssystem und Verfahren zu energiesparender Cachespeicherung für mobile Datenverarbeitung Download PDFInfo
- 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
Links
Classifications
-
- 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
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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 Kommunikationsnetz3 verbunden sind. Außerdem wird vorausgesetzt, dass die Datenbank in jedem mobilen Server2 repliziert wird. Folglich kann ein ferner Computer die Datenbank von jeder drahtlosen Funkzelle aus abfragen. Ferne Computer1 können durch einen drahtlosen Kommunikationskanal mit einem der Server2 verbunden werden. Wenn sich ein Computer1 von einer drahtlosen Funkzelle12 ,14 ,16 ,18 zu einer anderen Zelle14 ,16 ,18 ,12 bewegt, muss er für die Cachespeicher-Ungültigkeitsmachung keinen der Server2 benachrichtigen. Anfragen werden in den fernen Computern1 ausgeführt, während Aktualisierungen an den Datenbanken nur in den Servern2 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 Computer1 verarbeitet. Sobald Anfragen bezüglich Datenobjekten vorliegen, werden diese im nichtflüchtigen Speicher der fernen Computer1 zwischengespeichert, beispielsweise auf Festplatten (nicht gezeigt) in den fernen Computern1 . Die Server2 senden periodisch Ungültigkeitsmeldungen, die die Objekt-IDs und ihre neuesten Aktualisierungszeitpunkte enthalten. Falls ein ferner Computer1 aktiv ist, macht er seinen lokalen Cachespeicher entsprechend der Ungültigkeitsmeldung ungültig. Um die Vorteile einer Cachespeicherung zu erhalten, obwohl es den fernen Computern1 gestattet wird, sich nach Belieben abzutrennen (abzuschalten) oder ihre Position zu verändern, realisieren die Server2 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 Servern2 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. - 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.
- 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. - 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 Computern1 vereinbart wird. Es wird vorausgesetzt, dass der letzte Rundsendezeitpunkt (latest_bcast_time) im nichtflüchtigen Speicher (nicht gezeigt) jedes fernen Computers1 zwischengespeichert wird, so dass ein ferner Computer1 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 Computer1 . Nach dem Empfang einer neuen boast_report_macht der Computer1 als Erstes seinen Cachespeicherinhalt auf der Grundlage dieser Meldung ungültig,650 . Falls dieser Computer1 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 Server2 ,652 . Anschließend wartet er auf die Gültigkeitsergebnisse vom Server2 und macht seinen Cachespeicher ungültig,653 . Der Computer1 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)
- 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. - 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. - 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.
- 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.
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)
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)
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 |
-
1994
- 1994-11-23 US US08/344,325 patent/US6128648A/en not_active Expired - Lifetime
-
1995
- 1995-09-15 EP EP95114510A patent/EP0714066B1/de not_active Expired - Lifetime
- 1995-09-15 DE DE69530556T patent/DE69530556T2/de not_active Expired - Lifetime
- 1995-11-15 JP JP29658795A patent/JP3442919B2/ja not_active Expired - Lifetime
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 |