Current Page: Greybox » Authoring » Course ID: medieninformatik » Modules » Module ID: mmserver » Learning Units » Unit ID: 060caching2
Last Modified:Tuesday, 2015-05-05 - 08:09:06
 
Tools: ValidatePreview XML Preview HTML Preview PDF
Alternative: Printable HTML

 

Learning Unit ID: 060caching2
Title: Caching: Ziele und Charakterisierung
Abstract: Mittels Caching können viele Vorteile erzielt werden: Steigerung der Serverkapazität, Reduktion der Zugriffszeit, Entlastung des Netzwerkes und der Server, optimale Speicherreorganisation und Unterstützung bei Datenmigration in Speicherorganisationen. Um diese Vorteile auch in eine Multimedia Umgebung tragen zu können, müssen Caching Strategien den spezifischen Gesetzmäßigkeiten angepasst werden.
 
Status: content final - to do: Glossar und Akronyme Version: 2005-10-10
History:

2005-10-10 (Thomas Migl): Abstract hinzugefügt
2005 -09-12 (Thomas Migl): Content fertiggestellt LOD 1+2+3, Quelle eingetragen
2005-07-18 (Thomas Migl): LU angelegt


Author
Author 1: Thomas Migl E-Mail: migl@ims.tuwien.ac.at
Author 2: (empty) E-Mail: (empty)
Author 3: (empty) E-Mail: (empty)
Author 4: (empty) E-Mail: (empty)
Author 5: (empty) E-Mail: (empty)
Organization: Technische Universität Wien; Institut für Softwaretechnik und Interaktive Systeme; Arbeitsgruppe für Interaktive Multimediale Systeme; http://www.ims.tuwien.ac.at/

Content

Einleitung [sita2000, 220]

1

auto

  • Caching in verschiedensten Teilen eines Systems eingesetzt
  • Ziele aber immer die gleichen
    • Performanceoptimierung durch optimale Nutzung von
      • Bandbreite/Datendurchsatz
      • Speicherressourcen

2

auto

Caching kann in den verschiedensten Teilen eines Systems eingesetzt werden, abhängig davon, welche speziellen Aufgaben es erfüllen soll. Eines ist allerdings allen Caching Strategien gemein, nämlich das Ziel, vorhandene Ressourcen besser nutzen und die Effektivität des Datendurchsatzes und der Netzwerkbandbreite steigern zu können. In dieser Lerneinheit besprechen wir anfangs, wie und wo welche Vorteile mittels Caching erzielt werden können. Anschließend werden Charakteristika beschrieben, die bei der Konzipierung von Multimedia Caching Strategien eine große Rolle spielen und Eigenschaften aufgelistet, die von allen Multimedia Caching Strategien erwartet werden.

Erzielbare Vorteile mittels Caching

1

auto

  • Steigerung der Serverkapazität
    • Häufig angeforderte Daten temporär auf Cache Memories ausgelagert
    • Server kann mehr Clients gleichzeitig bedienen
  • Reduktion der Zugriffswartezeit
    • Reduktion basierend auf Speicherhierarchie
      • Speichergeräte haben verschiedene Zugriffszeiten
        • Daten auf DVDs, CDs - sehr lange Zugriffswartezeit
        • Daten auf Disks - Verzögerung kann nicht vernachlässigt werden
        • Daten in Memory Cache praktisch ohne Verzögerung lieferbar
    • Reduktion mittels Prefetching
      • Prefetching
        • Daten mit hoher Aufrufwahrscheinlichkeit werden schon Vorab im Cache Memory gespeichert
  • Entlastung des Netzwerkes
    • Large-scale Video Server
      • Lokaler Server
      • Remote Storage Server
    • Lokaler Server kennt Request Profils seiner Clients
      • Relevante Daten werden schon Vorab vom Remote Storage Server im lokalen Cache gespeichert
      • Tatsächliche Requests verursachen keine Belastung des Netzes
  • Entlastung einzelner Server
    • Netzwerk ist Verbund unterschiedlicher Server
      • Nicht jeder Server ist gleich ausgelastet
        • Caching
          • Überlastete Server lagern Aufgaben aus
          • Weniger beschäftigte Server übernehmen diese Aufgaben
  • Unterstützung von Datenmigration in Speicherorganisationen
    • Speicherreorganisation mittels Caching
      • Aufteilung der Daten auf verschiedene Systemkomponenten
        • Häufig angeforderte Daten werden gecacht
        • Cache Inhalte als permanente Kopien auf verschiedene Server gestellt
          • Anzahl der Kopien muss ständig an aktuellen Bedarf angepasst werden
      • Dynamische Segment Kopien
        • Striping - Dateiensegmente auf verschiedene Speichergeräte aufgeteilt
        • Wird Datei ausgelesen, Segmente gleichzeitig gecacht
          • Ausgleich der Belastungen der einzelnen Stripinggruppen

