Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Verteilte Algorithmen und Datenstrukturen Kapitel 4: Caching Christian Scheideler Institut für Informatik Universität Paderborn.

Ähnliche Präsentationen


Präsentation zum Thema: "Verteilte Algorithmen und Datenstrukturen Kapitel 4: Caching Christian Scheideler Institut für Informatik Universität Paderborn."—  Präsentation transkript:

1 Verteilte Algorithmen und Datenstrukturen Kapitel 4: Caching Christian Scheideler Institut für Informatik Universität Paderborn

2 Caching vs Hashing Strategien, um Engpässe zu vermeiden: Hashing: Vermeidung von Engpässen durch Streuung Caching: Vermeidung von Engpässen durch Lokalität Formales Ziel: halte Congestion für ein gegebenes Zugriffsmuster so niedrig wie möglich.

3 Hashing im Netzwerk Beispiel: k × k-Gitter G=(V,E) mit uniformen Kantenkapazitäten und Speicherkapazitäten für die n=k 2 Knoten. h:U V: zufällige Hashfunktion für den Datenraum U. f:V U: beliebiges Zugriffsproblem (Knoten v greift auf Datum f(v) zu) mit f(v 1 ) f(v 2 ) für alle v 1,v 2 V. f definiert Routingproblem P mit Quell-Ziel-Paaren (v,h(f(v))) Wegen Wahl von h ist Pr[(v,w) P] = 1/n für alle v und w Mit x-y-Routing ist dann die erwartete Congestion O( n ).

4 Caching im Netzwerk Beispiel: k × k-Gitter G=(V,E) mit uniformen Kantenkapazitäten und Speicherkapazitäten für die n=k 2 Knoten. f:V U: beliebiges Zugriffproblem mit f(v 1 ) f(v 2 ) für alle v 1,v 2 V. Platziere einfach Datum f(v) in v für alle v V. Problem: Zugriffsmuster mag nicht im vornherein bekannt sein!

5 Caching-Modell G=(V,E,c): beliebiges Netzwerk U: Datenraum Zugriffe: read (lese ein Datum) und write (aktualisiere/speichere ein Datum) Bei write ist Zugriff auf ein bestehendes Datum notwendig, falls vorhanden (z.B. Teilupdate). Wir beschränken uns auf Datenzugriffe ohne Konflikte (d.h. wir haben eine eindeutige Ordnung auf den read und write Zugriffen – wie das geht, betrachten wir später). Caching Strategie ist konsistent: read Anfrage gibt Ergebnis der letzten write Anfrage auf Datum zurück Caching Strategien können Daten in Knoten anlegen, löschen und von Knoten v nach w (über einen Pfad) migrieren. Jedes Datum kann eine oder mehrere Kopien im Netzwerk besitzen. Keine Kodierungsstrategien erlaubt.

6 Caching-Modell Anfangs hat jedes Datum genau eine Kopie im Netzwerk. Jede Botschaft und jede Bewegung einer Kopie über eine Kante e erhöht dessen Congestion (Kosten) um 1/c(e) Ziel: halte die Congestion so niedrig wie möglich. Instanzen: Sei beliebige Folge von read und write Anfragen. Wir interessieren uns für Caching-Algorithmen, die nicht im vornherein kennen (d.h. wir betrachten online Algorithmen). C e A ( ): Congestion in Kante e bei Verwendung von Cachingalgorithmus A C A ( ) = max e C e A ( ): Congestion von Algorithmus A C OPT ( ) = min A C A ( ): bestmögliche Congestion Algo A ist c-kompetitiv: es gibt Konstante d, so dass für alle : C A ( ) c C OPT ( ) + d

7 Caching in Bäumen T=(V,E): ungerichteter Baum mit c(e)=1 für alle Kanten e

8 Caching in Bäumen Caching-Strategie für T: v führt read(x) aus: v sendet Anfrage zum nächsten Knoten u in T, der eine Kopie von x hat. Knoten u sendet eine Kopie von x zurück nach v. Jeder Knoten, der von der Kopie besucht wird, speichert eine Kopie von x. v u x x x x x

9 Caching in Bäumen Caching-Strategie für T: v führt write(x) aus: v sendet Anfrage zum nächsten Knoten u in T, der eine Kopie von x hat. Knoten u initiiert daraufhin die Löschung aller Kopien von x, speichert die neue Kopie von x und sendet eine Kopie von x zurück nach v. Jeder Knoten, der von der Kopie besucht wird, speichert eine Kopie von x. v u x x x x x x

