170 likes | 287 Views
Cachingverfahren und Proxies Teil 1. Übersicht. Cachen von verschiedenen Webinhalten Statische Webseiten Transaktionen Dynamische Webseiten Streaming Media Grundlegende Cachingverfahren Ersetzungsstrategien Konsistenzerhaltung Proaktives Cachen Prefetching Architekturen von Caches
E N D
Cachingverfahren und ProxiesTeil 1 Jan Kästle – Universität Mannheim
Übersicht • Cachen von verschiedenen Webinhalten • Statische Webseiten • Transaktionen • Dynamische Webseiten • Streaming Media • Grundlegende Cachingverfahren • Ersetzungsstrategien • Konsistenzerhaltung • Proaktives Cachen • Prefetching • Architekturen von Caches • Hierarchisches Caching • Verteiltes Caching • Cache Location Jan Kästle – Universität Mannheim
Caching von verschiedenen Webinhalten • Statische Webseiten • HTML-Seiten oder Bilder • lassen sich einfach und effizient cachen • Transaktionen • müssen nach dem ACID Prinzip ausgeführt werden • Proxies müssen mit Transaktionsfähigkeiten ausgestattet werden Verteilte Transaktionen brauchen erheblichen Koordinationsaufwand In existierenden Web Caching Systemen werden nur Leseoperationen auf Ebene des Proxies ausgeführt Jan Kästle – Universität Mannheim
Caching von verschiedenen Webinhalten • Dynamische Webseiten • zum Beispiel mit der Endung *.jsp oder *.asp • werden vom Webserver bei jeder Anfrage neu generiert Aufteilen der Inhalte in dynamischen und statischen Teil Aktives Caching – Aufbereiten der Seite mit einem Applet Auslagern der Präsentationsschicht auf die Caches: Jan Kästle – Universität Mannheim
Caching von verschiedenen Webinhalten • Streaming Media • Große Audio oder Video Objekte On Demand Streaming: Prefix Caching Aufteilen der Media Dateien in Segmente Caches kooperieren, um Useranfrage zu beantworten Live Streaming: Ausnutzen der Baumstruktur des CDN Jan Kästle – Universität Mannheim
Übersicht • Cachen von verschiedenen Webinhalten • Statische Webseiten • Transaktionen • Dynamische Webseiten • Streaming Media • Grundlegende Cachingverfahren • Ersetzungsstrategien • Konsistenzerhaltung • Proaktives Cachen • Prefetching • Architekturen von Caches • Hierarchisches Caching • Verteiltes Caching • Cache Location Jan Kästle – Universität Mannheim
Grundlegende Cachingverfahren • Ersetzungsstrategien (1) Ein wichtigstes Performancemaß: Trefferquote = Anzahl der Treffer / Gesamtanzahl der Anfragen an den Cache • Ersetzungsstrategien aus dem Bereich der Hauptspeicherverwaltung • Least Recently Used (LRU) • Least Frequently Used (LFU) • Ersetzung anhand bestimmter Merkmale • Größe der Objekte • Zeit das Objekt wieder vom Webserver zu beziehen Jan Kästle – Universität Mannheim
Grundlegende Cachingverfahren • Ersetzungsstrategien (2) • Fortgeschrittenere Ersetzungsstrategien • beruhen auf Simulationen, um Effizienz zu steigern Abwandlung des LRU Algorithmus, der die Größe miteinbezieht: Size Adjusted LRU (SLRU) Idee: Große Objekte auf die länger nicht zugegriffen wurde beim Ersetzen vorziehen. • Admission Control • Soll Objekt überhaupt in den Cache aufgenommen werden ? • Beitrag des neuen Objekts zur Trefferquote im Vergleich zum Beitrag der zu ersetzenden Objekte Jan Kästle – Universität Mannheim
Grundlegende Cachingverfahren • Konsistenz (1) • client-basierte Verfahren • verwenden Time to Live (TTL) Informationen aus dem HTTP Header z.B. max-age, expiresFelder • Validieren mittels If-Modified-Since Feld • periodisches Validieren oder auf User Anfrage • keine zuverlässige TTL Information? • HTTP 1.1 bietet explizite Unterstützung fürs Caching z.B. must-revalidate oder no-cache Felder Jan Kästle – Universität Mannheim
Grundlegende Cachingverfahren • Konsistenz (2) • server-basierte Ansätze • Callback Promise Bei Abfrage eines Objekts vom Webserver erhält der Client ein Callback Promise. Wenn sich das Objekt ändert, informiert der Server den Client. • Leases Versprechen des Servers dem Proxy eine Invalidierungsnachricht zu schicken, wenn sich das Objekt in einer festgelegte Zeit ändert. Sowohl die hiergenannten client-basierten als auch die server-basierten Ansätze nutzen die Struktur eines Content Delivery Netzwerks nicht, da Daten auf Unicast Basis versendet werden. Jan Kästle – Universität Mannheim
Grundlegende Cachingverfahren • Konsistenz (3) • Push-Caching (pre-population) • Der Inhalt wird bei einer Änderung (oder wenn ein neues Objekt hinzukommt) automatisch an die Caches verteilt. Push Caching statt dem traditionellen Pull Caching • Caches brauchen Objekte nicht mehr auf Gültigkeit prüfen • Verteilen des Content über Multicast Baum (auf Anwendungsebene) • Nachteil: wenn Objekte öfter geändert werden, als auf sie zugegriffen wird. Kombination aus Push-Caching und Callback Promise Jan Kästle – Universität Mannheim
Grundlegende Cachingverfahren • Prefetching • Greift ein Anwender vor allem auf neue Seiten zu, profitiert er nicht vom Caching. Vorhersage zukünftiger Seitenzugriffe und cachen dieser Seiten • Rückschlüsse aus Struktur der abgerufenen Webseiten z.B. Links in den Dokumenten • Top10 Algorithmus verwendet Liste der beliebtesten Zugriffe auf einen Webserver in der Vergangenheit. Jan Kästle – Universität Mannheim
Übersicht • Cachen von verschiedenen Webinhalten • Statische Webseiten • Transaktionen • Dynamische Webseiten • Streaming Media • Grundlegende Cachingverfahren • Ersetzungsstrategien • Konsistenzerhaltung • Proaktives Cachen • Prefetching • Architekturen von Caches • Verteiltes Caching • Hierarchisches Caching • Cache Location Jan Kästle – Universität Mannheim
Architekturen von Caches • Architekturen von Caches (2) • Verteiltes Caching • Caches arbeiten auf derselben Ebene zusammen • Caches befinden sich alle an den Rändern der Netzwerke • Kommunikation mit dem Inter Cache Protocol (ICP) Durch Koordination kommt es zum Kommunikationsoverhead Hash-basiertes Cachen Zusammenfassung (digest) oder Content Directory ICP ICP Jan Kästle – Universität Mannheim
Architekturen von Caches • Architekturen von Caches (2) • Hierarchisches Cachen • Caches sind in Form einer Baumstrukur aufgebaut • Einfache Struktur, geringer Koordinationsaufwand Nachteile: - Jede Ebene von Caches vergrößert das Delay - Auf verschiedenen Ebenen werden identische Kopien der Objekte gespeichert - Caches die nahe der Wurzel liegen können leicht zu Engpässen werden Jan Kästle – Universität Mannheim
Architekturen von Caches • Architekturen von Caches (3) • Cache Location • an den Rändern der Netzwerke • idealerweise im Netz des Users oder seines ISPs Algorithmen zum Bestimmen der Standorte • Ziel ist es, entweder die Wartezeit der User zu minimieren oder unter einer gegebenen Wartezeit die Kosten der Infrastrukur zu minimieren • Beschränkungen sind Systemressourcen und Kapazitäten Formulieren als Mixed Integer Linear Problem (MILP) und lösen mit MILP Solver Greedy Algorithmen Jan Kästle – Universität Mannheim
Ende Noch Fragen? Jan Kästle – Universität Mannheim