2

Steigerung der Serverkapazität

Als Kapazität eines Servers wird hier das Performance-Maß Gleichzeitigkeit (siehe Lerneinheit Einführung und Grundlagen) der servicierten Clients verstanden. Die Gleichzeitigkeit, d.h. wie viele Clients mit unterschiedlichen Datenströmen gleichzeitig versorgt werden können, ist durch die Leistungsfähigkeit der CPU, der Netzwerkinterfaces oder der Speicherhardware nach oben hin beschränkt. Werden nun sehr häufig angeforderte Dateien (zur Gänze oder nur Teile davon) temporär auf Cache Memories ausgelagert, bedeutet dies für den Server eine entsprechende Entlastung: Es können mehr Clients gleichzeitig bedient werden, was einer Steigerung der Serverkapazität entspricht.

Reduktion der Zugriffswartezeit

Reduktion basierend auf Speicherhierarchie

Die Zugriffswartezeit hängt wesentlich davon ab, wo sich die angeforderte Datei innerhalb der Speicherhierarchie befindet: Bei einem Request nach Daten, die auf einem Laufwerk stehen, muss der Client mit durch die Suchprozedur verursachte Verzögerungen rechnen. Allgemein gilt, dass die Zugriffswartezeit steigt, je tiefer das Speichermedium in der Speicherhierarchie steht. Beispiele für lange Zugriffswartezeiten sind Daten gespeichert auf CD-ROMs, Video-DVDs, CD-Wechsler, Magnetbänder. Daten hingegen, die sich in einem Cache Memory befinden, können dem Client ohne Verzögerung geliefert werden.

Reduktion mittels Prefetching

Geringe Verzögerungszeiten sind auch vor allem für Anwendungen wichtig, die eine geringe Operationswartezeit (Operation Latency, siehe Lerneinheit Einführung und Grundlagen) benötigen.

Beispiele geringe Operationswartezeit bei VOD und, Virtual Reality

Bei Video-On-Demand Anwendungen sollen VCR Steuerungen (Schneller Vor- und Rücklauf etc) in Echtzeit möglich sein, bei einer effektiven Virtual Reality Anwendung muss ein schneller Zugriff auf die verschiedenen Teile eines Medienobjektes gewährleistet sein.

Prefetching Technik

Bei vielen Anwendungen kann man schon im Vorhinein sagen, welche Daten in nächster Zukunft mit großer Wahrscheinlichkeit vom Client aufgerufen werden. Diese Daten liest der Server nun schon vorab in ein Cache Memory aus, werden sie dann tatsächlich vom Client aufgerufen, bekommt dieser sie ohne Wartezeit zugestellt. Die Technik des Vorauslesens von Daten bezeichnet man als Prefetching.

Weiteres Beispiel von Prefetching

Prefetching wird auch bei multimedialen Streaming Anwendungen eingesetzt, um eine kontinuierliche Wiedergabe gewährleisten zu können.

Entlastung des Netzwerkes

Ein large-scale Video Server besteht aus lokalen Server und einem Remote Storage Server. Der Lokale Server beliefert seine Clients mit Daten, die ihm vom Remote Storage Server zugestellt werden. Um das Netzwerk zu entlasten, kann der lokale Server schon im Vorhinein jene Daten, die dem Request Muster seiner Kundschaft in etwa entsprechen, vom Remote Storage anfordern und in ein lokales Cache Memory (oder lokalem Laufwerk) zwischenspeichern. Werden nun diese Daten von den Clients tatsächlich angefordert, werden sie direkt vom lokalen Cachespeicher (oder lokalem Laufwerk) ausgelesen, das Netzwerk selbst wird durch diese Requests nicht weiter belastet. Durch Caching kann man somit die an das Netz geforderte Bandbreite reduzieren beziehungsweise bei festgelegter Netzwerkbandbreite eine bessere Performance erzielen. Dieses Feature ist besonders dann wichtig, wenn man bedenkt, dass hohe Netz-Bandbreiten immer mit sehr hohen Kosten einhergehen.

