Einführung
WWW ist eine der beliebtesten Anwendungen im Internet. Sein schnelles Wachstum hat zu Netzwerküberlastungen und Serverüberlastungen geführt, was zu erhöhten Verzögerungen beim Kundenzugriff und Problemen mit der WWW-Servicequalität führte. Die Caching-Technologie gilt als eine der effektivsten Möglichkeiten, die Serverlast zu reduzieren, die Netzwerküberlastung zu verringern und die WWW-Skalierbarkeit zu verbessern. Ihre Grundidee besteht darin, das Prinzip der zeitlichen Lokalität des Kundenzugriffs zu nutzen, um die Inhalte zu speichern, auf die der Kunde zugegriffen hat Cache. Beim nächsten Zugriff auf den Inhalt muss keine Verbindung zur Hosting-Website hergestellt werden, sondern wird durch die im Cache gespeicherte Kopie bereitgestellt.
Webinhalte können auf der Client-, Proxyserver- und Serverseite zwischengespeichert werden. Untersuchungen zeigen, dass die Caching-Technologie die WWW-Leistung erheblich verbessern kann [1][2] und die folgenden Vorteile mit sich bringen kann:
(1) Reduzieren Sie den Netzwerkverkehr und verringern Sie so die Netzwerküberlastung.
(2) Reduzieren Sie die Verzögerung des Kundenzugriffs. Die Hauptgründe sind: ① Für im Proxy-Server zwischengespeicherte Inhalte können Kunden diese direkt vom Proxy statt vom Remote-Server abrufen, wodurch die Übertragungsverzögerung verringert wird um die Überlastung des Netzwerks und die Serverlast zu reduzieren, sodass es von den Kunden schneller bezogen werden kann;
(3) Da ein Teil des Anforderungsinhalts des Clients vom Proxy abgerufen werden kann, wird die Belastung des Remote-Servers verringert.
(4) Wenn der Remote-Server aufgrund eines Remote-Server- oder Netzwerkfehlers nicht auf die Anfrage des Clients antworten kann, kann der Client eine zwischengespeicherte Kopie des Inhalts vom Proxy erhalten, was die Robustheit des WWW-Dienstes erhöht.
Web-Caching-Systeme bringen außerdem folgende Probleme mit sich:
(1) Die vom Kunden über den Vermittler bezogenen Inhalte können veraltet sein;
(2) Wenn eine Cache-Ungültigmachung auftritt, erhöht sich die Zugriffslatenz des Clients aufgrund des zusätzlichen Proxy-Verarbeitungsaufwands. Daher sollte man beim Entwerfen eines Web-Cache-Systems darauf achten, die Cache-Trefferquote zu maximieren und die Fehlerkosten zu minimieren;
(3) Der Agent kann zum Engpass werden. Daher sollte für einen Agenten eine Obergrenze für die Anzahl der Servicekunden und eine Untergrenze für die Serviceeffizienz festgelegt werden, sodass die Effizienz eines Agentensystems mindestens so effizient ist wie die von Clients, die direkt mit dem Remote-Server verbunden sind.
Gegenwärtig wurden umfangreiche und tiefgehende Untersuchungen zu Web-Caching-Systemen und ihren Optimierungsproblemen durchgeführt, wobei sich diese Forschungsarbeiten hauptsächlich auf die Rolle von Proxys konzentrieren.
2 Ideale Eigenschaften eines Web-Caching-Systems Ein ideales Web-Caching-System sollte die folgenden Eigenschaften aufweisen:
(1) Geschwindigkeit: Das Caching-System sollte in der Lage sein, Verzögerungen beim Kundenzugriff wirksam zu reduzieren;
(2) Robustheit: Robustheit bedeutet Verfügbarkeit, und Kunden möchten, dass Webdienste jederzeit verfügbar sind.
(3) Transparenz: Das Caching-System sollte für Kunden transparent sein, und die vom Kunden erzielten Ergebnisse sind nur schnelle Reaktion und gute Verfügbarkeit;
(4) Skalierbarkeit: Das Web-Caching-System sollte gut skalierbar sein, wenn die Netzwerkgröße und -dichte weiter wächst;
(5) Effizienz: Je geringer der Overhead ist, den das Web-Caching-System dem Netzwerk verursacht, desto besser.
(6) Anpassungsfähigkeit: Das Caching-System kann sich an dynamische Änderungen der Kundenanforderungen und der Netzwerkumgebung anpassen, was Cache-Verwaltung, Cache-Routing, Proxy-Konfiguration usw. umfasst und für die Erzielung einer idealen Cache-Leistung von entscheidender Bedeutung ist.
(7) Stabilität: Die vom Web-Caching-System gewählte Lösung sollte keine Instabilität im Netzwerk verursachen.
(8) Lastausgleich: Eine ideale Caching-Lösung sollte in der Lage sein, die Last gleichmäßig auf das gesamte Netzwerk zu verteilen, um zu vermeiden, dass ein bestimmter Agent oder Server zu einem Engpass oder Hotspot wird und zu Leistungseinbußen bei einem Teil des Systems oder sogar dem gesamten System führt.
(9) Heterogene Verarbeitungsfunktionen: Da die Netzwerkgröße und der Abdeckungsbereich weiter zunehmen, wird das Netzwerk eine Reihe unterschiedlicher Hardware- und Softwarearchitekturen umfassen. Web-Caching-Systeme sollten sich an unterschiedliche Netzwerkarchitekturen anpassen können;
(10) Einfachheit: Einfache Lösungen sind leicht zu implementieren und allgemein akzeptiert. Eine ideale Web-Caching-Lösung sollte einfach und leicht zu konfigurieren sein.
Unter Berücksichtigung der oben genannten Merkmale muss ein Web-Caching-System die folgenden Probleme lösen:
(1) Cache-Architektur: wie Caching-Proxys im Netzwerk organisiert und konfiguriert sind;
(2) Agentenkooperation: Wie man zwischen Agenten kooperiert, die miteinander zusammenarbeiten, kann die Trefferquote erhöhen und die Leistung des Cache-Systems verbessern.
(3) Cache-Routing: Wenn ein Cache-Proxy ausfällt, wie wird die Anforderung an andere Cache-Proxys weitergeleitet?
(4) Cache-Ersetzungsalgorithmus: Wenn der Cache-Speicherplatz nicht ausreicht, wie wird der Cache-Inhalt ersetzt?
(5) Cache-Konsistenz: Das heißt, die Aktualität der zwischengespeicherten Inhalte und wie verhindert werden kann, dass zwischengespeicherte Inhalte veraltet sind;
(6) Vorabrufen von Inhalten: Wie der Agent entscheidet, Inhalte vom Server oder anderen Agenten vorab abzurufen, um die Zugriffsverzögerung des Clients zu verringern;
(7) Lastausgleich: So lösen Sie das „Hot Spot“-Phänomen im Netzwerk;
(8) Cache-Inhalt: Welche Art von Inhalt kann zwischengespeichert werden?
Beim Entwurf eines Web-Caching-Systems müssen die oben genannten Probleme berücksichtigt werden.
3 Übersicht über Web-Caching-Lösungen
3.1 Web-Cache-Architektur Die Leistung eines Web-Cache-Systems hängt von der Größe seines Kundenstamms ab. Je größer der Kundenstamm, desto höher ist die Wahrscheinlichkeit, dass der zwischengespeicherte Inhalt erneut angefordert wird. Untereinander kooperierende Cache-Gruppen können die Trefferquote erhöhen und die Leistung des Cache-Systems verbessern. Daher sollte die Architektur des Cache-Systems sicherstellen, dass Agenten effektiv zusammenarbeiten können. Zu den typischen Cache-Architekturen gehören die folgenden: hierarchisch, verteilt und hybrid.
Abbildung 1 Diagramm der Web-Caching-Systemarchitektur
3.1.1 Hierarchische Cache-Architektur
Das Harvest-Projekt [3] schlug zunächst eine hierarchische Web-Caching-Architektur vor. In der hierarchischen Cache-Architektur wird der Cache auf mehreren Ebenen im Netzwerk konfiguriert, wie in Abbildung 1(a) dargestellt. Der Einfachheit halber wird davon ausgegangen, dass es vier Ebenen gibt: Cache der unteren Schicht, Cache der lokalen Schicht, Cache der regionalen Schicht und Cache der Weitbereichsschicht. Die unterste Ebene ist der Client-/Browser-Cache. Wenn der Client-Cache die Anforderung des Clients nicht erfüllen kann, wird die Anforderung an den Cache der lokalen Ebene weitergeleitet Bereichsebene Cache. Wenn die Anfrage nicht in den Caches auf allen Ebenen erfüllt werden kann, wird die Anfrage schließlich an den Server weitergeleitet. Die Antwort des Servers auf die Anfrage wird dann von oben nach unten an den Client gesendet, wobei auf dem Weg eine Kopie in jedem Cache der mittleren Ebene verbleibt. Andere Anfragen für denselben Inhalt werden von unten nach oben weitergeleitet, bis sie in einer bestimmten Cache-Ebene erfüllt werden.
Die hierarchische Caching-Architektur ist äußerst bandbreiteneffizient und Webinhalte mit hohen Klickraten können schnell und effizient an das Netzwerk verteilt werden. Allerdings weist diese Architektur auch einige Mängel auf[4]:
(1) Erstellen Sie eine hierarchische Cache-Architektur. Cache-Server müssen an wichtigen Zugriffspunkten im Netzwerk konfiguriert werden und Cache-Server müssen miteinander zusammenarbeiten.
(2) Jede Cache-Ebene bringt zusätzliche Verzögerungen mit sich.
(3) Der High-Level-Cache kann zu einem Engpass werden und zu langen Warteschlangenverzögerungen führen.
(4) Mehrere Kopien desselben Inhalts werden in verschiedenen Caches gespeichert, und die Cache-Speicherauslastung des gesamten Systems ist nicht hoch.
3.1.2 Verteilte Cache-Architektur Angesichts der oben genannten Mängel der hierarchischen Cache-Struktur haben einige Forscher eine verteilte Cache-Architektur vorgeschlagen. In dieser Struktur gibt es nur einen Cache auf niedriger Ebene, wie in Abbildung 1(b) dargestellt. In der verteilten Web-Cache-Struktur in der Literatur [5] gibt es über die lokale Schicht hinaus keine Zwischen-Cache-Schicht, und die Caches kooperieren bei der Bewältigung von Fehlern. Um zu bestimmen, an welchen lokalen Layer-Cache die Client-Anfrage weitergeleitet werden soll, um den ungültigen Inhalt zu erhalten, behält jeder lokale Layer-Cache eine Kopie der Verzeichnisinformationen des zwischengespeicherten Inhalts in anderen lokalen Layer-Caches bei, sodass die Client-Anfrage bearbeitet werden kann Wird bei einer Invalidierung korrekt an den entsprechenden lokalen Layer-Cache weitergeleitet. Cache Array Routing Protocol CARP [6] (Cache Array Routing Protocol) ist ein verteiltes Caching-Schema, das den URL-Bereich in verschiedene Teile unterteilt und jeden Teil einer lose verbundenen Cache-Gruppe zuweist. Jeder Cache kann nur Webinhalte zwischenspeichern, denen eine URL zugewiesen ist Dies ermöglicht es, basierend auf der URL, von der der Client den Inhalt angefordert hat, zu bestimmen, an welchen Cache die Anfrage weitergeleitet werden soll.
In einer verteilten Cache-Struktur findet der meiste Netzwerkverkehr am unteren Ende des Netzwerks statt, wodurch die Wahrscheinlichkeit einer Netzwerküberlastung geringer ist, die Lastverteilung besser erreicht werden kann und die Fehlertoleranz besser ist. Bei der Konfiguration eines großen verteilten Cache-Systems können jedoch mehrere Probleme auftreten: hohe Anzahl von Verbindungen, hohe Bandbreitenanforderungen und schwierige Verwaltung [4].
3.1.3 Hybrid-Cache-Architektur Die in Abbildung 1(c) dargestellte Hybrid-Cache-Architektur verwendet eine verteilte Cache-Struktur und arbeitet miteinander zusammen. Das von Harvest Group entwickelte Internet Cache Protocol ICP (Internet Cache Protocol) unterstützt das Abrufen entsprechender Inhalte aus dem übergeordneten Cache oder dem Nachbarcache mit der kleinsten RTT.
3.1.4 Optimierungsuntersuchungen zur Cache-Architektur zeigen, dass die hierarchische Cache-Architektur im Vergleich zur verteilten Cache-Struktur eine kürzere Verbindungszeit hat, sodass kleinere Dokumente im Cache der mittleren Ebene zwischengespeichert werden können Übertragungszeit und höhere Bandbreitenauslastung. Die ideale Lösung besteht darin, beide zu kombinieren, um ihre jeweiligen Stärken voll zur Geltung zu bringen und gleichzeitig die Verbindungs- und Übertragungszeit zu verkürzen.
3.2 Cache-Routing In Anbetracht der Skalierbarkeit des Web-Caching-Systems verteilen die meisten Caching-Systeme eine große Anzahl von Caches im Internet. Das größte Problem besteht darin, den Cache, der den erforderlichen Inhalt zwischenspeichert, schnell zu finden . Dieses Problem ähnelt in gewisser Weise dem Netzwerk-Routing, kann jedoch nicht auf die gleiche Weise gelöst werden. Herkömmliches Netzwerk-Routing kann auf Adress-Clustering basieren (hierarchische Adressdarstellung ermöglicht Adress-Clustering), aber im WWW werden Dokumente mit demselben URL-Präfix oder Server-Adress-Präfix möglicherweise nicht an denselben Client gesendet, was die Weiterleitung von Adressen erschwert geclustert, so dass die Cache-Routing-Tabelle unüberschaubar groß wird. Darüber hinaus wird der Cache-Inhalt ständig aktualisiert und veraltete Cache-Routing-Informationen führen zur Cache-Ungültigkeit. Um die Kosten eines Cache-Ausfalls zu reduzieren, sollte ein idealer Cache-Routing-Algorithmus die Anfrage des Clients an den nächsten Proxy weiterleiten, der eine höhere Trefferwahrscheinlichkeit aufweist und sich auf oder in der Nähe des Netzwerkpfads vom Client zum Server befindet.
3.2.1 Caching-Routing-Tabellenmethode
Malpani et al. [7] haben eine Gruppe von Caches zusammengefasst. Wenn der Cache den angeforderten Inhalt enthält, wird er an den Client weitergeleitet Über IP-Multicast antworten andere Caches in derselben Gruppe auf die Anfrage des Clients aus dem Cache, der den entsprechenden Inhalt zwischenspeichert. Wenn der angeforderte Inhalt in keinem Cache zwischengespeichert ist, wird die Anfrage an den Ursprungsserver weitergeleitet. Das Harvest[3]-Caching-System organisiert den Cache in einer hierarchischen Struktur und verwendet das Cache Resolution Protocol ICP (Internet Cache Protocol). Wenn ein Cache-Fehler auftritt, fragt der Cache der unteren Ebene zuerst den Cache des Geschwisterknotens ab, bevor er die Kundenanfrage an den weiterleitet Cache der oberen Ebene Ob der entsprechende Inhalt zwischengespeichert wird, um eine Überlastung des Caches der obersten Ebene zu vermeiden. Das adaptive Web-Caching-System [8] erstellt für jeden Server einen Cache-Baum. Die Caches im Baum sind in überlappenden Multicast-Gruppen organisiert, und eine Anfrage erhält den entsprechenden zwischengespeicherten Inhalt über diese Übertragungsgruppen. Diese Methode erstellt für jeden Server einen anderen Cache-Baum, sodass kein Überlastungsproblem des Wurzelknotens auftritt und die Selbstkonfiguration und Robustheit relativ gut sind. Allerdings durchlaufen Anfragen nach Inhalten mit niedrigen Klickraten möglicherweise mehr Caches, was zu einem größeren Cache-Kommunikationsaufwand führt. Um dieses Problem zu lösen, empfiehlt der Autor, die Anzahl der Caches zu begrenzen, die Anfragen durchlaufen.
3.2.2 Hash-Funktionsmethode
Das Cache Array Routing Protocol CARP [6] verwendet eine Hash-Funktion basierend auf der Array-Mitgliederliste und der URL, um die genaue Cache-Adresse eines Web-Objekts zu bestimmen oder wo ein Web-Objekt zwischengespeichert werden soll. Im Summary Cache [9] speichert jeder Proxy eine URL-Zusammenfassung des von anderen Proxys in derselben Gruppe zwischengespeicherten Inhalts. Der Proxy überprüft diese Zusammenfassungsinformationen, wenn er die Client-Anfrage weiterleitet, um zu bestimmen, an welchen Proxy die Anfrage weitergeleitet werden soll. Um den Overhead zu reduzieren, werden diese zusammenfassenden Informationen regelmäßig aktualisiert. Experimente zeigen, dass dieses System die Informationsmenge zwischen Caches, den Bandbreitenverbrauch und den durch das Protokoll verursachten CPU-Overhead erheblich reduzieren kann und dabei nahezu die gleiche Cache-Trefferrate wie ICP beibehält.
3.3 Cache-Ersetzungsalgorithmus
Der Cache-Ersetzungsalgorithmus ist ein wichtiger Faktor, der die Leistung des Proxy-Cache-Systems beeinflusst. Ein guter Cache-Ersetzungsalgorithmus kann zu einer höheren Trefferquote führen. Bisher vorgeschlagene Algorithmen lassen sich in die folgenden drei Kategorien einteilen:
(1) Herkömmlicher Ersetzungsalgorithmus und seine direkte Weiterentwicklung: ①LRU-Algorithmus (Least Recent Used): Ersetzen Sie den am wenigsten verwendeten Inhalt aus dem Cache. ②LFU-Algorithmus (Lease Frequently Used): Ersetzen Sie den am wenigsten verwendeten Inhalt aus dem Cache der Cache-Cache; ③Pitkow/Recker[10] schlug einen Ersetzungsalgorithmus vor: Wenn alle Inhalte im Cache am selben Tag zwischengespeichert werden, wird das größte Dokument aus dem Cache ersetzt, andernfalls wird es gemäß dem LRU-Algorithmus ersetzt.
(2) Ersetzungsalgorithmus basierend auf den Schlüsselmerkmalen des Cache-Inhalts. Zu seinen repräsentativen Algorithmen gehören: ①Size[10]-Ersetzungsalgorithmus: Ersetzen Sie den größten Inhalt aus dem Cache ersetztes Dokument individuell Die kleinste Zahl. Angenommen, die Größe des zwischenzuspeichernden Dokuments beträgt S, und die zwischengespeicherten Dokumente im Cache mit einer Größe von mindestens S werden gemäß dem LRU-Algorithmus ersetzt, wenn kein Objekt mit einer Größe von mindestens S vorhanden ist Algorithmus wird aus Dokumenten mit einer Größe von mindestens S/2 verwendet. Ersetzen; ③LRU – Schwellenwert[11]: Derselbe wie der LRU-Algorithmus, mit der Ausnahme, dass Dokumente, deren Größe einen bestimmten Schwellenwert überschreitet, nicht zwischengespeichert werden können. 12] Ersetzungsalgorithmus: Ersetzen Sie das Dokument mit der geringsten Zugriffsverzögerung aus dem Cache.
(3) Kostenbasierter Ersatzalgorithmus Dieser Algorithmustyp verwendet eine Kostenfunktion, um die Objekte im Cache auszuwerten, und bestimmt schließlich das Ersatzobjekt basierend auf dem Kostenwert. Seine repräsentativen Algorithmen sind: ①Hybrid[12]-Algorithmus: Der Algorithmus weist jedem Objekt im Cache eine Nutzenfunktion zu und ersetzt das Objekt mit dem kleinsten Nutzenwert aus dem Cache. ②Lowest Relative Value[13]-Algorithmus: ersetzt das Objekt durch der niedrigste Nutzenwert aus dem Cache; ③ Least Normalized Cost Replacement (LCNR) [14]: Dieser Algorithmus verwendet eine Inferenzfunktion über die Häufigkeit des Dokumentenzugriffs, die Übertragungszeit und die Größe, um Ersatzdokumente zu bestimmen. Es wurde eine Methode vorgeschlagen, die auf den Kosten für die Übertragungszeit des Dokuments, der Größe und der gewichteten Inferenzfunktion der letzten Zugriffszeit basiert, um den Algorithmus „Size-Adjust LRU (SLRU)“ [16] zu bestimmen: Sortieren Sie zwischengespeicherte Objekte nach dem Kostenverhältnis Größe anpassen und das Objekt mit dem kleinsten Verhältnis zum Ersetzen auswählen.
Kurz gesagt, um die Cache-Trefferquote zu maximieren, wurde viel Arbeit rund um den Cache-Ersetzungsalgorithmus geleistet. Die Leistung des Ersetzungsalgorithmus hängt jedoch weitgehend von den Eigenschaften des WWW-Zugriffs ab Die Verarbeitung aller Webzugriffsmodi ist besser als bei anderen Algorithmen.
3.4 Cache-Konsistenz
Das Web-Caching-System kann die Zugriffslatenz reduzieren, hat jedoch einen Nebeneffekt: Bei den den Kunden bereitgestellten zwischengespeicherten Kopien kann es sich um veraltete Inhalte handeln. Daher muss ein Cache-Konsistenzmechanismus vorhanden sein, um sicherzustellen, dass die zwischengespeicherten Inhalte rechtzeitig aktualisiert und validiert werden können Art und Weise, um Kunden mit den neuesten Inhalten zu versorgen.
Derzeit gibt es zwei Haupttypen der Cache-Konsistenz: starke Cache-Konsistenz und schwache Cache-Konsistenz.
3.4.1 Starke Cache-Konsistenz (1) Client-Bestätigung: Bei jedem Zugriff betrachtet der Proxy den zwischengespeicherten Inhalt als veraltet und sendet mit der Anfrage einen „IF-Modified-Since-date“-Header an den Server. Wenn sich der Inhalt nach der angegebenen Zeit ändert, sendet der Server den aktualisierten Inhalt an den Agenten und schließlich an den Client, wenn der angeforderte Inhalt nicht geändert wurde, wird eine „304“-Antwort zurückgesendet, die angibt, dass das Dokument nicht geändert wurde und der zwischengespeicherte Inhalt bleibt effizient.
(2) Serverbestätigung: Wenn der Server erkennt, dass sich ein Inhalt geändert hat, sendet der Server Ungültigkeitsinformationen an alle Clients, die den Inhalt kürzlich angefordert und möglicherweise zwischengespeichert haben [17]. Diese Methode erfordert, dass der Server eine verknüpfte Liste von Clients speichert, die auf den Inhalt zugreifen, um ungültige Informationen zu senden. Wenn die Anzahl der Clients groß ist, ist diese Methode nicht mehr anwendbar. Gleichzeitig kann auch die verknüpfte Liste selbst veraltet sein Dies führt dazu, dass der Server Nachrichten an viele Clients sendet, die nicht mehr zwischengespeichert werden. Kunden dieses Inhalts werden ungültige Informationen gesendet.
3.4.2 Schwache Cache-Konsistenz (1) Adaptiver TTL-Mechanismus [18] (Time To Live): Durch Beobachten der Lebensdauer eines Dokuments wird dessen Überlebenszeit angepasst und so das Cache-Konsistenzproblem gelöst. Wenn ein Dokument über einen längeren Zeitraum hinweg nicht geändert wurde, wird es sich in der Regel nicht noch einmal ändern. Auf diese Weise wird dem Lebensdauerattribut eines Dokuments ein Prozentsatz des aktuellen „Alters“ des Dokuments zugewiesen (gleich der aktuellen Zeit minus der Zeit der letzten Änderung). Mit der adaptiven TTL-Methode kann die Wahrscheinlichkeit, dass ein Dokument veraltet ist, auf weniger als 5 % reduziert werden. Die meisten Proxyserver verwenden diesen Mechanismus, aber dieser auf der Dokumentlebensdauer basierende Cache-Konsistenzmechanismus stellt nicht die Gültigkeit des zwischengespeicherten Inhalts sicher.
(2) Huckepack-Ungültigmachungsmechanismus
Krishnamurthy et al. schlugen die Verwendung eines Huckepack-Invalidierungsmechanismus vor, um die Effizienz der Cache-Kohärenz zu verbessern. Sie schlugen drei Mechanismen vor: ① Piggyback Cache Validation (PCV) [19]-Mechanismus: Verwendung von Anforderungen, die vom Proxy an den Server gesendet werden, um die Cache-Konsistenz zu verbessern. Wenn ein Proxy beispielsweise eine Anfrage an den Server stellt, überträgt er eine Reihe zwischengespeicherter, aber möglicherweise veralteter Inhalte vom Server zur Gültigkeitsbestätigung. ② Piggyback Service Invalidation (PSI) [20] (Piggyback Service Invalidation)-Mechanismus: die Grundidee; Wenn der Server auf den Proxy antwortet, teilt er dem Proxy-Server eine Reihe von Inhalten mit, die sich seit dem letzten Proxy-Zugriff geändert haben, und der Proxy macht diese Inhalte ungültig, wodurch die Cache-Zeit anderer zwischengespeicherter Inhalte im Cache ③ PSI verlängert wird und PCV-Hybridmechanismus [21]: Dieser Mechanismus bestimmt, welcher Mechanismus verwendet werden soll, um die beste Gesamtleistung zu erzielen, basierend auf der Größe des aktuellen Intervalls seit der letzten Anforderung durch den Agenten ungültig gemacht wurde. Wenn dieses Zeitintervall klein ist, wird der PSI-Mechanismus verwendet, andernfalls wird der PCV-Mechanismus zur Bestätigung des Cache-Inhalts verwendet. Das Grundprinzip besteht darin, dass je kürzer das Zeitintervall, desto kleiner die Anzahl der zusammen mit dem PSI gesendeten Ungültigkeiten ist. Mit zunehmender Zeit ist jedoch der Aufwand für das Senden von Ungültigkeiten größer als der Aufwand für die Anforderung einer Bestätigung.
3.5 Vorabruf von Inhalten
Web-Caching-Technologie kann die Web-Leistung verbessern, Untersuchungen zeigen jedoch [22], dass die maximale Cache-Trefferquote unabhängig vom verwendeten Caching-Schema normalerweise nicht mehr als 40 bis 50 % beträgt. Um die Cache-Trefferquote weiter zu verbessern, wird die Prefetching-Technologie eingeführt. Die Prefetch-Technologie ist im Wesentlichen eine aktive Caching-Technologie. Ihre Grundidee besteht darin, Vorkenntnisse über den Zugriffsinhalt oder -modus des Kunden zu nutzen, um den nächsten Anforderungsinhalt des Kunden bei der Verarbeitung der aktuellen Anforderung des Kunden vorherzusagen, und den angeforderten Inhalt des Kunden zum Zwischenspeichern von Vorhersageinhalten zu verwenden den Cache, um die Latenz besser zu verbergen und die Servicequalität zu verbessern.
Frühe Forschungen konzentrierten sich auf das Prefetching von Inhalten zwischen Browsern/Clients und Webservern. Mit der Einführung von Proxys verlagerte sich das Forschungsinteresse auf die Prefetching-Technologie zwischen Proxys und Servern. Untersuchungen zeigen, dass die Prefetching-Technologie die Latenzzeit beim Kundenzugriff effektiv reduzieren kann, die Prefetching-Technologie ist jedoch aus zwei Gründen immer noch umstritten:
(1) Das Vorabrufen von Inhalten ist eine Aufgabe mit hohen Echtzeitanforderungen. Sie nutzt hauptsächlich das Intervall der Kundenanfragen, und dieses Intervall beträgt im Allgemeinen weniger als eine Minute [23]. , wird das Vorabrufen bedeutungslos. Daher werden höhere Anforderungen an die Effizienz des Prefetch-Algorithmus gestellt.
(2) Durch das Vorabrufen von Inhalten wird die Reaktionszeit des Clients verkürzt, allerdings erhöht sich die Serverlast und der Netzwerkverkehr, sodass höhere Anforderungen an die Genauigkeit des Vorabrufs gestellt werden. Gleichzeitig muss ein Prefetch-Modell die Zugriffseigenschaften, die Serverlast und die Netzwerkverkehrsbedingungen des Kunden berücksichtigen, wenn es die Anzahl der vorab abgerufenen Dokumente bestimmt. Ein Prefetch ohne diese Faktoren kann kontraproduktive Auswirkungen haben.
Kurz gesagt: Ein gutes Prefetching-Modell muss eine hohe Effizienz und Genauigkeit bei geringen Kosten aufweisen. Weitere Untersuchungen zur Effizienz und Genauigkeit des Vorabrufs sind erforderlich.
3.5 Lastausgleich Wenn viele Kunden gleichzeitig Daten oder Dienste von einem Server beziehen, tritt das Hot-Spot-Phänomen auf, das zu einer Verschlechterung der Serverleistung oder sogar zu einem Ausfall führt. Die meisten aktuellen Methoden zur Bewältigung dieses Problems bestehen darin, eine Replikationsstrategie zu verwenden, um die angeforderten Inhalte im Internet zu speichern und so die Last auf mehrere Server (Agenten) zu verteilen [24], um zu vermeiden, dass ein einzelner Server zu einem Engpass wird.
3.6 Inhalt zwischenspeichern Ein Proxy kann mehrere Rollen übernehmen. Zusätzlich zum Daten-Caching kann er auch Verbindungs-Caching und Berechnungs-Caching durchführen. Verbindungscaching bezieht sich auf die Verwendung dauerhafter Verbindungen zwischen dem Client und dem Agenten sowie zwischen dem Agenten und dem Server, um den Overhead beim Aufbau einer TCP-Verbindung und den langsamen Startoverhead beim Senden durch den Server zu reduzieren und dadurch die Verzögerungszeit des Kundenzugriffs zu reduzieren [25 ]. Computational Caching kann als Webserver betrachtet werden, der einige seiner Dienste auf Proxys migrieren kann, um Serverengpässe zu lindern. Eine seiner Anwendungen ist das dynamische Daten-Caching, das dynamische Daten über Proxys zwischenspeichert und einen Teil der Berechnungen auf Proxys migriert, die von generiert werden Proxys und verwalten zwischengespeicherte dynamische Daten, wodurch die Leistung der Kunden beim Abrufen dynamischer Daten verbessert wird.
4 Probleme, die weiterer Forschung bedürfen Es wurden umfangreiche Untersuchungen zur Web-Caching-Technologie durchgeführt und es wurden fruchtbare Ergebnisse erzielt, es gibt jedoch immer noch einige Probleme, die weiterer Forschung bedürfen. Zu diesen Problemen gehören:
(1) Forschung zu Kundenzugriffsmustern: Durch die Untersuchung von Kundenzugriffsmustern können wir die Cache-Verwaltung und das Vorabrufen von Inhalten besser durchführen und die Cache-Trefferquote verbessern;
(2) Dynamisches Daten-Caching: Ein wichtiger Grund dafür, dass die aktuelle Web-Cache-Trefferquote nicht hoch ist, besteht darin, dass ein erheblicher Teil des Inhalts (private Daten, autorisierte Daten, dynamische Daten usw.) nicht zwischengespeichert werden kann. Die Frage, wie mehr Daten zwischengespeichert werden können und wie die Zugriffsverzögerung für Kunden beim Zugriff auf nicht zwischengespeicherte Seiten verringert werden kann, ist zu einem zentralen Thema bei der Verbesserung der Webleistung geworden.
(3) Web-Verkehrseigenschaften: Die Effizienz des Caching-Systems liegt in der zeitlichen Lokalität der Web-Zugriffsflüsse und guten Cache-Verwaltungsstrategien. Das Verständnis der von Web-Clients erzeugten Lasteigenschaften ist für eine bessere Gestaltung und Bereitstellung von Web-Diensten von großer Bedeutung.
(4) Proxy-Konfiguration: Um eine gute Webleistung zu erzielen, ist die Proxy-Konfiguration von entscheidender Bedeutung: Selbstorganisation, effizientes Routing, Lastausgleich, stabiles Verhalten usw. Zu diesem Thema sind weitere Untersuchungen erforderlich.
Kurz gesagt: Die Spitzenforschung zur Verbesserung der Webleistung besteht in der Entwicklung von Caching-Lösungen, die skalierbar, robust, anpassungsfähig, stabil und effizient sind und in aktuellen und zukünftigen Netzwerken besser konfiguriert werden können.
Wang Shike Wu Ji Jin Shiyao
(State Key Laboratory of Parallelism and Distribution, School of Computer Science, National University of Defense Technology, Changsha 410073)
-