1 / 31

Verteilte Algorithmen und Datenstrukturen Kapitel 4 : Caching

Verteilte Algorithmen und Datenstrukturen Kapitel 4 : Caching. Christian Scheideler Institut f ür Informatik Universität Paderborn. Caching vs Hashing. Strategien, um Engpässe zu vermeiden: Hashing: Vermeidung von Engpässen durch Streuung

mitch
Download Presentation

Verteilte Algorithmen und Datenstrukturen Kapitel 4 : Caching

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. VerteilteAlgorithmen und DatenstrukturenKapitel4: Caching Christian Scheideler Institut fürInformatik 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=k2 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(v1)≠f(v2) für alle v1,v2∈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=k2 Knoten. • f:V→U: beliebiges Zugriffproblem mit f(v1)≠f(v2) für alle v1,v2∈V. • Platziere einfach Datum f(v) in vfü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 s beliebige Folge von read und write Anfragen. • Wir interessieren uns für Caching-Algorithmen, die s nicht im vornherein kennen (d.h. wir betrachten online Algorithmen). • CeA(s): Congestion in Kante e bei Verwendung von Cachingalgorithmus A • CA(s) = maxe CeA(s): Congestion von Algorithmus A • COPT(s) = minA CA(s): bestmögliche Congestion • Algo A ist c-kompetitiv: es gibt Konstante d, so dass für alle s: CA(s) ≤ cCOPT(s) + 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. x x x u x x v

  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. x x x u x x x v

  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 s 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 Taund Tb auf. • Wir betrachten drei Fälle: • [A]: Alle Kopien von x in Ta. • [B]: Alle Kopien von x in Tb. • [AB]: Ta und Tb enthalten Kopien von x. (Lemma 4.1: a und bhalten Kopien von x.) b a Tb Ta

  14. Caching in Bäumen Beweis (Fortsetzung): • Betrachte beliebige Folge s an read und write Anfragen und sei ct die Konfiguration ([A], [B] oder [AB])nach Bearbeitung der t-ten Anfrage in s. • Dann hat c0,c1,c2,... 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:

  16. Caching in Bäumen Beweis (Fortsetzung): • Was ist optimale Congestion für [A]+[AB]+? • Angenommen, Congestion 0wäre möglich. • (*): dann darf OPT keine Kopien in Tb haben, oder alle Kopien in Tb wären veraltet. • (**): kann dann aber nicht in Tb 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: 8 8 8 8 8 8 6 10 6 10 6 10 6 10 Dekompositionsbaum T(M)

  20. Caching im Gitter Rekursive Partitionierung in Teilgitter: 8 8 8 8 8 8 6 10 6 10 6 10 6 10 c(e)=# Kanten raus ausTeilgitter von Kind in e

  21. Caching im Gitter Datenspeicherung: • Für jedes Datum x: Baum Tx(M), der eine Kopie von T(M) ist. • Wir betten Tx(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 Tx(M) das Baumcaching an und speichern alle Kopien von x in Knoten v in Tx(M) in Knoten h(x,v) im Gitter M.

  22. Caching im Gitter Anschaulich: Tx(M) 8 8 x 8 8 8 8 x 6 10 6 10 6 10 6 10

  23. Caching im Gitter • Routing entlang Baumkante in Tx(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 Tx(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 COPT(M) erreichbar im Gitter M mit der optimalen Congestion COPT(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 M T(M) v v w

  27. Caching im Gitter Lemma 4.4: COPT(T(M))≤COPT(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 CT(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[CT(e)] = O(log n  COPT(T(M))). Beweis: • e: feste Kante in M. • Cl(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[Cl(e)] = O(COPT(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[Cl(e)] = O(COPT(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 Cl(e)=0) • v´: eines der beiden Kinder von v • eT={v,v´}: Kante in T(M) • C(eT): Congestion von e für unser Caching-Schema • M(v´) ist Q(n/2l/2)×Q(n/2l/2)–Gitter • D.h. Q(C(eT)  n/2l/2) Botschaften durch eT • 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 eT durch e geht, ist Q(2l/2/n). (Verringerung der Varianz: zufälliger kürzester Weg statt nur x-y-Routing.) • Die erwartete Congestion von e ist also Q(C(eT)  n/2l/2) Q(2l/2/n) = Q(C(eT)) • Also ist E[Cl(e)] = O(C(eT)) = O(COPT(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 W(log n)–kompetitiv. Hierarchische Dekomposition auf beliebige Netzwerke anwendbar (aber hier nicht behandelt).

  31. Ausblick Nächste Woche: Verteilter Konsens und Transaktionen

More Related