Entlastung einzelner Server

Ein Netzwerk ist ein Verbund zahlreicher Server und Speichergeräten. Diese unterscheiden sich voneinander durch ihre individuellen Performancekennzahlen und durch die Daten, die auf ihnen abgelegt sind. Handelt es sich um Daten, die sehr oft abgefragt werden und/oder um einen Server (bzw. Speichergerät) mit mäßiger Performance, sind die Belastungsgrenzen für entsprechenden Server schnell erreicht, während andere Server im Netz zur selben Zeit vielleicht nur wenig zu tun haben. Durch Caching kann nun erreicht werden, dass Aufgaben, die an einem Server gestellt werden, auf andere Server im Netz effektiv aufgeteilt werden. Bei large-scale Video Servers können sowohl die lokalen Servers die Remote Storage Servers wie auch umgekehrt entlasten.

Unterstützung von Datenmigration in Speicherorganisationen

Zu einer effektiven Organisation von Daten innerhalb eines Netzwerkes sind die Eigenschaften Ortsabhängigkeit (Spatial Locality) und Zeitabhängigkeit (Temporal Locality) eines „Request Arrival Prozess“ (Lerneinheit Einführung und Grundlagen) zu berücksichtigen. Für eine gute Gesamtperformance des Netzwerkes müssen Daten auf Speichergeräten abgelegt werden, die den jeweiligen Ansprüchen gerecht werden: Daten, die sehr oft angefordert werden, stellen höher Anforderungen an Bandbreite und an die Speicherkapazität des Speichergerätes als weniger beliebte Daten. Es hat sich gezeigt, dass die richtige Dimensionierung der individuellen Speicherplätze eine wesentliche Rolle für die Gesamtperformance eines Netzwerkes spielt. Um eine gleich bleibende Netzperformance gewährleisten zu können, muss daher die Speicherorganisation regelmäßig neu adjustiert werden. Dazu bedient man sich des Cachings.

Speicherreorganisation mittels Caching

Aufteilung der Daten auf verschiedene Systemkomponenten

Von Clients sehr begehrte Daten werden zuerst gecacht, die Cache Inhalte werden dann in Form von permanenten Kopien auf unterschiedliche Server (oder Speichergeräte) gestellt. Zur gleichen Zeit werden Kopien von Dateien, die nicht mehr so beliebt sind, von den Servern gelöscht. So ist gewährleistet, dass von zurzeit prominenten Dateien immer genug Kopien im Netz vorhanden sind, die Anzahl der Kopien von Dateien, die an Beliebtheit verlieren, entsprechend reduziert wird und die Cachespeicher regelmäßig entleert und für aktuelle Anforderungen wieder verwendet werden können.

Dynamische Segment Kopien [adan1995]

Man betrachte eine Datei, deren mittels Striping (Lerneinheit RAID Speichersysteme) erzeugten Segmente über verschiedene Speichermedien verstreut sind. Wird die Datei nun ausgelesen, werden gleichzeitig die Segmente gecacht. So kann man einen Ausgleich der Belastungen der einzelnen Stripinggruppen erreichen.

3

Performancemaße eines Multimediaservers

Die hier zitierten Server Performancekennzahlen werden in der Lerneinheit Einführung und Grundlagen erklärt.

Charakterisierung von Multimedia Caching - Strategien

1

Multimedia geeignete Strategien

Wichtige Zusammenhänge für Caching Strategien in Multimedia Umgebungen

  • Stream-dependent Caching versus Block-level Caching
    • Multimedia Dokument hat sequentiellen Charakter
      • Stream-dependent Caching muss Zusammenhang gecachter Blöcke zueinander berücksichtigen
  • Memory versus Storage Caching
    • Memory Cache
      • Daten praktisch verzögerungsfrei lieferbar
      • Caching Strategie hat nur eine Aufgabe
        • Optimale Nutzung des vorhandenen Cache Platzes
    • Storage Cache
      • Caching Strategie muss zusätzliches berücksichtigen
        • Daten sind nur mit Verzögerung lieferbar
        • Beschränkte Bandbreite
  • Caching versus Prefetching
    • Datenblöcke, die für eine kontinuierliche Präsentation notwendig sind, werden schon im Vorhinein in einen Puffer eingelesen
      • Ausgleich von Varianz einer Disk
      • Beseitigung von Unregelmäßigkeiten verursacht von Datenkompression
    • Unterschied Caching/Puffern
      • Puffern
        • Kurze Speicherung von Daten, um zeitliche Verzögerungen und Unregelmäßigkeiten auszugleichen
      • Caching
        • Kurze Speicherung von Daten, um Overhead zu reduzieren

