DE60311116T2 - Verfahren, system und programm zur verwaltung von daten in verteilten cachespeichern - Google Patents

Verfahren, system und programm zur verwaltung von daten in verteilten cachespeichern Download PDF

Info

Publication number
DE60311116T2
DE60311116T2 DE60311116T DE60311116T DE60311116T2 DE 60311116 T2 DE60311116 T2 DE 60311116T2 DE 60311116 T DE60311116 T DE 60311116T DE 60311116 T DE60311116 T DE 60311116T DE 60311116 T2 DE60311116 T2 DE 60311116T2
Authority
DE
Germany
Prior art keywords
cache
destination
data unit
target
update information
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
DE60311116T
Other languages
English (en)
Other versions
DE60311116D1 (de
Inventor
Sandra Austin JOHNSON
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 DE60311116D1 publication Critical patent/DE60311116D1/de
Application granted granted Critical
Publication of DE60311116T2 publication Critical patent/DE60311116T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Verfahren, ein System und ein Programm zur Verwaltung in verteilten Cachespeichern.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • Internetnutzer fordern oft Daten von einem zentralen Internetserver an. Eine Herausforderung, vor der Internetinformationsanbieter stehen, besteht darin, als Antwort auf Benutzeranforderungen rechtzeitig Informationen mit einer hohen Übertragungsrate zu liefern, während der Umfang des Internetverkehrs und die Anzahl der Benutzer exponentiell zunehmen. Eine Lösung dieser Aufgabe zur Versorgung einer wachsenden Anzahl von Benutzer besteht darin, Kopien von Daten an verschiedenen Standorten zu speichern, sodass Datenanforderungen der Benutzer von Spiegelservern an verschiedenen geografischen Standorten bedient werden, um die diesem Spiegelserver nächstgelegenen Benutzer zu versorgen. Andere Lösungen beinhalten die Verwendung von verteilten Cachespeichern mit Kopien von Daten, in denen ein Zentralverzeichnis gespeichert ist, mit dessen Hilfe Daten in den verteilten Cacheservern nachverfolgt werden können. Die Cacheserver können an verschiedenen Stellen in einer Organisation angeordnet werden, um bestimmte Gruppen von Clientbenutzern zu versorgen. Das zentrale Verzeichnis spiegelt Informationen über die Objekte innerhalb der Cacheserver wider.
  • Im Rahmen des Projektes CRISP (Caching and Replication Internet Service Performance, Leistung der Zwischenspeicherung und Vervielfältigung von Internetdiensten) wurde ein Internet-Cachespeicherdienst unter Verwendung von verteilten von Proxy-Cachespeichern entwickelt, die als Gruppe von autonomen Proxyservern eingerichtet sind, deren Inhalte unter Verwendung eines Zuordnungsdienstes gemeinsam genutzt werden.
  • Ousterhout, J.K. et al. beschreiben in „The Sprite Network Operation System", Computer, IEEE Computer Society, Long Beach, CA, USA, US (1. Februar 1998), 21(2), S. 23 bis 36, mehrere Cachespeicher zur Aufrechterhaltung der Schreibkonsistenz, indem diese Informationen über den letzten Schreiber jeder Datei speichern und, wenn ein anderer Client als der letzte Schreiber die Datei öffnet, den letzten Schreiber veranlassen, alle genutzten Seiten in einen Server-Cachespeicher zu schreiben. Ferner ist von Anderson et al. aus „Serverless Network File Systems", ACM Transactions on Computer Systems, ACM, New York, USA (1. Februar 1996), 14(1) bekannt, dass für die Objekte in einem Cachespeicher eine Aktualisierungsinformation gespeichert wird, wobei in verschiedenen Cachespeichern unterschiedliche Versionen von Objekten vorliegen können. Ferner ist von Keleher, P. et al. aus „Lazy Release Consistency for Software Shared Memory", COMPUTER ARCHITECTURE NEWS, 1. Mai 1992, ACM, New York, USA, bekannt, dass eine Änderung durchgeführt wird, wenn die Aktualisierungsinformation anzeigt, dass die Zieldaten geändert worden sind.
  • Ungeachtet der jetzigen Verwendung von Cachespeichern zur Bedienung der Internetzugriffanforderungen von Clients besteht in der Technik weiterhin ein Bedarf an weiter verbesserten Verfahren zur Bedienung der Netzanforderungen von Clients wie beispielsweise von Internetanforderungen.
  • KURZE ÜBERSICHT ÜBER DIE BESCHRIEBENEN AUSFÜHRUNGSFORMEN
  • Gemäß einem ersten Aspekt stellt die vorliegende Erfindung ein Verfahren zur Speicherung von Daten in einer Vielzahl verteilter Cachespeicher bereit, wobei das Verfahren folgende Schritte umfasst: Verwalten einer Kopie eines Objekts in mindestens einem Cachespeicher, wobei sich in mehreren Cachespeichern verschiedene Versionen des Objekts befinden und die Objekte änderbare Dateneinheiten aufweisen können; Verwalten einer Aktualisierungsinformation für jedes in dem Cachespeicher verwaltete Objekt in jedem Cachespeicher, wobei die Aktualisierungsinformation für jedes Objekt in jedem Cachespeicher das Objekt, den das Objekt beinhaltenden Cachespeicher und außerdem anzeigt, ob jede Dateneinheit im Objekt geändert wurde; und Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher nach dem Empfangen einer Änderung für eine Zieldateneinheit in einem Zielobjekt in einem Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt anzeigt, dass die Zieldateneinheit in keinem anderen Cachespeicher geändert wurde; wobei die Cachespeicher verschiedene Versionen des Objekts enthalten können und die Cachespeicher veraltete Versionen des Objekts an Clients der Cachespeicher liefern können.
  • Das Verfahren führt nach dem Empfangen der Anforderung zur Änderung der Dateneinheit vorzugsweise ferner folgenden Schritt aus: Einbinden der empfangenen Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher, wenn die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit geändert wurde.
  • Vorzugsweise führt das Verfahren nach dem Empfangen der Änderung folgende Schritte aus: Ermitteln, ob ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit beinhaltet, wenn die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit nicht geändert wurde; Einbinden der Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher, wenn kein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit beinhaltet; und Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt in jedem anderen Cachespeicher anzeigt, dass die Dateneinheit nicht geändert wurde.
  • Ferner führt das Verfahren nach dem Empfangen der Änderung folgende Schritte aus: Ermitteln, ob ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit beinhaltet, wenn die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit nicht geändert wurde; und Abrufen des aktuellsten Wertes der Zieldateneinheit von dem ermittelten Cachespeicher und Aktualisieren des Zielobjektes im Zielcachespeicher mit dem abgerufenen aktuellsten Wert der Zieldateneinheit, wenn ein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit beinhaltet.
  • Ferner umfasst das Verfahren vorzugsweise die folgenden Schritte: Einbinden der empfangenen Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher nach dem Aktualisieren des Zielobjekts in dem Zielcachespeicher mit dem aktuellsten Wert der Zieldateneinheit; und Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt in jedem anderen Cachespeicher anzeigt, dass die Dateneinheit nicht geändert wurde.
  • Vorzugsweise führt ein Zentralserver die Schritte zur Ermittlung, ob noch ein anderer Cachespeicher das Objekt und den aktuellsten Wert der Zieldateneinheit beinhaltet, und den Schritt zum Abrufen des aktuellsten Wertes der Zieldateneinheit von dem anderen Cachespeicher aus, wobei das Verfahren ferner die folgenden Schritte umfasst: Zurückgeben des aktuellsten Wertes der Zieldateneinheit durch den Zentralserver, wobei die Änderung für die Zieldateneinheit in den Zielcachespeicher eingebunden wird, nachdem der aktuellste Wert der Zieldateneinheit in den Zielcachespeicher eingebunden wurde, und wobei ein Cacheserver mit jedem Cachespeicher verbunden ist und wobei jeder Cacheserver Aktualisierungsinformationen für jedes Objekt in dem mindestens einen Cachespeicher verwaltet, mit dem der Cacheserver verbunden ist, und wobei der Zentralserver die Aktualisierungsinformation für jedes Objekt in jedem Cachespeicher verwaltet.
  • Ferner umfasst das Verfahren vorzugsweise die folgenden Schritte: Verwalten einer Ungültigkeitsinformation für jedes Objekt in jedem Cachespeicher, wobei die Ungültigkeitsinformation für ein Objekt in einem Cachespeicher anzeigt, ob jede Dateneinheit im Objekt gültig oder ungültig ist; Ermitteln desjenigen Cachespeichers aus der Ungültigkeitsinformation, der einen aktuellsten Wert der Zieldateneinheit für das Zielobjekt beinhaltet, wenn die Ungültigkeitsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit ungültig ist; Abrufen des aktuellsten Wertes der Zieldateneinheit vom ermittelten Cachespeicher und Aktualisieren des Zielobjekts im Zielcachespeicher durch den aktuellsten Wert der Zieldateneinheit; Einbinden der abgerufenen Änderung in die Zieldateneinheit im Zielobjekt im Zielcachespeicher nach der Aktualisierung des Zielobjekts im Zielcachespeicher durch den aktuellsten Wert der Zieldateneinheit; Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde; Aktualisieren der Ungültigkeitsinformation für jeden Cachespeicher, der das Zielobjekt beinhaltet, um anzuzeigen, dass die Zieldateneinheit ungültig ist; und Aktualisieren der Aktualisierungsinformation für das Zielobjekt im ermittelten Cachespeicher, um anzuzeigen, dass die Dateneinheit nicht geändert wurde.
  • Vorzugsweise führt der Zentralserver den Schritt der Ermittlung, ob die Ungültigkeitsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit ungültig ist, den Schritt zum Ermitteln des Cachespeichers, der das Zielobjekt und den aktuellsten Wert der Zieldateneinheit beinhaltet, und den Schritt zum Abrufen des aktuellsten Wertes der Zieldateneinheit vom ermittelten Cachespeicher aus, wobei das Verfahren ferner den folgenden Schritt umfasst: Zurückgeben des aktuellsten Wertes der Zieldateneinheit durch den Zentralserver, wobei die Änderung für die Zieldateneinheit in den Zielcachespeicher eingebunden wird, nachdem der aktuellste Wert der Zieldateneinheit am Zielobjekt im Zielcachespeicher eingebunden wurde.
  • Vorzugsweise ist jeder Cacheserver mit jedem Cachespeicher verbunden, wobei jeder Cacheserver eine Aktualisierungsinformation für jedes Objekt in dem mindestens einen Cachespeicher verwaltet, mit dem der Cacheserver verbunden ist, und wobei der Zentralserver für jedes Objekt in jedem Cachespeicher eine Aktualisierungsinformation und eine Ungültigkeitsinformation verwaltet, wobei das Verfahren ferner noch folgende Schritte umfasst: Ermitteln durch einen Zielcacheserver, der die Änderung für die Zieldateneinheit empfangen hat, ob die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit geändert wurde; und Aktualisieren der Dateneinheit im Zielobjekt im Zielcachespeicher durch den Zielcacheserver nach der Ermittlung, dass durch die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher angezeigt wird, dass die Zieldateneinheit geändert wurde.
  • Ferner umfasst das Verfahren folgende Schritte: Senden einer Anforderung zum Ändern der Zieldateneinheit durch den Zielcacheserver an den Zentralserver; und Zurückgeben einer Nachricht durch den Zentralserver an den Zielcacheserver, mit der Änderung fortzufahren, welche (1) den aktuellsten Wert der Zieldateneinheit nicht beinhaltet, wenn sich der aktuellste Wert der Zieldateneinheit in keinem anderen Cachespeicher befand, oder (2) den aktuellsten Wert der Zieldateneinheit beinhaltet, wenn sich der aktuellste Wert der Zieldateneinheit in einem anderen Cachespeicher befand; und Einbinden des empfangenen aktuellsten Wertes der Zieldateneinheit in die Zielseite im Zielcachespeicher durch den Zielcacheserver vor dem Einbringen der empfangenen Änderung in den Wert der Zieldateneinheit.
  • Gemäß einem zweiten Aspekt stellt die vorliegende Erfindung ein System zur Verwaltung von Daten bereit, das Folgendes umfasst: eine Vielzahl verteilter Cachespeicher; ein Mittel zum Verwalten einer Kopie eines Objekts in mindestens einem Cachespeicher, wobei sich in mehreren Cachespeichern verschiedene Versionen des Objekts befinden und die Objekte änderbare Dateneinheiten befinden können; ein Mittel zum Verwalten einer Aktualisierungsinformation für jedes in dem Cachespeicher verwaltete Objekt in jedem Cachespeicher, wobei die Aktualisierungsinformation für jedes Objekt in jedem Cachespeicher das Objekt, den das Objekt beinhaltenden Cachespeicher und außerdem anzeigt, ob jede Dateneinheit im Objekt geändert wurde; und ein Mittel zum Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit nach dem Empfangen einer Änderung für eine Zieldateneinheit in einem Zielobjekt in einem Zielcachespeicher geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt anzeigt, dass die Zieldateneinheit in keinem anderen Cachespeicher geändert wurde; wobei die Cachespeicher verschiedene Versionen des Objekts enthalten können und die Cachespeicher veraltete Versionen des Objekts an Clients der Cachespeicher liefern können.
  • Ferner umfasst das System vorzugsweise ein Mittel zum Einbinden der empfangenen Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher nach dem Empfangen der Anforderung zur Änderung der Dateneinheit, wenn die Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher anzeigen, dass die Zieldateneinheit geändert wurde.
  • Des Weiteren umfasst das System vorzugsweise ein Mittel zum Ausführen der Änderung nach deren Empfang: zum Ermitteln, ob noch ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit enthält, wenn die Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher anzeigen, dass die Zieldateneinheit noch nicht geändert wurde; zum Einbinden der Änderung der Dateneinheit in das Zielobjekt im Zielcachespeicher, wenn kein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit enthält; und zum Aktualisieren der Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit aktualisiert wurde, wobei die Aktualisierungsinformation für das Zielobjekt in allen anderen Cachespeichern anzeigt, dass die Dateneinheit nicht geändert wurde.
  • Des Weiteren umfasst das System vorzugsweise ein Mittel zum Ausführen der Änderung nach deren Empfang: zum Ermitteln, ob noch ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit enthält, wenn die Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher anzeigen, dass die Zieldateneinheit noch nicht geändert wurde; und zum Abrufen des aktuellsten Wertes der Zieldateneinheit vom ermittelten Zielcachespeicher und zum Aktualisieren des Zielobjekts im Zielcachespeicher durch den abgerufenen aktuellsten Wert der Zieldateneinheit, wenn ein anderer Zielcachespeicher den aktuellsten Wert der Zieldateneinheit enthält.
  • Des Weiteren umfasst das System vorzugsweise ein Mittel zur Verwaltung einer Ungültigkeitsinformation für jedes Objekt in jedem Cachespeicher, wobei die Ungültigkeitsinformation für ein Objekt in einem Cachespeicher anzeigt, ob jede Dateneinheit im Objekt gültig oder ungültig ist.
  • Ferner umfasst das System vorzugsweise Folgendes: ein Mittel zum Ermitteln desjenigen Cachespeichers aus der Aktualisierungsinformation, der einen aktuellsten Wert der Zieldateneinheit für das Zielobjekt enthält, wenn die Ungültigkeitsinformationen für das Zielobjekt und den Zielcachespeicher anzeigen, dass die Zieldateneinheit ungültig ist; und ein Mittel zum Abrufen des aktuellsten Wertes der Zieldateneinheit von dem ermittelten Cachespeicher und zum Aktualisieren des Zielobjekts im Zielcachespeicher durch den aktuellsten Wert der Zieldateneinheit.
  • Vorzugsweise realisiert der zentrale Server das Mittel zum Ermitteln, ob die Ungültigkeitsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit ungültig ist, zum Ermitteln des das Zielobjekt und den aktuellsten Wert der Zieldateneinheit enthaltenden Cachespeichers und zum Abrufen des aktuellsten Wertes der Zieldateneinheit vom ermittelten Cachespeicher und umfasst ferner Folgendes: ein Mittel zum Zurückgeben des aktuellsten Wertes der Zieldateneinheit durch den zentralen Server, wobei die Änderung der Zieldateneinheit in den Zielcachespeicher eingebracht wird, nachdem der aktuellste Wert der Zieldateneinheit in das Zielobjekt im Zielcachespeicher eingebracht wurde.
  • Gemäß einem dritten Aspekt stellt die vorliegende Erfindung ein Computerprogramm bereit, das einen Computerprogrammcode umfasst, der in ein Computersystem geladen und darin ausgeführt wird und so das Computersystem zum Ausführen aller Schritte eines Verfahrens gemäß dem ersten Aspekt veranlasst.
  • Vorzugsweise stellt die vorliegende Erfindung einen Herstellungsartikel zur Verwaltung von Daten in verteilten Cachespeichern bereit, wobei der Herstellungsartikel die Ausführung von Arbeitsschritten bewirkt, die folgende Schritte umfassen: Verwalten einer Kopie eines Objekts in mindestens einem Cachespeicher, wobei sich in mehreren Cachespeichern verschiedene Versionen des Objekts befinden können und die Objekte änderbare Dateneinheiten aufweisen können; verwalten einer Aktualisierungsinformation für jedes in jedem Cachespeicher verwaltete Objekt, wobei die Aktualisierungsinformation für jedes Objekt in jedem Cachespeicher das Objekt, den das Objekt enthaltenden Cachespeicher und außerdem anzeigt, ob jede Dateneinheit im Objekt geändert wurde; und Aktualisieren der Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher nach dem Empfangen einer Änderung für eine Zieldateneinheit in einem Zielobjekt in einem Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit aktualisiert wird, wobei die Aktualisierungsinformation für das Zielobjekt in jedem anderen Cachespeicher anzeigt, dass die Zieldateneinheit nicht geändert wurde.
  • Der Herstellungsartikel kann ferner nach dem Empfangen der Anforderung zur Änderung der Dateneinheit folgenden Schritt ausführen: Einbinden der empfangenen Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher, wenn die Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher anzeigen, dass die Zieldateneinheit geändert wurde.
  • Der Herstellungsartikel kann nach dem Empfangen der Änderung ferner folgende Schritte ausführen: Ermitteln, ob noch ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit enthält, wenn die Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher anzeigen, dass die Zieldateneinheit nicht geändert wurde; Einbinden der Änderung der Dateneinheit im Zielobjekt im Zielcachespeicher, wenn kein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit enthält; und Aktualisieren der Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt in jedem anderen Cachespeicher anzeigt, dass die Dateneinheit nicht geändert wurde.
  • Nach dem Empfangen der Änderung kann der Herstellungsartikel ferner folgende Schritte ausführen: Ermitteln, ob noch ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit enthält, wenn die Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher anzeigen, dass die Zieldateneinheit nicht geändert wurde; und Abrufen des aktuellsten Wertes der Zieldateneinheit vom ermittelten Cachespeicher und Aktualisieren des Zielobjekts im Zielcachespeicher durch den abgerufenen aktuellsten Wert der Zieldateneinheit, wenn noch ein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit enthält.
  • Ferner kann der Herstellungsartikel folgende Schritte ausführen: Einbinden der empfangenen Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher nach der Aktualisierung des Zielobjekts im Zielcachespeicher mit dem aktuellsten Wert der Zieldateneinheit; und Aktualisieren der Aktualisierungsinformationen für das Zielobjekt und den Zielcachespeicher, um die Änderung der Zieldateneinheit anzuzeigen, wobei die Aktualisierungsinformation für das Zielobjekt in jedem anderen Cachespeicher anzeigt, dass die Dateneinheit nicht geändert wurde.
  • Bei dem Herstellungsartikel kann es sich um ein Produkt handeln, bei dem ein zentraler Server den Schritt zur Ermittlung, ob noch ein anderer Cachespeicher das Zielobjekt und den aktuellsten Wert der Zieldateneinheit enthält, sowie den Schritt des Abrufens des aktuellsten Wertes der Zieldateneinheit und ferner noch folgende Schritte beinhaltet: Zurückgeben des aktuellsten Wertes der Zieldateneinheit durch den zentralen Server, wobei die Änderung der Zieldateneinheit in den Zielcachespeicher eingebunden wird, nachdem der aktuellste Wert der Zieldateneinheit in den Zielcachespeicher eingebunden wurde.
  • Bei dem Herstellungsartikel kann es sich um ein Produkt handeln, bei dem ein Cacheserver mit jedem Cachespeicher verbunden ist und bei dem jeder Cacheserver eine Aktualisierungsinformation für jedes Objekt in dem mindestens einen Cachespeicher verwaltet, mit dem der Cachespeicher verbunden ist, wobei der zentrale Server für jedes Objekt in jedem Cachespeicher eine Aktualisierungsinformation verwaltet.
  • Der Herstellungsartikel kann ferner Folgendes umfassen: die Verwaltung einer Ungültigkeitsinformation für jedes Objekt im Cachespeicher, wobei die Ungültigkeitsinformation für ein Objekt in einem Cachespeicher anzeigt, ob jede Dateneinheit im Objekt gültig oder ungültig ist.
  • Bei dem Herstellungsartikel kann es sich um ein Produkt handeln, das ferner Folgendes umfasst: Ermitteln aus der Aktualisierungsinformation des Cachespeichers, welcher einen aktuellsten Wert der Zieldateneinheit für das Zielobjekt enthält, ob die Ungültigkeitsinformationen für das Zielobjekt und den Zielcachespeicher anzeigen, dass die Zieldateneinheit ungültig ist; und Abrufen des aktuellsten Wertes der Zieldateneinheit aus dem ermittelten Cachespeicher und Aktualisieren des Zielobjekts im Zielcachespeicher durch den aktuellsten Wert der Zieldateneinheit.
  • Bei dem Herstellungsartikel kann es sich um ein Produkt handeln, das ferner Folgendes umfasst: Einbinden der empfangenen Änderung in die Zieldateneinheit im Zielobjekt im Zielcachespeicher nach dem Aktualisieren des Zielobjekts im Zielcachespeicher durch den aktuellsten Wert der Zieldateneinheit; Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde; und Aktualisieren der Ungültigkeitsinformation für jeden das Zielobjekt enthaltenden Cachespeicher, um anzuzeigen, dass die Zieldateneinheit ungültig ist.
  • Bei dem Herstellungsartikel kann es sich ferner um ein Produkt handeln, das Folgendes umfasst: Aktualisieren der Aktualisierungsinformation für das Zielobjekt im ermittelten Cachespeicher, um anzuzeigen, dass die Dateneinheit nicht geändert wurde.
  • Bei dem Herstellungsartikel kann es sich um ein Produkt handeln, bei dem ein zentraler Server den Schritt des Ermittelns, ob die Ungültigkeitsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit ungültig ist, den Schritt des Ermittelns des Cachespeichers, der das Zielobjekt und den aktuellsten Wert der Zieldateneinheit enthält, und den Schritt des Abrufens des aktuellsten Wertes der Zieldateneinheit aus dem ermittelten Cachespeicher ausführt, wobei das Produkt ferner Folgendes umfasst: Zurückgeben des aktuellsten Wertes der Zieldateneinheit durch den zentralen Server, wobei die Änderung der Zieldateneinheit in den Zielcachespeicher eingebunden wird, nachdem der aktuellste Wert der Zieldateneinheit in das Zielobjekt im Zielcachespeicher eingebunden wurde.
  • Bei dem Herstellungsartikel kann es sich um ein Produkt handeln, bei dem ein Cacheserver mit jedem Cachespeicher verbunden ist und jeder Cacheserver eine Aktualisierungsinformation für jedes Objekt in dem mindestens einen Cachespeicher verwaltet, mit dem der Cacheserver verbunden ist, und bei dem der zentrale Server eine Aktualisierungsinformation und eine Ungültigkeitsinformation für jedes Objekt in jedem Cachespeicher verwaltet, wobei das Produkt ferner Folgendes umfasst: Ermitteln durch einen Zielcacheserver, der die Änderung der Zieldateneinheit empfangen hat, ob die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit geändert wurde; und Aktualisieren der Dateneinheit im Zielobjekt im Zielcachespeicher durch den Zielcacheserver nach dem Ermitteln, ob die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit geändert wurde.
  • Bei dem Herstellungsartikel kann es sich um ein Produkt handeln, das ferner Folgendes umfasst: Senden einer Anforderung zum Ändern der Zieldateneinheit durch den Zielcacheserver an den zentralen Server; und Zurückgeben einer Nachricht durch den zentralen Server an den Zielcacheserver, um mit der Änderung fortzufahren, die (1) nicht den aktuellsten Wert der Zieldateneinheit enthält, wenn kein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit enthielt, oder (2) den aktuellsten Wert der Zieldateneinheit enthält, wenn ein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit enthielt; und Einbinden des empfangenen aktuellsten Wertes der Zieldateneinheit durch den Zielcacheserver in die Zielseite im Zielcachespeicher, bevor die empfangene Änderung am Wert der Zieldateneinheit vorgenommen wurde.
  • Es werden ein Verfahren, ein System und ein Programm zur Verwaltung von Daten in verteilten Cachespeichern bereitgestellt. Eine Kopie eines Objekts wird in mindestens einem Cachespeicher aufbewahrt, wobei sich in mehreren Cachespeichern verschiedene Versionen des Objekts befinden können und die Objekte änderbare Dateneinheiten aufweisen können. Für jedes in jedem Cachespeicher aufbewahrte Objekt wird eine Aktualisierungsinformation verwaltet, wobei die Aktualisierungsinformation für jedes Objekt in jedem Cachespeicher das Objekt, den das Objekt enthaltenden Cachespeicher und außerdem anzeigt, ob jedes Dateneinheit im Objekt geändert wurde. Nach dem Empfangen einer Änderung für eine Zieldateneinheit in einem Zielobjekt in einem Zielcachespeicher wird die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher aktualisiert, um anzuzeigen, dass die Zieldateneinheit geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt in jedem anderen Cachespeicher anzeigt, dass die Zieldateneinheit nicht geändert wurde.
  • Bei weiteren Ausführungsformen wird die empfangene Änderung nach dem Empfangen der Anforderung zum Ändern der Dateneinheit und wenn die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit geändert wurde, in die Dateneinheit im Zielobjekt im Zielcachespeicher eingebunden.
  • Weiterhin kann nach dem Empfangen der Änderung und wenn die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit nicht geändert wurde, ermittelt werden, ob ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit enthält. Wenn kein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit enthält, wird die Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher eingebunden und die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher aktualisiert, um anzuzeigen, dass die Zieldateneinheit geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt in allen anderen Cachespeichern anzeigt, dass die Dateneinheit nicht geändert wurde.
  • Bei noch anderen Ausführungsformen kann nach dem Empfangen der Änderung und wenn die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit nicht geändert wurde, ermittelt werden, ob ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit enthält. Wenn ein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit enthält, wird der aktuellste Wert der Zieldateneinheit vom ermittelten Cachespeicher abgerufen und das Zielobjekt im Zielcachespeicher mit dem abgerufenen aktuellsten Wert der Zieldateneinheit aktualisiert.
  • Fernerhin kann für jedes Objekt im jedem Cachespeicher eine Ungültigkeitsinformation verwaltet werden, wobei die Ungültigkeitsinformation für ein Objekt in einem Cachespeicher anzeigt, ob jede Dateneinheit im Objekt gültig oder ungültig ist.
  • Beschriebene Ausführungsformen stellen Verfahren zur Verwaltung der verteilten Speicherung in einer Vielzahl verteilter Cachespeicher auf eine Weise bereit, die die Ausführung jeglicher inkonsistenter Datenoperationen an den in den verteilten Cachespeichern verwalteten Daten vermeiden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Im Folgenden wird beispielhaft eine bevorzugte Ausführungsart der vorliegenden Erfindung unter Bezug auf die beiliegenden Zeichnungen definiert, wobei:
  • 1 eine verteilte vernetzte Datenverarbeitungsumgebung veranschaulicht, in der Aspekte der Erfindung realisiert werden;
  • 2 und 3 Datenstrukturen zur Verwaltung von Informationen über Daten veranschaulichen, die in verschiedenen Cachespeichern in der vernetzten Datenverarbeitungsumgebung aufbewahrt werden;
  • 4 ein Ablaufdiagramm zur Verarbeitung einer Anforderung nach einem Objekt oder einer Seite gemäß den Ausführungsformen der Erfindung ist;
  • 5 und 6 ein Ablaufdiagramm zum Zurückgeben eines Objektes oder einer Seite an einen Cachespeicher gemäß den Ausführungsformen der Erfindung zeigt;
  • 6 ein Ablaufdiagramm zur Verarbeitung einer Anforderung zur Änderung eines Objektes gemäß den Ergebnissen der Erfindung zeigt;
  • 7 eine Architektur von Datenverarbeitungskomponenten in der vernetzten Umgebung, zum Beispiel die Cacheserver und die zentralen Server sowie andere Rechnereinheiten, zeigt.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSARTEN
  • Die folgende Beschreibung bezieht sich auf die beiliegenden Zeichnungen als deren Bestandteil, die verschiedene Ausführungsarten der vorliegenden Erfindung veranschaulichen. Es ist klar, dass andere Ausführungsarten verwendet und strukturelle und Funktionsänderungen vorgenommen werden können, ohne vom Geltungsbereich der vorliegenden Erfindung abzuweichen.
  • 1 veranschaulicht eine vernetzte Datenverarbeitungsumgebung, in der Aspekte der Erfindung realisiert werden können. Eine Vielzahl von Cacheservern 2a, 2b, ... 2n sind mit einem zentralen Server 4 und dieser wiederum ist mit dem Internet 6 oder einer anderen Art in der Technik bekanntem Netz verbunden. Die Cacheserver 2a, 2b, ... 2n und der zentrale Server können beliebige Arten in der Technik bekannter Recheneinrichtungen, darunter Server, Arbeitsplatzrechner, Personal Computer usw., umfassen. Jeder der Cacheserver 2a, 2b, ... 2n ist mit einem Cachespeicher 8a, 8b...8n verbunden, die über das Internet 6 heruntergeladene Webseiten als Speicherseiten 10a, 10b, ... 10n speichern. Jede der Speicherseiten 10a, 10b, ... 10n kann Objekte oder Komponenten enthalten, die hier als Dateneinheiten 12a, 12b, ... 12n, 14a, 14b, ... 14n und 16a, 16b, ... 16n bezeichnet werden, in denen die Dateneinheiten geändert werden können. Die Dateneinheiten können innerhalb der Speicherseiten 10a, 10b, ... 10n beliebig fein gegliedert sein und ein Wort, ein Feld, eine Linie, ein Bild, die gesamte Seite, einen Absatz, ein Objekt usw. enthalten. Obwohl 1 zeigt, dass jeder Cachespeicher 8a, 8b, ... 8n dieselbe Anzahl von Seiten beinhaltet, wobei jede Seite dieselbe Anzahl von Dateneinheiten aufweist, kann jeder Cachespeicher 8a, 8b, ... 8n in den beschriebenen Ausführungsarten eine verschiedene Anzahl von Speicherseiten und verschiedene Speicherseiten verwalten, wobei jede Speicherseite eine verschiedene Anzahl von Dateneinheiten aufweisen kann. Die Speicherseiten in den verschiedenen Cachespeichern 8a, 8b, ... 8n können Webseiten darstellen, die unter verschiedenen Internetadressen, z.B. Verweisadressen (URLs – Universal Resource Locators) von verschiedenen Webservern aus dem Internet heruntergeladen wurden. Die Speicherseiten können Webseiten in demselben Dateiformat oder in verschiedenen Dateiformaten speichern. Die Speicherseiten können Inhalte in einem beliebigen in der Technik bekannten Mediendateiformat beinhalten, zum Beispiel HTML (Hypertext Language Markup), XML (Extensible Markup Language), eine Textdatei, eine Videodatei, eine Bilddatei, eine Audiodatei usw.
  • Eine Vielzahl von Clientsystemen 18a, 18b, 18c, 18c, 18e, 18f, 18g enthält Browser 20a, 20b, 20c, 20d, 20e, 20f, 20g, die Anforderungen nach Webseiten an spezielle Cacheserver 2a, 2b, ... 2n senden, damit die Clientanforderungen durch die Cachespeicher 8a, 8b, ... 8n bedient werden. Die Clientsysteme 18a, 18b, ... 18g können eine beliebige in der Technik bekannte Recheneinrichtung umfassen, zum Beispiel einen Personal Computer, einen Laptopcomputer, einen Arbeitsplatzrechner, einen Großrechner, einen Telefonapparat, einen Taschenrechner, einen Server, ein Netzanschlussgerät usw., und der Browser 20a, 20b, ... 20g kann ein beliebiges Programm umfassen, das Dateien über ein Netz anfordern kann, zum Beispiel ein Internetbrowserprogramm, einen Videoplayer, einen Audioplayer usw., und die Daten von solchen Dateien dem Benutzer in einem beliebigen in der Technik bekannten Format liefern kann. Bei bestimmten Ausführungsformen kann der Benutzer in den Browsern 20a, 20b, ... 20g Daten in den Dateneinheiten in den Speicherseiten in den Cachespeichern 8a, 8b, ... 8n ändern oder aktualisieren.
  • Der zentrale Server 4 beinhaltet ein Zentralverzeichnis-Serverprogramm 22, und die Cacheserver 2a, 2b, ... 2n beinhalten jeweils ein Cacheserverprogramm 24a, 24b, ... 24n zur Ausführung von Arbeitsschritten zur Zwischenspeicherung. Das Zentralverzeichnis-Serverprogramm 22 verwaltet ein zentrales Verzeichnis 26 zur Verwaltung von Informationen über die Dateneinheiten, die in jeder Speicherseite in jedem Cachespeicher 8a, 8b, ... 8n aktualisiert werden können. Jedes Cacheserverprogramm 24a, 24b, ... 24n verwaltet auch ein lokales Cachespeicherverzeichnis 28a, 28b, ... 28n, deren Einträge Informationen über die Dateneinheiten verwalten, die in den Speicherseiten 10a, 10b, ... 10n im lokalen Cachespeicher 8a, 8b, ... 8n aktualisiert werden können. Die Einträge in den lokalen Cachespeicherverzeichnissen 28a, 28b, ... 28n entsprechen den Einträgen für dieselben Speicherseiten im zentralen Verzeichnis 26.
  • 2 veranschaulicht das Format 50 der im zentralen Verzeichnis 26 und in den lokalen Cachespeicherverzeichnissen 28a, 28b, ... 28n verwalteten Einträge. Jeder Eintrag 50 beinhaltet ein oder mehrere Tupel von Informationen für jedes lokale Cachespeicherverzeichnis 28a, 28b, ... 28n, das eine Kopie der dem Eintrag im lokalen Cachespeicher 8a, 8b, ... 8n entsprechenden Seite verwaltet. Jeder Eintrag 50 entspricht der Adresse einer bestimmten Speicherseite, wobei die verschiedenen Cachespeicher 8a, 8b, ... 8n eine Kopie der Seite aufbewahren können. Jedes Tupel von Informationen für jeden Cachespeicher 8a, 8b, ... 8n, in dem sich eine Kopie der Seite befindet, beinhaltet:
    Cacheserver-ID 52a...52n: Diese ID kennzeichnet den speziellen Cacheserver 2a, 2b, ... 2n, der die durch den Eintrag dargestellte Speicherseite beinhaltet. Diese Information kann sich wahlweise in den Einträgen in den lokalen Cachespeicherverzeichnissen 28a, 28b, ... 28n befinden.
  • Aktualisierungswort 54a...54n: Jedes Wort weist eine Vielzahl von Bits auf, wobei für jede in der Seite durch das Aktualisierungswort dargestellte aktualisierbare Dateneinheit ein Bit steht. Jedes Bit wird auf „Ein" gesetzt, wenn die Dateneinheit in der Seite im Cachespeicher 8a, 8b, ... 8n geändert wurde, und auf „Aus" gesetzt, wenn die entsprechende Dateneinheit nicht geändert wurde.
  • Ungültigkeitswort 56a...56n: Ein aus Bits bestehendes Wort, bei dem jeder Speicherseite 10a, 10b, ... 10n in den Cachespeichern 8a, 8b, ... 8n ein Bit entspricht. Ein Bit wird auf „Ein" gesetzt, um anzuzeigen, dass die Daten in der durch ein solches Bit dargestellten Dateneinheit in der Speicherseite im lokalen Cachespeicher 8a, 8b, ... 8n ungültig oder aktualisiert sind, und auf „Aus" gesetzt, um anzuzeigen, dass keine Dateneinheit in der Speicherseite im lokalen Cachespeicher 8a, 8b, ... 8n aktualisiert oder ungültig ist. Dieses Wort kann sich wahlweise in den Einträgen in den lokalen Cachespeicherverzeichnissen 28a, 28b, ... 28n befinden.
  • 3 und 5 veranschaulichen den Ablaufplan in den Cacheserverprogrammen 24a, 24b, ... 24n, und 4 und 6 veranschaulichen den Ablaufplan im Zentralverzeichnis-Serverprogramm 22 zur Regelung des Zugriffs auf Speicherseiten und die darin enthaltenen Dateneinheiten zur Sicherstellung der Datenkonsistenz in der Weise, dass die Clients 18a, 18b, ... 18g schnell auf die Daten zugreifen können.
  • 3 und 4 veranschaulichen die durch die Cacheserverprogramme 24a, 24b, ... 24n bzw. das Zentralverzeichnis-Serverprogramm 22 ausgeführten Arbeitsschritte, um einem Clientbrowser 20a, 20b, ... 20n den Lesezugriff auf eine Speicherseite als Teil einer angeforderten Webseite zu ermöglichen. Der Prozess beginnt in 3 mit Schritt 100, wo das Cacheserverprogramm 24a, 24b, ... 24n von einem der Browser 20a, 20b, ... 20n eine Anforderung für eine Speicherseite empfängt. Bei bestimmten Ausführungsformen richtet jeder Client 18a, 18b, ... 18g seine gesamten Seitenanforderungen an einen bestimmten Cacheserver 2a, 2b, ... 2n. Alternativ kann jeder Client Anforderungen an einen von vielen speziellen alternativen Cacheservern richten. Als Reaktion auf den Empfang der Anforderung gibt das Cacheserverprogramm 24a, 24b, ... 24n, wenn sich (in Schritt 102) die angeforderte Seite in dem mit dem empfangenden Cacheserver 2a, 2b, ... 2n verbundenen Cachespeicher 8a, 8b, ... 8n befindet, die angeforderte Speicherseite in Schritt 104 aus dem Cachespeicher 8a, 8b, ... 8n zurück. Bei solchen Ausführungsformen ermöglicht das Cacheserverprogramm 24a, 24b, ... 24n zwar den sofortigen Zugriff vom Cachespeicher 8a, 8b, ... 8n auf eine Seite, jedoch muss die zurückgegebene Seite für bestimmte Dateneinheiten nicht unbedingt die aktuellste Kopie von Werten haben. Wenn sich die angeforderte Seite nicht im angeschlossenen Cachespeicher 8a, 8b, ... 8n befindet, sendet das Cacheserverprogramm 24a, 24b, ... 24n in Schritt 106 eine Anforderung nach der angeforderten Seite an den zentralen Server 4, und der Prozess wird in 4 mit Schritt 120 fortgesetzt, wo das Zentralverzeichnis-Serverprogramm 22 die Anforderung verarbeitet.
  • Als Reaktion auf den Empfang einer Anforderung nach einer Speicherseite in Schritt 120 von 4 ermittelt das Zentralverzeichnis-Serverprogramm 22 in Schritt 122, ob das Zentralverzeichnis 26 einen Eintrag für die angeforderte Seite enthält. Wenn dies nicht der Fall ist, lädt das Zentralverzeichnis-Serverprogramm 22 in Schritt 124 die angeforderte Seite über das Internet 6 herunter. Für die abgerufene Seite wird in Schritt 126 ein Eintrag 50 im Zentralverzeichnis 26 erzeugt, wobei der erzeugte Eintrag 50 im Feld Cacheserver-ID 52a...52n den Cacheserver 2a, 2b, ... 2n kennzeichnet, der die Anforderung ausgelöst hat, und ein Aktualisierungswort 54a...54n sowie ein Ungültigkeitswort 56a...56n einfügt, bei denen alle Bits der Dateneinheit (2 und 3) zu Anfang auf „Aus" gesetzt sind. Dann werden in Schritt 128 die abgerufene Seite und der erzeugte Eintrag 50 an den anfordernden Cacheserver 2a, 2b, ... 2n zurückgegeben, um sie im lokalen Cachespeicher 8a, 8b, ... 8n zu puffern und den neu empfangenen Eintrag im lokalen Cachespeicherverzeichnis 28a, 28b, ... 28n zu verwalten.
  • Wenn sich in Schritt 122 ein Eintrag für die angeforderte Seite im Zentralverzeichnis 26 befindet und wenn es in Schritt 130 keinen Eintrag gibt, bei dessen Aktualisierungswort 54a...54n für die angeforderte Seite die Bits 54a...54n der Dateneinheit (2) auf „Ein" gesetzt sind und so anzeigen, dass sich in keinem anderen Cacheserver 2a, 2b, ... 2n aktualisierte Dateneinheiten 12a, 12b, ... 12n, 14a, 14b, ... 14n und 16a, 16b, ... 16n für die angeforderte Seite befinden, greift das Zentralverzeichnis-Serverprogramm 22 in Schritt 132 auf die angeforderte Seite von einem Cacheserver 2a, 2b, ... 2n zu, der im Feld Cacheserver-ID 52a...52n in einem Tupel von Informationen im Eintrag 50 für die angeforderte Seite bezeichnet wird. Da kein Cacheserver 2a, 2b, ... 2n Dateneinheiten mit aktualisierten Daten verwaltet, kann in jedem im Eintrag 50 bezeichneten Cachespeicher 8a, 8b, ... 8n auf die Seite zugegriffen werden. Das Zentralverzeichnis-Serverprogramm 22 erzeugt in Schritt 134 ein Tupel von Informationen, die zum Eintrag 50 für die angeforderte Seite hinzugefügt werden, wobei das erzeugte Tupel von Informationen im Feld 52a...54n den anfordernden Cacheserver 2a, 2b, ... 2n kennzeichnet und ein Aktualisierungswort 54a...54n sowie ein Ungültigkeitswort 56a...56n eingefügt werden, bei denen alle Bits 54a...54n und 56a...56n der Dateneinheit auf „Aus" gesetzt sind. Die abgerufene Seite und das erzeugte Tupel von Informationen werden in Schritt 136 an den anfordernden Cacheserver 136 zurückgegeben. Bei alternativen Ausführungsformen ist zu beachten, dass anstelle des Tupels von Informationen auch nur das erzeugte Aktualisierungswort 54a...54n gesendet werden kann.
  • Wenn (in Schritt 130) bei einem Aktualisierungswort 54a...54n in einem Tupel von Informationen für einen anderen Cacheserver 2a, 2b, ... 2n im Eintrag 50 für die angeforderte Seite ein Bit der Dateneinheit auf „Ein" gesetzt ist, ermittelt das Zentralverzeichnis-Serverprogramm 22 (in Schritt 138) das Tupel von Informationen im Eintrag 50 für die angeforderte Seite, bei dessen Aktualisierungswort 54a...54n die meisten Bits der Dateneinheit auf „Aus" gesetzt sind. Dann ruft das Zentralverzeichnis-Serverprogramm 22 (in Schritt 140) die angeforderte Seite von dem Cacheserver 2a, 2b...2n ab, der im Feld 52a...52n des ermittelten Tupels von Informationen mit der größten Anzahl der aktuellsten Werte der Dateneinheit angegeben ist. Für jedes andere Tupel im Eintrag 50 für die Seite mit einem Aktualisierungswort 54a...54n dessen Bits der Dateneinheit auf „Ein" gesetzt sind, ruft das Zentralverzeichnis-Serverprogramm 22 dann (in Schritt 142) die entsprechenden Dateneinheiten, die den auf „Ein" gesetzten Bits entsprechen, von dem im Feld 52a...52n des Tupels angegebenen Cacheserver ab und fügt die abgerufenen Daten in die entsprechenden Dateneinheiten in der abgerufenen Seite ein. Für den anfordernden Cacheserver 2a, 2b...2n wird (in Schritt 144) ein Tupel für den Eintrag für die abgerufene Seite erzeugt, welches im Feld 52a...52n den anfordernden Cacheserver bezeichnet und ein Aktualisierungswort 54a...54n und ein Ungültigkeitswort 56a...56n beinhaltet, dessen Bits der Dateneinheit sämtlich auf „Aus" gesetzt sind. Dann geht der Prozess weiter zu Schritt 136, um die abgerufene Seite und das erzeugte Tupel (oder dessen zutreffende Teile) an den anfordernden Cacheserver 2a, 2b, ... 2n zurückzugeben.
  • Gemäß dem Ablaufplan von 3 und 4 wird die Anforderung eines Clientbrowser nach einer Seite zuerst vom lokalen Cachespeicher 8a, 8b, ... 8n und dann, wenn sich im lokalen Cachespeicher keine Kopie befindet, von einem fernen Cachespeicher bedient. Wenn sich im lokalen oder im fernen Cachespeicher keine Kopie der angeforderten Seite befindet, wird die Seite vom Internet 6 heruntergeladen. Da die Latenzzeiten für das Herunterladen aus dem Internet am längsten sind, wird die Zugriffsgeschwindigkeit dadurch optimiert, dass die Seite vorzugsweise vom lokalen Cachespeicher, dann vom fernen Cachespeicher und zuletzt vom Internet heruntergeladen wird. Wenn eine zum ersten Mal in fernen Cachespeichern gespeicherte Seite empfangen wird, beinhaltet die zurückgegebene Seite ferner bei bestimmten Ausführungsformen die aktuellsten Werte der Dateneinheiten, die in allen fernen Cachespeichern aufbewahrt werden.
  • 5 veranschaulicht den in den Cacheserverprogrammen 24a, 24b, ... 24n ausgeführten Ablaufplan zur Abwicklung einer Anforderung durch einen Clientbrowser 20a, 20b, ... 20g zur Änderung einer Dateneinheit, die in einer Zielseite als die Zieldateneinheit bezeichnet wird. Der Prozess beginnt in Schritt 200, in welchem das Cacheserverprogramm 24a, 24b, ... 24n eine Anforderung zur Änderung einer Dateneinheit in einer Seite von einem Client 18a, 18b, ... 18g von einem Client 18a, 18b, ... 18g empfängt, der zum Senden von Seitenanforderungen an den die Anforderung empfangenden Cacheserver 2a, 2b, ... 2n vorgesehen ist. Wenn (in Schritt 202) das Bit der Dateneinheit im Aktualisierungswort im lokalen Cachespeicherverzeichnis 28a...28n für die der Zieldateneinheit entsprechenden angeforderte Seite auf „Ein" gesetzt ist, was bedeutet, dass der Cacheserver 2a, 2b, ... 2n, der die Anforderung empfängt und als empfangender Cacheserver bezeichnet wird, den aktuellsten wert für die Zieldateneinheit 12a, 12b, ... 12n, 14a, 14b, ... 14n, 16a, 16b, ... 16n enthält, aktualisiert das Programm 24a, 24b, ... 24n des empfangenden Cacheservers in Schritt 204 die Dateneinheit in der Zielseite in dem mit dem empfangenden Cacheserver 2a, 2b, ... 2n verbundenen Cachespeicher 8a, 8b, ... 8n durch die empfangene geänderte Dateneinheit. Ansonsten sendet das Programm 24a, 24b, ... 24n des empfangenden Cacheservers (in Schritt 202), wenn das der Zieldateneinheit entsprechende Bit im Aktualisierungswort 54a...54n im lokalen Cachespeicherverzeichnis 28a, 28b, ... 28n im empfangenden Cacheserver 2a, 2b, ... 2n nicht auf „Ein" gesetzt ist, eine Anforderung zur Änderung der Zieldateneinheit in der Zielseite an den zentralen Server 4.
  • 6 veranschaulicht Arbeitsschritte, die durch das Zentralverzeichnis-Serverprogramm 22 als Reaktion auf eine Anforderung vom empfangenden Cacheserver 2a, 2b, ... 2n zur Änderung der Zieldateneinheit in der Zielseite (in Schritt 206 in 5) ausgeführt werden. Als Reaktion auf den Empfang einer solchen Anforderung (in Schritt 210) ermittelt das Zentralverzeichnis-Serverprogramm 22 (in Schritt 214), ob das Bit der Dateneinheit, das der Zieldateneinheit im Ungültigkeitswort 56a...56n in dem (im Feld 52a...52n angegebenen) Tupel für den empfangenden Cacheserver 2a, 2b, ... 2n im Eintrag 50 für die angeforderte Seite entspricht, auf „Ein" gesetzt ist, was „ungültig" bedeutet. Wenn dies der Fall ist, hat ein anderer Cacheserver 2a, 2b, ... 2n die Zieldateneinheit geändert. In einem solchen Fall ermittelt das Zentralverzeichnis-Serverprogramm 22 (in Schritt 216) das Tupel im Eintrag für den anderen Cacheserver 2a, 2b, ... 2n, bei dem das Bit 56 der Zieldateneinheit (1) in einem Aktualisierungswort 56 auf „Ein" gesetzt ist, d.h., bei dem der Eintrag für den Cacheserver die aktuellsten Daten für betreffende Dateneinheit enthält. Dann ruft das Zentralverzeichnis-Serverprogramm 22 (in Schritt 218) den aktuellsten Wert der Zieldateneinheit von dem anderen Cacheserver 2a, 2b, ... 2n ab, der im ermittelten Tupel angegeben ist, und gibt (in Schritt 220) den abgerufenen aktuellsten Wert der Dateneinheit an den empfangenden Cacheserver zurück. In dem ermittelten Tupel ist das Bit der Zieldateneinheit im Aktualisierungswort 54a...54n für den anderen Cacheserver (in Schritt 222) auf „Aus" gesetzt, weil der empfangende Cacheserver nach der Aktualisierung die Zieldateneinheit aktualisiert und über den aktuellsten Wert der Zieldateneinheit verfügt.
  • Nach der Lieferung des aktuellsten Wertes der Dateneinheit (von Schritt 222) an den empfangenden Cacheserver oder wenn der empfangende Cacheserver nicht den aktuellsten Wert der Zieldateneinheit (aus dem NEIN-Zweig von Schritt 214) enthält, geht der Prozess weiter zu Schritt 224 und 226, wo das Zentralverzeichnis-Serverprogramm 22 (in Schritt 224) im Eintrag für den anfordernden Cacheserver die der Zieldateneinheit im Aktualisierungswort 54a...54n entsprechenden Bits der Dateneinheit auf „Ein" und die Bits im Ungültigkeitswort 56a...56n im Eintrag für den anfordernden Cacheserver auf „Aus" setzt. Das Zentralverzeichnis-Serverprogramm 22 setzt (in Schritt 226) auch das Bit der Dateneinheit in den Ungültigkeitswörtern 56a...56n in den Tupeln im Eintrag 50 für die Zielseite für alle anderen Cacheserver auf „Ein" und zeigt damit an, dass die anderen Cacheserver ungültige Daten für die Zieldateneinheit in ihrer Kopie der Zielseite enthalten. Dann gibt das Zentralverzeichnis-Serverprogramm 22 (in Schritt 228) eine Nachricht an den empfangenden Cacheserver zurück, um mit der Änderung der Zieldateneinheit fortzufahren. Die Nachricht kann auch eine explizite oder implizite Nachricht an den anfordernden Cacheserver enthalten, die betreffenden Bits in ihren Gültigkeits- und Ungültigkeitswörtern für die empfangene Seite zu aktualisieren, um anzuzeigen, dass der anfordernde Cacheserver über die neueste Aktualisierung der gerade in der Seite aktualisierten Dateneinheiten verfügt. Bei alternativen Ausführungsformen kann das Zentralverzeichnis-Serverprogramm 22 das geänderte Gültigkeits- und Ungültigkeitswort zurückgeben.
  • Nach dem Empfang (in Schritt 250 in 5) der geänderten Zieldateneinheit vom Zentralverzeichnis-Serverprogramm 22 aktualisiert das Cacheserverprogramm 24a, 24b, ... 24n (in Schritt 252) die Zieldateneinheit in der Zielseite in ihrem Cachespeicher 8a, 8b, ... 8n durch die empfangene geänderte Dateneinheit. Nach dem Empfang der Nachricht zum Ändern der Zieldateneinheit (in Schritt 254) fügt der anfordernde Cacheserver 24a, 24b, ... 24n (in Schritt 256) die vom Clientbrowser 20a, 20b, ... 20g empfangene geänderte Dateneinheit in die Seite 10a, 10b, ... 10n im Cachespeicher 8a, 8b, ... 8n ein.
  • Die beschriebenen Ausführungsformen stellen ein Protokoll für ein verteiltes Cacheserversystem bereit, das die Durchführung von Aktualisierungen durch einen Clientbrowser in einem Cacheserver bei gleichzeitiger Aufrechterhaltung der Datenkonsistenz zwischen allen Cacheservern ermöglicht. Daraus ergibt sich eine weniger strikte (abgeschwächte) Konsistenz der Datenaktualisierung, da bei Aktualisierung der Daten in einem Browser im Zentralverzeichnis für diejenigen fernen Cacheserver, die eine Kopie der Seite mit der zu ändernden Dateneinheit enthalten, nur ein Datenungültigkeitsbit gesetzt wird. In den fernen Cacheservern sind keine Informationen über Aktualisierungen enthalten, und die Browser in den fernen Cacheservern und Clients können weiterhin Seiten von lokalen Cachespeichern lesen, die nicht die aktuellsten Werte der Dateneinheiten enthalten. Wenn jedoch ein Browser, der Daten von einem Cacheserver empfängt, welcher nicht die aktuellsten Daten enthält, die Dateneinheit zu ändern versucht, empfängt der Browser die aktuellsten Daten, bevor die Änderung durchgeführt wird.
  • WEITERE EINZELHEITEN ZU DEN AUSFÜHRUNGSFORMEN
  • Die beschriebenen Verfahren zur Verwaltung eines verteilten Cacheserversystems kann in Form eines Verfahrens, einer Vorrichtung oder eines Herstellungsartikels unter Verwendung von üblichen Programmier- und/oder Konstruktionsverfahren zur Herstellung von Software, Firmware, Hardware oder einer beliebigen Kombination realisiert werden. Der hier verwendete Begriff „Herstellungsartikel" betrifft einen Code oder eine in Hardware ausgeführte Schaltlogik (z.B. einen integrierten Schaltkreis-Chip, eine programmierbare Gate-Anordnung (PGA), einen anwendungsspezifischen integrierten Schaltkreis (ASIC) usw.) oder ein computerlesbares Medium wie beispielsweise ein Magnetspeichermedium (z.B. Festplattenlaufwerke, Disketten, Magnetbänder usw.), optische Speicher (CD-ROMs, optische Speicherplatten usw.), flüchtige und nichtflüchtige Speicherbauelemente (z.B. EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Firmware, programmierbare Logik usw.). Ein Prozessor greift auf den Code im computerlesbaren Medium zu und führt ihn aus. Auf den Code, in dem bevorzugte Ausführungsarten realisiert werden, kann ferner über ein Übertragungsmedium oder über ein Netz von einem Dateiserver zugegriffen werden. In solchen Fällen kann der Herstellungsartikel, in dem der Code realisiert wird, ein Übertragungsmedium umfassen, zum Beispiel eine Netzübertragungsleitung, ein drahtloses Übertragungsmedium, sich im Raum ausbreitende Signale, Funkwellen, Infrarotsignale usw. Somit kann der „Herstellungsartikel" das Medium umfassen, in dem der Code verkörpert wird. Darüber hinaus kann der „Herstellungsartikel" eine Kombination von Hardware- und Softwarekomponenten umfassen, in denen der Code verkörpert, verarbeitet und ausgeführt wird. Dem Fachmann ist natürlich klar, dass an dieser Anordnung zahlreiche Änderungen vorgenommen werden können, ohne vom Geltungsbereich der vorliegenden Erfindung abzuweichen, und dass der Herstellungsartikel ein beliebiges in der Technik bekanntes Informationsträgermedium umfassen kann.
  • Bei beschriebenen Ausführungsformen werden für jedes Tupel von Informationen in jedem Eintrag sowohl das Ungültigkeitswort als auch das Aktualisierungswort im zentralen Server verwaltet. Bei alternativen Ausführungsformen wird nur das Aktualisierungswort verwaltet. Bei solchen Ausführungsformen müsste der Zentralserver zur Ermittlung, ob der anfordernde Cacheserver veraltete Daten enthält, die Aktualisierungswörter in Tupeln für die anderen Cacheserver verarbeiten, um festzustellen, ob einer der anderen Cacheserver die Dateneinheit geändert hat.
  • Bei den beschriebenen Ausführungsformen haben die im Cachespeicher verwalteten Seiten Speicherseiten umfasst, wobei mehrere Speicherseiten die Daten für eine einzelne Webseite speichern, die über das Internet von einer URL abgerufen wurde. Alternativ können die Speicherseiten im Cachespeicher Webseiten umfassen.
  • Bei beschriebenen Ausführungsformen haben ein zentraler Server und ein Zentralverzeichnis-Serverprogramm Aktualisierungsoperationen durchgeführt, um sicherzustellen, dass der anfordernde Cacheserver vor dem Durchführen einer Aktualisierung die aktuellsten Daten empfangen hat. Bei alternativen Ausführungsformen können die beschriebenen Arbeitsschritte, die durch den zentralen Server und das Zentralverzeichnis-Serverprogramm durchgeführt werden, auf die Cacheserver verteilt werden, um ein verteiltes Zentralverzeichnis zu erstellen. Bei solchen Ausführungsformen, bei denen die durch das Zentralverzeichnis-Serverprogramm durchgeführten Arbeitsschritte verteilt sind, sind die in den Aktualisierungswörtern und Ungültigkeitswörtern enthaltenen Informationen auf die Cacheserver verteilt, damit die Cacheserver verteilte Speicherverwaltungsoperationen durchführen können.
  • Bei beschriebenen Ausführungsformen enthielt jeder Cacheserver eine Kopie des Aktualisierungswortes für jede im Cachespeicher 8a, 8b, ... 8n für den Cacheserver 2a, 2b, ... 2n enthaltene Seite. Alternativ können die Cacheserver auch kein Aktualisierungswort enthalten und alle Konsistenzoperationen über den zentralen Server abwickeln.
  • Die beschriebenen Informationen im Aktualisierungs- und Ungültigkeitswort können in Form einer oder mehrerer in der Technik bekannter Datenstrukturen realisiert werden, um die Aktualisierungs- und die Ungültigkeitsinformation zu erzeugen. Zum Beispiel können die Aktualisierungs- und die Ungültigkeitsinformation in einem oder mehreren Datenobjekten, Datensätzen in einer Datenbank, Einträgen in einer Tabelle, separaten Objekten usw. realisiert werden.
  • Die in den Cachespeichern enthaltenen Seiten können Datenobjekte beliebigen Typs umfassen, einschließlich beliebiger Typen von Multimediaobjekten, in die ein Client oder Benutzer Daten zur Änderung des Inhalts des Objekts eingeben oder hinzufügen kann.
  • Bei den beschriebenen Ausführungsformen ist mit jedem Cachespeicher ein separater Cacheserver verbunden. Der Cachespeicher und der Cacheserver können sich innerhalb derselben abgeschlossenen Einheit oder in separaten Einheiten befinden. Bei alternativen Ausführungsformen kann ein Cacheserver mit mehreren Cachespeichern verbunden sein und Aktualisierungsinformationen für die mehreren damit verbunden Cachespeicher enthalten.
  • Bei beschriebenen Ausführungsformen hat der zentrale Server Seiten über das Internet heruntergeladen. Alternativ kann der zentrale Server Seiten von einem beliebigen Netz herunterladen, zum Beispiel von einem Intranet, einem lokalen Netz (LAN), einem Weitverkehrsnetz (WAN), einem Netz für den Speicherbereich (SAN) usw. Ferner können die Cacheserver zum Herunterladen von Seiten direkt auf das Internet zugreifen.
  • Der in 4 bis 6 dargestellte Ablaufplan zeigt bestimmte Ereignisse, in ein einer bestimmten Reihenfolge ablaufen. Bei alternativen Ausführungsformen können bestimmte Arbeitsschritte in einer anderen Reihenfolge ausgeführt, geändert oder ausgelassen werden. Darüber hinaus können in den oben beschriebenen Ablaufplan Schritte eingefügt werden, ohne von den beschriebenen Ausführungsformen abzuweichen. Ferner können hier beschriebene Arbeitsschritte nacheinander erfolgen oder bestimmte Arbeitsschritte können parallel ausgeführt werden. Weiterhin können Arbeitsschritte durch eine einzige Verarbeitungseinheit oder durch verteilte Verarbeitungseinheiten ausgeführt werden.
  • 7 veranschaulicht eine Ausführungsform einer Computerarchitektur 300 der Netzkomponenten, zum Beispiel den in 1 gezeigten zentralen Server und die Cacheserver. Die Architektur 300 kann einen Prozessor 302 (z.B. einen Mikroprozessor), einen Speicher 304 (z.B. eine flüchtige Speichereinheit) und einen Speicher 306 (z.B. einen nichtflüchtigen Speicher wie beispielsweise Magnetplattenlaufwerke, optische Plattenlaufwerk, ein Magnetbandlaufwerk usw.) enthalten. Der Speicher 306 kann eine interne Speichereinheit oder einen externen oder über ein Netz erreichbaren Speicher umfassen. Programme im Speicher 306 werden in einer in der Technik bekannten Weise in den Speicher 304 geladen und durch den Prozessor 302 ausgeführt. Ferner beinhaltet die Architektur eine Netzwerkkarte 308, um die Datenverbindung zu einem Netz zu ermöglichen. Zur Eingabe von Daten durch den Benutzer in den Prozessor 302 wird eine Eingabevorrichtung 310 verwendet, z.B. eine Tastatur, eine Maus, eine Stift, ein Mikrofon, ein berührungsempfindlicher Bildschirm oder ein anderer in der Technik bekannter Aktivierungs- oder Eingabemechanismus. Eine Ausgabevorrichtung 312, zum Beispiel ein Monitor, ein Drucker, ein Speicher usw., kann die vom Prozessor 302 oder einer anderen Komponente übertragenen Daten ausgeben.

Claims (10)

  1. Verfahren zur Verwaltung von Daten in einer Vielzahl verteilter Cachespeicher, wobei das Verfahren Folgendes umfasst: Verwalten einer Kopie eines Objekts in mindestens einem Cachespeicher, wobei sich in mehreren Cachespeichern verschiedene Versionen des Objekts befinden und die Objekte änderbare Dateneinheiten aufweisen können; Verwalten einer Aktualisierungsinformation für jedes in dem Cachespeicher verwaltete Objekt in jedem Cachespeicher, wobei die Aktualisierungsinformation für jedes Objekt in jedem Cachespeicher das Objekt, den das Objekt beinhaltenden Cachespeicher und außerdem anzeigt, ob jede Dateneinheit im Objekt geändert wurde; und Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher nach dem Empfangen einer Änderung für eine Zieldateneinheit in einem Zielobjekt in einem Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt anzeigt, dass die Zieldateneinheit in keinem anderen Cachespeicher geändert wurde; wobei die Cachespeicher verschiedene Versionen des Objekts enthalten können und die Cachespeicher veraltete Versionen des Objekts an Clients der Cachespeicher liefern können.
  2. Verfahren nach Anspruch 1, das nach dem Empfangen der Anforderung zur Änderung der Dateneinheit ferner folgenden Schritt ausführt: Einbinden der empfangenen Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher, wenn die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit geändert wurde.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, das nach dem Empfangen der Änderung des Weiteren folgende Schritte ausführt: Ermitteln, ob ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit beinhaltet, wenn die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit nicht geändert wurde; Einbinden der Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher, wenn kein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit beinhaltet; und Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt in jedem anderen Cachespeicher anzeigt, dass die Dateneinheit nicht geändert wurde.
  4. Verfahren nach Anspruch 1, 2 oder 3, das nach dem Empfangen der Änderung ferner folgende Schritte ausführt: Ermitteln, ob ein anderer Cachespeicher das Zielobjekt und einen aktuellsten Wert der Zieldateneinheit beinhaltet, wenn die Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit nicht geändert wurde; und Abrufen des aktuellsten Wertes der Zieldateneinheit von dem ermittelten Cachespeicher und Aktualisieren des Zielobjektes im Zielcachespeicher mit dem abgerufenen aktuellsten Wert der Zieldateneinheit, wenn ein anderer Cachespeicher den aktuellsten Wert der Zieldateneinheit beinhaltet.
  5. Verfahren nach Anspruch 4, das ferner folgende Schritte umfasst: Einbinden der empfangenen Änderung in die Dateneinheit im Zielobjekt im Zielcachespeicher nach dem Aktualisieren des Zielobjekts in dem Zielcachespeicher mit dem aktuellsten Wert der Zieldateneinheit; und Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt in jedem anderen Cachespeicher anzeigt, dass die Dateneinheit nicht geändert wurde.
  6. Verfahren nach Anspruch 4, bei dem ein Zentralserver den Schritte zum Ermitteln, ob ein anderer Cachespeicher das Zielobjekt und den aktuellsten Wert der Zieldateneinheit beinhaltet, und den Schritt zum Abrufen des aktuellsten Wertes der Zieldateneinheit von dem anderen Cachespeicher ausführt, wobei das Verfahren ferner folgenden Schritt umfasst: Zurückgeben des aktuellsten Wertes der Zieldateneinheit durch den Zentralserver, wobei die Änderung für die Zieldateneinheit in den Zielcachespeicher eingebunden wird, nachdem der aktuellste Wert der Zieldateneinheit am Zielcachespeicher eingebunden wurde, und wobei ein Cachespeicher mit jedem Cachespeicher verbunden ist und wobei jeder Cachespeicher Aktualisierungsinformationen für jedes Objekt in dem mindestens einen Cachespeicher verwaltet, mit dem der Cachespeicher verbunden ist, und wobei der Zentralserver die Aktualisierungsinformation für jedes Objekt in jedem Cachespeicher verwaltet.
  7. Verfahren nach einem der vorhergehenden Ansprüche, das ferner die folgenden Schritte umfasst: Verwalten von Ungültigkeitsinformationen für jedes Objekt in jedem Cachespeicher, wobei die Ungültigkeitsinformation für ein Objekt in einem Cachespeicher anzeigt, ob jede Dateneinheit im Objekt gültig oder ungültig ist; Ermitteln desjenigen Cachespeichers aus der Ungültigkeitsinformation, der einen aktuellsten Wert der Zieldateneinheit für das Zielobjekt beinhaltet, wenn die Ungültigkeitsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit ungültig ist; Abrufen des aktuellsten Wertes der Zieldateneinheit vom ermittelten Cachespeicher und Aktualisieren des Zielobjekts im Zielcachespeicher durch den aktuellsten Wert der Zieldateneinheit; Einbinden der abgerufenen Änderung in die Zieldateneinheit im Zielobjekt im Zielcachespeicher nach der Aktualisierung des Zielobjekts im Zielcachespeicher durch den aktuellsten Wert der Zieldateneinheit; Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit geändert wurde; Aktualisieren der Ungültigkeitsinformation für jeden Cachespeicher, der das Zielobjekt beinhaltet, um anzuzeigen, dass die Zieldateneinheit ungültig ist; und Aktualisieren der Aktualisierungsinformation für das Zielobjekt im ermittelten Cachespeicher, um anzuzeigen, dass die Dateneinheit nicht geändert wurde.
  8. Verfahren nach Anspruch 7, bei dem ein Zentralserver den Schritt zum Ermitteln, ob die Ungültigkeitsinformation für das Zielobjekt und den Zielcachespeicher anzeigt, dass die Zieldateneinheit ungültig ist, den Schritt zum Ermitteln des Cachespeichers, der das Zielobjekt und den aktuellsten Wert der Zieldateneinheit beinhaltet, und den Schritt zum Abrufen des aktuellsten Wertes der Zieldateneinheit vom ermittelten Cachespeicher ausführt, wobei das Verfahren ferner den folgenden Schritt umfasst: Zurückgeben des aktuellsten Wertes der Zieldateneinheit durch den Zentralserver, wobei die Änderung für die Zieldateneinheit in den Zielcachespeicher eingebunden wird, nachdem der aktuellste Wert der Zieldateneinheit am Zielobjekt im Zielcachespeicher eingebunden wurde.
  9. System zur Verwaltung von Daten, das Folgendes umfasst: eine Vielzahl verteilter Cachespeicher; ein Mittel zum Verwalten einer Kopie eines Objekts in mindestens einem Cachespeicher, wobei sich in mehreren Cachespeichern verschiedene Versionen des Objekts befinden und die Objekte änderbare Dateneinheiten aufweisen können; ein Mittel zum Verwalten einer Aktualisierungsinformation für jedes in dem Cachespeicher verwaltete Objekt in jedem Cachespeicher, wobei die Aktualisierungsinformation für jedes Objekt in jedem Cachespeicher das Objekt, den das Objekt beinhaltenden Cachespeicher und außerdem anzeigt, ob jede Dateneinheit im Objekt geändert wurde; und ein Mittel zum Aktualisieren der Aktualisierungsinformation für das Zielobjekt und den Zielcachespeicher, um anzuzeigen, dass die Zieldateneinheit nach dem Empfangen einer Änderung für eine Zieldateneinheit in einem Zielobjekt in einem Zielcachespeicher geändert wurde, wobei die Aktualisierungsinformation für das Zielobjekt anzeigt, dass die Zieldateneinheit in keinem anderen Cachespeicher geändert wurde; wobei die Cachespeicher verschiedene Versionen des Objekts enthalten können und die Cachespeicher veraltete Versionen des Objekts an Clients der Cachespeicher liefern können.
  10. Computerprogramm, das einen Computerprogrammcode umfasst, der in ein Computersystem geladen und darin ausgeführt wird, um das Computersystem zum Ausführen aller Schritte eines Verfahrens nach einem der Ansprüche 1 bis 7 zu veranlassen.
DE60311116T 2002-09-27 2003-09-26 Verfahren, system und programm zur verwaltung von daten in verteilten cachespeichern Expired - Lifetime DE60311116T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US259945 2002-09-27
US10/259,945 US6973546B2 (en) 2002-09-27 2002-09-27 Method, system, and program for maintaining data in distributed caches
PCT/GB2003/004193 WO2004029834A1 (en) 2002-09-27 2003-09-26 Method, system, and program for maintaining data in distributed caches

Publications (2)

Publication Number Publication Date
DE60311116D1 DE60311116D1 (de) 2007-02-22
DE60311116T2 true DE60311116T2 (de) 2007-07-12

Family

ID=32029590

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60311116T Expired - Lifetime DE60311116T2 (de) 2002-09-27 2003-09-26 Verfahren, system und programm zur verwaltung von daten in verteilten cachespeichern

Country Status (9)

Country Link
US (1) US6973546B2 (de)
EP (1) EP1546924B1 (de)
JP (1) JP4391943B2 (de)
CN (1) CN100511220C (de)
AU (1) AU2003267650A1 (de)
CA (1) CA2498550C (de)
DE (1) DE60311116T2 (de)
TW (1) TWI258657B (de)
WO (1) WO2004029834A1 (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030105811A1 (en) * 2001-05-02 2003-06-05 Laborde Guy Vachon Networked data stores for measurement data
US7254617B2 (en) * 2002-12-06 2007-08-07 Scott Ruple Distributed cache between servers of a network
US20040225730A1 (en) * 2003-01-17 2004-11-11 Brown Albert C. Content manager integration
US20040216084A1 (en) * 2003-01-17 2004-10-28 Brown Albert C. System and method of managing web content
US20040143626A1 (en) * 2003-01-21 2004-07-22 Dell Products L.P. Method and system for operating a cache for multiple files
US7480699B2 (en) * 2004-01-20 2009-01-20 International Business Machines Corporation System and method for replacing an application on a server
CA2572616A1 (en) * 2004-07-07 2006-02-09 Yottayotta, Inc. Systems and methods for providing distributed cache coherence
US20070112812A1 (en) * 2005-11-09 2007-05-17 Harvey Richard H System and method for writing data to a directory
US8321486B2 (en) * 2005-11-09 2012-11-27 Ca, Inc. Method and system for configuring a supplemental directory
US8458176B2 (en) * 2005-11-09 2013-06-04 Ca, Inc. Method and system for providing a directory overlay
US8326899B2 (en) * 2005-11-09 2012-12-04 Ca, Inc. Method and system for improving write performance in a supplemental directory
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US8943271B2 (en) * 2008-06-12 2015-01-27 Microsoft Corporation Distributed cache arrangement
US8176256B2 (en) * 2008-06-12 2012-05-08 Microsoft Corporation Cache regions
US9286293B2 (en) * 2008-07-30 2016-03-15 Microsoft Technology Licensing, Llc Populating and using caches in client-side caching
US8161244B2 (en) * 2009-05-13 2012-04-17 Microsoft Corporation Multiple cache directories
US8108612B2 (en) * 2009-05-15 2012-01-31 Microsoft Corporation Location updates for a distributed data store
JP2010286993A (ja) * 2009-06-10 2010-12-24 Nec Access Technica Ltd アクセス分散システム、中継装置、方法及びプログラム
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
WO2011056108A1 (en) * 2009-11-06 2011-05-12 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for pre-caching in a telecommunication system
US9952968B2 (en) * 2010-01-29 2018-04-24 Micro Focus Software, Inc. Methods and system for maintaining data coherency in distributed data cache network
US20110213825A1 (en) * 2010-02-26 2011-09-01 Rovi Technologies Corporation Dynamically configurable clusters of apparatuses
US8745638B1 (en) 2010-10-01 2014-06-03 Google Inc. Method and system for distributing object update messages in a distributed network system
CN102073494B (zh) * 2010-12-30 2014-05-07 用友软件股份有限公司 缓存数据管理方法和装置
US9380127B2 (en) 2011-05-18 2016-06-28 Alibaba Group Holding Limited Distributed caching and cache analysis
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
KR20130087810A (ko) * 2012-01-30 2013-08-07 삼성전자주식회사 이동통신 시스템에서 협력적 캐슁 방법 및 장치
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9298719B2 (en) * 2012-09-04 2016-03-29 International Business Machines Corporation On-demand caching in a WAN separated distributed file system or clustered file system cache
US9519902B2 (en) * 2013-06-25 2016-12-13 Quisk, Inc. Fraud monitoring system with distributed cache
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
CN104219327B (zh) * 2014-09-27 2017-05-10 上海瀚之友信息技术服务有限公司 一种分布式缓存系统
CN105630823B (zh) * 2014-11-04 2019-03-12 阿里巴巴集团控股有限公司 基于分布式系统的缓存数据的监控方法、装置和系统
CN104572968B (zh) * 2014-12-30 2018-06-26 北京奇虎科技有限公司 一种页面更新方法和装置
CN105608197B (zh) * 2015-12-25 2019-09-10 Tcl集团股份有限公司 一种高并发下Memcache数据的获取方法及系统
CN105701233B (zh) * 2016-02-18 2018-12-14 南京焦点领动云计算技术有限公司 一种优化服务器缓存管理的方法
US11301422B2 (en) * 2016-02-23 2022-04-12 Samsung Electronics Co., Ltd. System and methods for providing fast cacheable access to a key-value device through a filesystem interface
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
CN109947780A (zh) * 2017-08-17 2019-06-28 天津数观科技有限公司 一种利用代理程序更新缓存的方法、装置及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307477A (en) 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5784590A (en) 1994-06-29 1998-07-21 Exponential Technology, Inc. Slave cache having sub-line valid bits updated by a master cache
US6047357A (en) 1995-01-27 2000-04-04 Digital Equipment Corporation High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy
US5822763A (en) 1996-04-19 1998-10-13 Ibm Corporation Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
JPH10105481A (ja) * 1996-09-30 1998-04-24 Hitachi Ltd サービス仲介方法および装置
SE9700622D0 (sv) * 1997-02-21 1997-02-21 Ericsson Telefon Ab L M Anordning och metod vid datanät
US5933849A (en) 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6256712B1 (en) 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6269432B1 (en) * 1998-10-23 2001-07-31 Ericsson, Inc. Distributed transactional processing system having redundant data
US6405289B1 (en) * 1999-11-09 2002-06-11 International Business Machines Corporation Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response
US6721856B1 (en) * 2000-10-26 2004-04-13 International Business Machines Corporation Enhanced cache management mechanism via an intelligent system bus monitor
JP2002251313A (ja) * 2001-02-23 2002-09-06 Fujitsu Ltd キャッシュサーバ及び分散キャッシュサーバシステム

Also Published As

Publication number Publication date
EP1546924A1 (de) 2005-06-29
CA2498550A1 (en) 2004-04-08
US20040064650A1 (en) 2004-04-01
TW200412497A (en) 2004-07-16
JP2006500669A (ja) 2006-01-05
CN100511220C (zh) 2009-07-08
WO2004029834A1 (en) 2004-04-08
US6973546B2 (en) 2005-12-06
DE60311116D1 (de) 2007-02-22
EP1546924B1 (de) 2007-01-10
AU2003267650A1 (en) 2004-04-19
TWI258657B (en) 2006-07-21
CN1672151A (zh) 2005-09-21
JP4391943B2 (ja) 2009-12-24
CA2498550C (en) 2011-02-01

Similar Documents

Publication Publication Date Title
DE60311116T2 (de) Verfahren, system und programm zur verwaltung von daten in verteilten cachespeichern
DE69831904T2 (de) Dynamische Erstellung von Internetseiten
DE10003907B4 (de) Verfahren, Vorrichtung und Datenverarbeitungsprogramm für die Anwendung beim Zugriff auf Hypertext-Dokumente
DE69834129T2 (de) Verfahren und system zum vorausladen von informationen
DE60011069T2 (de) Behandlung einer anfrage nach informationen, die von einem dienstleisters angeboten werden
DE69732605T2 (de) Dynamisches Cachespeicher-Vorladen über lose gekoppelte administrative Bereiche
DE69729926T2 (de) Netzwerkbrowser
DE10052313B4 (de) Verfahren und Vorrichtung zur Beschränkung des freien Verweisens (Hyperlinking) auf Webseiten der ursprünglichen Inhaltserzeuger (Content producers) durch Internet-Inhaltsverteiler (Content distributors)
DE69834579T2 (de) Http- sitzung- überwachung
DE60019839T2 (de) Verfahren zum Austauch von Daten zwischen einer Javasystemdatenbank und einem LDAP Verzeichnis
DE69719564T2 (de) Dynamischer dateiverzeichnisdienst
DE69728176T2 (de) Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE60126798T2 (de) Verfahren zum durchsuchen und analysieren von informationen in datennetzen
DE60313567T2 (de) Zugriffsrelayvorrichtung
DE60038707T2 (de) Internet-Schnittstellensystem
DE69723432T2 (de) Informationsauffindungssystem mit einer cachedatenbank
DE69636869T2 (de) Server mit automatischer Menüladefunktion
DE60003278T2 (de) Hierarchische Auflösung von Adressen in einem Datennetzwerk
DE202010018478U1 (de) Cachen von Informationen
DE10295699T5 (de) Eine Anordnung und ein Verfahren in Bezug auf Sitzungsverwaltung in einer Portalstruktur
DE202012013445U1 (de) System, um Offline Zugriff in einem gehosteten Dokument-Service zur Verfügung zu stellen
DE202008013034U1 (de) System zum Beschleunigen von Browsing-Sitzungen
CN1234086C (zh) 用于高速缓存文件信息的系统和方法
DE602004013397T2 (de) Verfahren und Apparat zum Verschieben von Daten zwischen Speichersystemen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)