10 Caching in Bäumen Lemma 4.1: Für jedes Datum x und jeden Zeitpunkt t formen die Knoten mit Kopien von x eine ZHK. Beweis: durch Induktion über Zugriffe auf x in Folge Strategie zum Finden der nächsten Kopie von x: Knoten v besitzt x: einfach. Alle anderen Knoten v, dessen Teilbaum die ZHK von x enthält, merken sich einen Hinweis auf das Kind, über das die ZHK erreichbar ist. Die restlichen Knoten merken sich nichts für x. x

11 Caching in Bäumen Summe aller Hinweise für Datum x: Tiefe D: maximal D Hinweise, also durch- schnittliche Hinweislast gering. x

12 Caching in Bäumen Kürzester Weg zu Datum x: kein Hinweis im Knoten: gehe hoch Hinweis im Knoten: folge diesem x

13 Caching in Bäumen Theorem 4.2: Die Caching-Strategie ist 3-kompetitiv. Beweis: Es reicht zu zeigen: Caching-Strategie ist 3-kompetitiv für jedes Datum x. Betrachte festes Datum x. Sei e=(a,b) feste Kante im Baum. Entfernung von e teilt Baum in Teilbäume T a und T b auf. Wir betrachten drei Fälle: –[A]: Alle Kopien von x in T a. –[B]: Alle Kopien von x in T b. –[AB]: T a und T b enthalten Kopien von x. (Lemma 4.1: a und b halten Kopien von x.) b a TaTa TbTb

14 Caching in Bäumen Beweis (Fortsetzung): Betrachte beliebige Folge an read und write Anfragen und sei c t die Konfiguration ([A], [B] oder [AB]) nach Bearbeitung der t-ten Anfrage in. Dann hat c 0,c 1,c 2,... die Form...[?] + [AB] + [?] + [AB] + [?] + [AB] +... wobei [?] ein Platzhalter für [A] oder [B] ist und [X] + eine Folge von X-en der Länge 1 ist. O.b.d.A. Betrachte eine Folge der Form [A] + [AB] +. (Anfangs gibt es nur eine Kopie von x, d.h. wir starten entweder mit [A] oder [B]. Im Fall [A] + oder [B] + ist die Congestion von e gleich 0, d.h. Konfigurationsfolgen dieser Form am Ende können wir vernachlässigen.) We betrachten die online und optimale Congestion von e für diese Folge.

15 Caching in Bäumen Beweis (Fortsetzung): Für die online Kosten von [A] + [AB] + gilt: TeilphaseAnfragetypvorige Konf.online Cong. [A] + startet mit write von T a (*) [AB]1 gefolgt von Anfragen aus T a [A]0 [AB] + startet mit Anfrage aus T b (**) [A]2 gefolgt von read An- fragen aus T a oder T b [AB]0

16 Caching in Bäumen Beweis (Fortsetzung): Was ist optimale Congestion für [A] + [AB] + ? Angenommen, Congestion 0 wäre möglich. (*): dann darf OPT keine Kopien in T b haben, oder alle Kopien in T b wären veraltet. (**): kann dann aber nicht in T b bedient werden, also muss Anfrage oder Kopie über e wandern. Online Congestion is also höchstens 3 während die optimale Congestion mindestens 1 sind.

17 Caching in Bäumen Bemerkungen: Caching-Strategie auch 3-kompetitiv für Bäume mit beliebigen Kantenkapazitäten. Gilt auch für Bäume mit gerichteten (d.h. bidirektionalen Kanten). Was ist mit anderen Graphen?

18 Caching im Gitter Betrachte beliebiges n × n-Gitter M, für das n eine Zweierpotenz ist. (Verfahren kann aber auch für andere Werte eingesetzt werden.)

19 Caching im Gitter Rekursive Partitionierung in Teilgitter: Dekompositionsbaum T(M)

20 Caching im Gitter Rekursive Partitionierung in Teilgitter: c(e)=# Kanten raus aus Teilgitter von Kind in e