Allgemeine Erwartungen an Multimedia Caching Strategien

  • Adaptive Belastung
    • Bewältigung dynamischer Belastungsschwankungen
    • Anpassungsfähigkeit an die stark variierenden Dateiengrößen
    • Ausgleich der Verschiedenheit der Server
  • Unterstützung von VCR Steuerbefehle
    • VCR Befehle in einer Multimedia Umgebung unerlässlich
    • Wiedergabe soll nach Abschluss eines VCR Befehles sofort fortgesetzt werden
      • Nicht vorhersehbaren Schwankungen der benötigten Netzwerkbandbreite
      • Für Multimedia Netzwerke ist generelle Caching Strategie notwendig
  • Integration mit anderen Ressource optimierenden Strategien

2

Multimedia geeignete Strategien

Im Folgenden werden Zusammenhänge beschrieben, die bei der Konzipierung von Caching Strategien in Multimedia Umgebungen zu beachten sind.

Stream-dependent Caching versus Block-level Caching

Multimedia Applikationen unterscheiden sich von traditionellen Anwendungen nicht nur durch den großen Bedarf an Speicherplatz und durch die zur Übertragung notwendig hohe Bandbreite, sondern auch durch die Notwendigkeit, dass ein Multimedia Dokument sequentiell und kontinuierlich an die Clients geliefert werden muss. Traditionelle Block-Level Cache Strategien cachen Datenblöcke, ohne dabei den Zusammenhang der gecachten Blöcke zueinander zu berücksichtigen. Diese Methode kann also keine kontinuierliche Präsentation garantieren. Eine Stream-dependent Caching Strategie hingegen verleiht jedem Datenblock eine Semantik. So kann zum Beispiel jeder Datenblock ein Frame einer Videosequenz repräsentieren. Die diversen Cache Strategien für Multimedia Anwendungen berücksichtigen nun, in welchem zeitlichen Zusammenhang die Datenblöcke zueinander stehen und können so den Cachespeicherinhalt fortwährend aktualisieren, sodass immer eine Kontinuität der Präsentation gewährleistet ist.

Memory versus Storage Caching

Caching Strategien müssen sich an die dem lokalen Server zur Verfügung stehenden Ressourcen anpassen. Handelt es sich um Memory Cache, zielt die Cache Strategie rein auf die optimale Nutzung des vorhandenen Cache Platzes. Bei gegebenem Cache Platz sollen so viele unterschiedliche Datenströme wie nur möglich bedient werden können. Handelt es sich bei den Ressourcen hingegen um Storage Cache (es wird auf Laufwerke gecacht), muss neben Speicherplatz auch die beschränkte Bandbreite des Speichermediums berücksichtigt werden. Für ein Memory Cache gilt, dass Daten praktisch verzögerungsfrei hinein geschrieben bzw. den Clients geliefert werden können. Für Cache Daten auf einem Laufwerk müssen hingegen die entsprechenden Verzögerungszeiten mit einkalkuliert werden.

Caching versus Prefetching

Dem Caching sehr verwandt ist das Puffern von Datenblöcken eines Multimedia Dokumentes (Prefetching): Es werden dabei Datenblöcke, die für eine kontinuierliche Präsentation notwendig sind, schon im Vorhinein in einen Puffer eingelesen. So kann zum Beispiel die Varianz der Ansprechzeit eines Laufwerkes oder Unregelmäßigkeiten verursacht durch Datenkommpression ausgeglichen und eine aussetzerfreie Wiedergabe gewährleistet werden. Durch Prefetching ist es auch möglich, dass ein Multimedia Dokument, das auf mehrere Speicher verteilt ist, kontinuierlich wiedergegeben werden kann.

Unterschied zwischen Puffer- und Cachespeicherung

Unter Puffern versteht man ausschließlich das kurzzeitige Speichern von Daten, um zeitliche Verzögerungen und Unregelmäßigkeiten ausgleichen zu können. Caching hingegen hat stets die Reduktion von Overhead zum Ziel.

