940 likes | 1.05k Views
Randomisierte Algorithmen für Verteilungsprobleme. Christian Scheideler Institut f ür Informatik Technische Universität München. Verteilungsprobleme. Problem: Verteilung von Daten auf Speicher Anwendungen: Organisation großer Festplattensysteme Peer-to-Peer Systeme. Festplattensysteme.
E N D
Randomisierte Algorithmen für Verteilungsprobleme Christian Scheideler Institut für Informatik Technische Universität München
Verteilungsprobleme Problem: Verteilung von Daten auf Speicher Anwendungen: • Organisation großer Festplattensysteme • Peer-to-Peer Systeme
Festplattensysteme Server Festplatten
Verteilungsprobleme Anforderungen: • Skalierbarkeit: Faire Verteilung der Daten und ihrer Anfragen auf Speichereinheiten • Effizienz: Effiziente Operationen zum Einfügen, Löschen und Suchen von Daten
1 2 3 4 Verteilungsprobleme Grundlegender Ansatz: Hashing Vorteile:O(1) Zeit für Einfügen, Suchen und Löschen von Daten möglich Hashfunktion h
1 2 3 4 Verteilungsprobleme Grundlegender Ansatz: Hashing Vorteile: skaliert sehr gut, wenn Hash-funktion zufällig gewählt wird Hashfunktion h
1 2 3 4 Verteilungsprobleme Grundlegender Ansatz: Hashing Nachteil: Standardhashing nicht adaptiv, nicht robust gegenüber gegn. Verhalten Hashfunktion h
Übersicht • Bälle-in-Urnen – Spiele • Speicherverwaltung in Festplattensystemen • Robuste Informations- systeme
Bälle in Urnen m Bälle Problem: Faire Verteilung von m Bällen auf n Urnen n Urnen
Bälle in Urnen Varianten: • Bälle bj: uniforme oder nichtuniforme Gewichte wj (Gesamtgewicht 1) • Urnen vi: uniforme oder nichtuniforme Kapazitäten ci (Gesamtkapazität 1) Fairness: für jede Urne vi, i2{1,…,n} ist j: bj in vi wj innerhalb von (1§)ci für eine kleine Konstante >0
Bälle in Urnen Allgemein: Packungsproblem(werden wir hier nicht betrachten) Hier: • Beschränkung auf uniforme Ballgewichte • Statischer Fall: Menge der Bälle und Urnen fest vorgegeben
Bälle in Urnen Problem: verteile m Bälle gleichen Gewichts gleichmäßig über n Urnen gleicher Kapazität verwende eine zufällige Hashfunktion
Bälle in Urnen Hashfunktion zufällig: für jedes Datum x ist h(x)unabhängig von den anderen Daten uniform zufällig über die Menge der Urnen verteilt (d.h. wie echt zufällige Abbildung) Tatsache: Für eine zufällige Hashfunktion enhält jede Urne im Erwartungswert m/n Bälle. Ziel: hohe Konzentration um m/n mit hoher Wahrscheinlichkeit „Mit hoher Wahrscheinlichkeit“ oder „m.h.W.“: >1-1/n für eine beliebige Konstante >1
Bälle in Urnen Theorem: Mit hoher Wahrscheinlichkeit enthält jede Urne m/n § O( \/(m/n)log n + (log n)/(log log n)) viele Bälle. Beweis: über Chernoff-Schranken Chernoff-Schranke: Seien X1,…,Xn unabhängige binäre Zufallsvariablen. Sei X=i Xi und =E[X]. Dann gilt für alle >0 Pr[X >(1+)] < (e / (1+)1+) < e-2 / (2(1+/3)) Pr[X<(1-)] < (e- / (1-)1-) < e-2/2
Bälle in Urnen Chernoff-Hoeffding Schranke:Seien X1,…,Xn unabhängige binäre Zufallsvariablen. Sei X=i Xi und p=E[X]/n. Dann gilt für alle 0<<1-pPr[X-E[X] > n] < n p+ 1-p- p 1-p p+ 1-p-
Bälle in Urnen Theorem: Mit hoher Wahrscheinlichkeit enthält jede Urne m/n § O( \/(m/n)log n + (log n)/(log log n)) viele Bälle. Problem: Für m~n kann die Abweichung von m/n sehr hoch sein. Lösung: erlaube mehr als einen zufälligen Ort pro Ball
Bälle in Urnen Theorem: Für zwei zufällige Hashfunktionen existiert mit hoher Wahrscheinlichkeit eine Zuweisung von Bällen auf Urnen mit maximal dm/ne+1 Bällen pro Urne. Beweis: • U: Teilmenge der Urnen • (U): Menge der Bälle, die alle Alternativen in U haben Lemma: Die minimax Last ist maxU=; |(U)|/|U|
Bälle in Urnen Lemma: Die minimax Last ist L=maxU=; |(U)|/|U| Beweis: beliebige Ballplatzierung L ….. U1 U2
Bälle in Urnen S3 Sk S2 U1 S1 . . . U2 Alternative Hashpos.
Bälle in Urnen Lemma:maxU=; |(U)|/|U|<=dm/ne + 1 mit hoher Wahrscheinlichkeit. Lemma: Für m>cn log n ist maxU=;|(U)|/|U| <=dm/nemit hoher Wahrscheinlichkeit. Beweis: Übung Idee: • Zeige, dass für jede Urnenmenge U gilt Pr[ |(U)|/|U|>dm/ne ] < 1/n+|U| • Fallunterscheidung zwischen |U|<=(2/3)n (Chernoff) und |U|>(2/3)n (Chernoff-Hoeffding).
Bälle in Urnen Theorem: Für zwei zufällige Hashfunktionen existiert mit hoher Wahrscheinlichkeit eine Zuweisung von Bällen auf Urnen mit maximal dm/ne+1 Bällen pro Urne. Problem: wie schwierig ist es, solch eine Verteilung (annäherungsweise) zu erhalten?
Bälle in Urnen Algorithmus 1: Minimumregel [KLM92] • Platziere die Bälle hintereinander in die Urnen. • Für jeden Ball, wähle die Urne mit minimaler Last aus. Theorem: Die Minimumregel resultiert in einer Last von m/n + O(log log n) mit hoher Wahrscheinlichkeit.
Bälle in Urnen Beweisidee für Minimumregel: Last 4d d=log log n d innere Knoten … Lasten 4d-1..3d 1 2 d … … 2 innere Knoten,d-2 Blätter 1 2 d 1 2 d … … 1 2 d 1 2 d Tiefe d … …
Bälle in Urnen Zu zeigen: m.h.W. kommt so eine Struktur nicht in dem Graph G=(V,E) vor, in dem V die Urnen und E die Bälle mit ihren Alternativen darstellt. Problem: Bälle können mehrmals vorkommen! Übung: zeige zumindest, dass Wahrscheinlichkeit für Baumstruktur sehr gering ist, falls alle Bälle in ihr verschieden sind.
Bälle in Urnen Algorithmus 2: L-Kollisionsregel [MD93, Sch93] • Alle Bälle sind anfangs aktiv. • Wiederhole, bis alle Bälle inaktiv • Bestimme bezüglich der aktiven Bälle die Last für jede Urne für beide Hashfunktionen. • Für alle Urnen mit einer Last von <=L werden alle aktiven Bälle mit Alternativen darin inaktiv. Theorem: Die Kollisionsregel terminiert w.h.W. für L =O(m/n) in O(log log n) Runden.
Bälle in Urnen Beweisidee für Kollisionsregel: Last >L d Runden,d=log log n … L innere Knotenmit Grad L 1 2 L … … L innere Knotenmit Grad L 1 2 L 1 2 L
Bälle in Urnen Vorteile beider Strategien: L-Kuckucksregel: • Füge Bälle hintereinander in Urnen ein. • Platziere Ball x in Urne mit minimaler Last, sei v diese Urne • Wiederhole, bis v eine Last <=L hat- wähle einen zufälligen Ball x in v- platziere x in Alternativurne, sei diese Urne v Behauptung: Kuckucksregel terminiert in Zeit O(m) m.h.W. mit L=min{O(m/n), m/n + O(log log n)}
Übersicht • Bälle-in-Urnen – Spiele • Speicherverwaltung in Festplattensystemen • Robuste Informations- Systeme
Verteilte Speichersysteme Annahme: Daten haben uniforme Größen Problem: Menge der Speicher jetzt dynamisch Daten Speicher
Verteilte Speichersysteme Anforderungen: • Fairness:j: bj in vi wj innerhalb von (1§)cifür eine beliebige Konstante >0. • Effizienz: Ort jedes Datums kann zeit- und speichereffizient bestimmt werden • Adaptivität: Für jeden Wechsel von (c1,…,cn) nach (c´1,…,c´n) ist die Menge der umzu-platzierenden Daten nahezu minimal (d.h. nahe (m/2)i|ci-c´i| ) • Redundanz:Jedes Datum hat k Kopien auf verschiedenen Speichereinheiten.
Uniforme Speichersysteme Anforderungen: • Fairness: Anzahl Daten in Speicher i innerhalb von (1§)m/n für eine beliebige Konstante >0. • Effizienz: Ort jedes Datums kann zeit- und speichereffizient bestimmt werden • Adaptivität: Für jeden Wechsel von n-1 nach n oder n nach n-1 Speichern ist die Menge der umzuplatzierenden Daten nahezu minimal (d.h. nahe m/n ) • Redundanz:Jedes Datum hat k Kopien auf verschiedenen Speichereinheiten.
1 2 3 4 5 Uniforme Speichersysteme Konsistentes Hashing [KLL+97]: Hash h R2 0 1 Hash g
Uniforme Speichersysteme Theorem: Für jedes i2{1,…n} ist j: bj in vi wj innerhalb von (1§)|Ri|+O(log n / m) m.h.W. für eine beliebige Konstante >0. Beweis: Verwende Chernoff-Schranken.
Uniforme Speichersysteme Theorem: Für jedes i2{1,…n} ist E[|Ri|] = 1/n. Beweis: • Für alle i,j ist E[|Ri|] = E[|Rj|] (Symmetrie) • i |Ri|=1, also E[i |Ri|] = i E[|Ri|] = 1 • Daher ist E[|Ri|] = 1/n für alle i Konsistentes Hashing ist also im Erwartungswert fair (sowie effizient, adaptiv, und kann einfach auf Redundanz erweitert werden). Problem: Abweichung vom Mittelwert kann groß sein! (Übung: in [(1/n2), ((log n)/n)] )
Uniforme Speichersysteme Problem: Abweichung vom Mittelwert kann groß sein (in [(1/n2), ((log n)/n)] ) Lösungen: • Verwende (log n) Hashfunktionen für die Speicher. Damit hat jeder Speicher (log n) Regionen in [0,1) mit Gesamtgröße innerhalb (1§)/n m.h.W. • Verwende Cut & Paste Methode
1 2 3 4 5 Uniforme Speichersysteme Cut & Paste Methode [BBS00]: Hash h 0 1 mittels Cut&Paste
1 4 1 3 2 1 2 2 1 3 Uniforme Speichersysteme 1 1 1 1/2 1/2 1/3 0 0 0 Speicher i raus: letzterSpeicher (d.h. n) über-nimmt dessen Platz 1/3 usw. 1/4 0
Uniforme Speichersysteme Tatsache: Cut&Paste weist jedem Speicher einen Teil von [0,1) der Größe exakt 1/n zu. Theorem: Bei Anwendung von Cut&Paste von 1 nach n Speichern wird jedes Datum höchstens dlog ne–mal umplatziert. Beweis: Übung. Konsequenz: Damit Position jedes Datums effizient berechenbar (O(log n) Zeit).
1 2 3 4 5 Nichtuniforme Speichersysteme SHARE Strategie [BSS02]: Hash h 0 R2 1 |Ri|=s ¢ cifür Stretch s Hash g
1 2 3 4 5 Nichtuniforme Speichersysteme Wende zur Entscheidung konsistentes Hashing auf überschneidende Menge der Speicher an. Speicher 2 oder 4? 0 1
Nichtuniforme Speichersysteme Lemma: Für einen genügend großen Stretch s=(log n) ist die Anzahl der Intervalle über jeden Punkt in [0,1) innerhalb von (1§)s m.h.W. Beweis: Übung. Theorem: Unter der Annahme, dass für jedes Datum x mit k Speicherintervallen über h(x) es gleichwahrscheinlich ist, in welchem der k Speicher x gespeichert wird, ist SHARE fair.
1/2 1/4 1/4 Nichtuniforme Speichersysteme Probleme: • Da SHARE auf konsistentem Hashing aufbaut, Probleme mit Abweichungen bei Fairness • SHARE kann im Allgemeinen nicht Redundanz sicherstellen. Beispiel: Redundanz k=2
1 2 3 4 5 6 7 8 Nichtuniforme Speichersysteme SIEVE Strategie [BSS02]: 2n Intervalle (Rahmen) der Größe 1/2n 0 1 • Jeder Rahmen ist höchstens einem Speicher zugeordnet. • Speicher i verwendet bis auf einen alle seine Rahmen vollständig, so dass insgesamt ein Bereich von ci/2 in [0,1) abgedeckt wird (wichtig für Adaptivität!)
Nichtuniforme Speichersysteme SIEVE Strategie [BSS02]: h1 0 1 h2 0 1 h3 0 1 (log n) viele Hashfunktionen
Nichtuniforme Speichersysteme Theorem: SIEVE ist fair, effizient und adaptiv m.h.W. Beweis: Fairness: • Jede Urne i deckt ci/2 von [0,1) ab • Chernoff-Schranken
Übersicht • Bälle-in-Urnen – Spiele • Speicherverwaltung in Festplattensystemen • Robuste Informations- systeme
01 00 11 10 Skalierbare Informationssysteme Klassische Netzwerktheorie: Graphfamilien Beispiel:d-dim. de Bruijn Graph G=(V,E) • V = {0,1}d • E = { {x,y} | x=(x1,…,xd), y=(b,x1,…,xd-1), b 2 {0,1} beliebig} Wir brauchen:dynamische Form des de Bruijn Graphen (Peers gehen rein / raus)
Skalierbare Informationssysteme Beispiel:d-dim. de Bruijn Graph G=(V,E) • V = {0,1}d • E = { {x,y} | x=(x1,…,xd), y=(b,x1,…,xd-1), b 2 {0,1} beliebig} • Betrachte (x1,…,xd) als 0.x1 x2…xd2 [0,1), d.h. 0.101 = 1 ¢ (1/2) + 0 ¢ (1/4) + 1 ¢ (1/8) • Setze d !1