21 Caching im Gitter Datenspeicherung: Für jedes Datum x: Baum T x (M), der eine Kopie von T(M) ist. Wir betten T x (M) in M mithilfe einer (pseudo-) zufälligen Hashfunktion h:U × V(T(M)) V(M) ein, wobei h(x,v) ein Knoten innerhalb des Teilgitters von M sein muss, das v im Dekompositionsbaum T(M) repräsentiert. Wir wenden auf T x (M) das Baumcaching an und speichern alle Kopien von x in Knoten v in T x (M) in Knoten h(x,v) im Gitter M.

22 Caching im Gitter Anschaulich: T x (M) x x

23 Caching im Gitter Routing entlang Baumkante in T x (M) wird simuliert über x-y-Routing in M

24 Caching im Gitter Hinweisschilder vom Baum werden für Gitter übernommen

25 Caching im Gitter Kein Knoten im M mit großer Hinweislast, da jeder T x (M) anders in M eingebettet wird!

26 Caching im Gitter Theorem 4.3: Die Caching-Strategie für das n × n-Gitter ist O(log n)-kompetitiv. Beweis: Zunächst vergleichen wir die optimale Congestion C OPT (M) erreichbar im Gitter M mit der optimalen Congestion C OPT (T(M)) im Dekompositionsbaum T(M). Für jedes Routing von v nach w im Gitter verwenden wir dabei den eindeutigen Weg zwischen den zu v und w gehörenden Blättern in T(M). w v vw M T(M)

27 Caching im Gitter Lemma 4.4: C OPT (T(M)) C OPT (M). Beweis: e={v,w}: Kante in T(M) mit Kapazität c(e) (w ist Kind von v in T(M)). C(e): Congestion von e durch Simulation von OPT in M. Anzahl Botschaften über e: c(e) C(e) Jede Botschaft über e entspricht Botschaft in M, die entweder M(w) (das Teilgitter zu w) betreten oder verlassen muss. Da nur c(e) Kanten M(w) verlassen, muss es für OPT eine Kante e´ auf der Grenze zu M(w) geben mit Congestion mindestens (c(e) C(e))/c(e) = C(e).

28 Caching im Gitter C T (e): Congestion von Kante e in M durch x-y-Routing in der Simulation von T(M) in M Lemma 4.5: Für jede Kante e in M: E[C T (e)] = O(log n C OPT (T(M))). Beweis: e: feste Kante in M. C l (e): Congestion von e durch Simulation von Botschaften, die von Ebene l nach l-1 oder umgekehrt in T(M) geschickt werden. Wir zeigen: E[C l (e)] = O(C OPT (T(M))) für alle l Da es nur O(log n) Ebenen gibt, folgt das Lemma. Lemma 4.4 und 4.5 ergeben Theorem 4.3.

29 Caching im Gitter Beweis von E[C l (e)] = O(C OPT (T(M))) für alle l : v: Knoten in Ebene l-1 von T(M), für den M(v) Kante e enthält (kein solcher Knoten, dann C l (e)=0) v´: eines der beiden Kinder von v e T ={v,v´}: Kante in T(M) C(e T ): Congestion von e für unser Caching-Schema M(v´) ist (n/2 l/2 ) × (n/2 l/2 )–Gitter D.h. (C(e T ) n/2 l/2 ) Botschaften durch e T Datum x hat (pseudo-)zufällige Orte in M(v) und M(v´) für v und v´ Wkeit, dass x-y-Routing zur Simulation einer Botschaft entlang e T durch e geht, ist (2 l/2 /n). (Verringerung der Varianz: zufälliger kürzester Weg statt nur x-y-Routing.) Die erwartete Congestion von e ist also (C(e T ) n/2 l/2 ) (2 l/2 /n) = (C(e T )) Also ist E[C l (e)] = O(C(e T )) = O(C OPT (T(M)) nach Theorem 4.2.

30 Caching im Gitter Theorem 4.3 ist bestmöglich: Theorem 4.6: Jede online Caching-Strategie im n × n-Gitter ist (log n)–kompetitiv. Hierarchische Dekomposition auf beliebige Netzwerke anwendbar (aber hier nicht behandelt).

31 Ausblick Nächste Woche: Verteilter Konsens und Transaktionen


Herunterladen ppt "Verteilte Algorithmen und Datenstrukturen Kapitel 4: Caching Christian Scheideler Institut für Informatik Universität Paderborn."

Ähnliche Präsentationen


Google-Anzeigen