Beispiel Caching versus Puffern

Wird ein Datenstrom kurzzeitig zwischengespeichert, um einem Client eine kontinuierliche Wiedergabe zu garantieren, spricht man von Puffern. Wird hingegen der Datenstrom zwischengespeichert, um nachfolgende Requests damit bedienen zu können, handelt es sich um Caching.

Allgemeine Erwartungen an Multimedia Caching Strategien

Adaptive Belastung

Alle Caching Strategien sollen die dynamischen Belastungsschwankungen in einer Multimedia Umgebung und eine Heterogenität verursacht durch große und kleine Multimedia Dateien bewältigen können. Weiters müssen sie die Verschiedenheit der Server ausgleichen können. Zur Lösung dieser Aufgabestellung werden Strategien für Routing der Requests () und Serverbelastungsverteilung entwickelt.

Unterstützung von VCR Steuerbefehle

Für eine sinnvolle Nutzung von Multimedia Dokumenten in einer Multimedia Umgebung ist Interaktivität mittels VCR Befehlen unerlässlich: Um zielgerichtet durch das Dokument navigieren zu können, müssen dem Benutzer Steuerbefehle wie Schneller Vor- und Rücklauf, freie Wahl des Einstiegpunktes, Pause etc. möglich sein. Jeder VCR Befehl unterbricht das sequentielle Lesen einer Multimedia Datei. Nach Beendigung eines VCR Befehls soll die Wiedergabe ohne Verzögerung fortgesetzt werden können. Dieser Anforderung kann man nur durch den Einsatz von Caching nachkommen. Für Netzwerke, die für Multimedia Inhalte geeignet sein sollen, ist daher eine generelle Caching Strategie notwendig, die VCR Befehle und die dadurch verursachten, aber nicht vorhersehbaren Schwankungen der benötigten Netzwerkbandbreite optimal handhabt.

Integration mit anderen Ressource optimierenden Strategien

Es gibt viele Caching Strategien, die eigens für Multimedia Anwendungen konzipiert wurden. Ihre Arbeitsweisen basieren dabei auf der Kenntnis des speziellen Charakters einer Multimedia Dokumentenabfrage: Multimedia Dokumente sind meist sehr groß und werden im Falle eines Requests sequentiell (streaming) dem Clients übertragen. Handelt es sich um ein sehr populäres Dokument, greifen viele Clients gleichzeitig darauf zu, wobei die verschiedenen Clients sich in der Regel auf unterschiedlichen Sequenzen des Multimedia Dokumentes befinden. Eine Möglichkeit ist nun, Clients, die auf nahe liegende Sequenzen zugreifen, zu einer Gruppe zusammenzufassen (batching) und per Multicast (Alle Clients erhalten den gleichen Datenstrom) zu bedienen. In diesem Fall muss die Caching Strategie in eine Batching Strategie integriert werden. Eine weitere Möglichkeit ist, dass unmittelbar nach einem Request der Client mit einem eigenen Datenstrom beliefert wird, dieser aber dann mit einer Wiedergabegeschwindigkeit gespielt wird, sodass der Client möglichst schnell an eine Multicastgruppe übergeben werden kann ( Näheres dazu in Lerneinheit Memory Cache: SAM und L/MRP). Der individuelle Datenstrom geht in einen Multicast Datenstrom über (Merge). Hier muss also die Caching Strategie in eine Ressource optimierende Merge Strategie integriert werden.


Notes

Akronyme

COPU - Continuous Object Presentation Unit

CPU - Central Processing Unit

VCR – Videocassett e Recorder

VOD – Video on Demand

VR – Virtual Reality

Glossar

Gleichzeitigkeit (concurrency) - Das Maß der „Gleichzeitigkeit“ gibt die Anzahl von unabhängigen Datenströmen an, die ein Server gleichzeitig generieren kann.

Multicast - Sammelsendung

Operationswartezeit (Operation Latency) - Zeit, die benötigt wird, um interaktive Operationen auszuführen.

Prefetching – Das Lesen von Daten vor und parallel zu ihrer Verwendung.

Zugriffswartezeit (Access Latency) – ist jene Zeit auf Clientseite, die zwischen Absenden eines Requests und dem Eintreffen des gewünschten multimedialen Dokuments vergeht.