1 / 17

Cachingverfahren und Proxies Teil 1

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

yehudi
Download Presentation

Cachingverfahren und Proxies Teil 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cachingverfahren und ProxiesTeil 1 Jan Kästle – Universität Mannheim

  2. Ü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

  3. 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

  4. 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

  5. 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

  6. Ü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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. Ü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

  14. 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

  15. 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

  16. 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

  17. Ende Noch Fragen? Jan Kästle – Universität Mannheim

More Related