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
Peer-to-Peer Systeme
Verteilungsprobleme Anforderungen: Skalierbarkeit: Faire Verteilung der Daten und ihrer Anfragen auf Speichereinheiten Effizienz: Effiziente Operationen zum Einfügen, Löschen und Suchen von Daten
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 1 2 3 4
Übersicht Bälle-in-Urnen – Spiele Speicherverwaltung in Festplattensystemen Robuste Informations- systeme
Problem: Faire Verteilung von m Bällen auf n Urnen 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
verwende eine zufällige Hashfunktion 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-p Pr[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
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 Mengenbeweis: Menge M_1, die aus U_2 nach bar{U_2} führt. Dann Menge M_2, die aus U_2 nach M_1 führt, usw. ….. 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/ne mit 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). Allgemein: Dummy-Bälle
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 Knoten mit Grad L … 1 2 L … … L innere Knoten mit 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§ )ci fü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.
Uniforme Speichersysteme Konsistentes Hashing [KLL+97]: Hash h R2 1 Hash g 1 2 3 4 5
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
Uniforme Speichersysteme Cut & Paste Methode [BBS00]: Hash h 1 mittels Cut&Paste 1 2 3 4 5
Uniforme Speichersysteme 1 1 1 1/2 1/2 1/3 1 2 1 2 3 1 Speicher i raus: letzter Speicher (d.h. n) über- nimmt dessen Platz 1/3 usw. 1/4 1 2 3 4
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).
Nichtuniforme Speichersysteme SHARE Strategie [BSS02]: Hash h R2 1 |Ri|=s ¢ ci für Stretch s Hash g 2 3 5 1 4
Nichtuniforme Speichersysteme Speicher 2 oder 4? 1 2 3 5 1 4 Wende zur Entscheidung konsistentes Hashing auf überschneidende Menge der Speicher an.
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.
Nichtuniforme Speichersysteme Probleme: Da SHARE auf konsistentem Hashing aufbaut, Probleme mit Abweichungen bei Fairness SHARE kann im Allgemeinen nicht Redundanz sicherstellen. Beispiel: 1/2 1/4 1/4 Redundanz k=2
Nichtuniforme Speichersysteme SIEVE Strategie [BSS02]: 2n Intervalle (Rahmen) der Größe 1/2n 1 2 3 8 5 1 7 4 6 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 1 h2 1 h3 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
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) 00 01 10 11
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…xd 2 [0,1), d.h. 0.101 = 1 ¢ (1/2) + 0 ¢ (1/4) + 1 ¢ (1/8) Setze d ! 1
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} Ergebnis für d ! 1: V = [0,1) E = { {x,y} 2 [0,1)2 | y=x/2, y=(1+x)/2 }
Skalierbare Informationssysteme Kontinuierlicher de Bruijn Graph: V = [0,1) E = { {x,y} 2 [0,1)2 | y=x/2, y=(1+x)/2 } Wie verwenden wir das für ein skalierbares Informationssystem? Kontinuierlich-diskrete Methode! [NW03]
Kontinuierlich-Diskrete Methode Jedem Peer wird zufälliger Punkt in [0,1) zugewiesen R(v)=[v,succ(v)) 1 Peers v Peers teilen [0,1) in Regionen auf
Kontinuierlich-Diskrete Methode Kontinuierlicher de Bruijn Graph: V = [0,1) E = { {x,y} 2 [0,1)2 | y=x/2, y=(1+x)/2 } R0(v) R(v) R1(v) 1 Seien f0(x)=x/2 und f1(x)=(1+x)/2. Betrachte R0(v)=f0(R(v)) und R1(v)=f1(R(v)).
Kontinuierlich-diskrete Methode Verknüpfungsregel: Kreiskanten: Peer v verbindet sich mit pred(v) und succ(v) in [0,1) De-Bruijn Kanten: Peer v verbindet sich mit allen Peers w, für die R0(v) oder R1(v) mit R(w) überlappt. Updates sehr einfach: Join(v): Kreiskanten: De Bruijn Kanten: pred(v) succ(v) pred(v) v succ(v) pred(v) v succ(v) R(v) 1
Kontinuierlich-diskrete Methode Verknüpfungsregel: Kreiskanten: Peer v verbindet sich mit pred(v) und succ(v) in [0,1) De-Bruijn Kanten: Peer v verbindet sich mit allen Peers w, für die R0(v) oder R1(v) mit R(w) überlappt. Updates sehr einfach: Leave(v): Kreiskanten: De Bruijn Kanten: pred(v) v succ(v) pred(v) succ(v) pred(v) v succ(v) R(v) 1
Datenzuweisung Verwende konsistentes Hashing von [KLL+97] Daten (pseudo-)zufällige Hashfunktion 1 Peers
Robuste Informationssysteme Internet Internet Skalierbarkeit ist nicht alles! Robustheit gegenüber gegnerischem Verhalten immer drängender!!
Ideale Welt ! Vier Gebote: Du sollst nicht schlafen Du sollst nicht lügen Du sollst nicht stehlen Du sollst nicht töten Maßnahmen bei Verletzungen: Nicht so einfach wie es scheint… !
Übersicht Methoden gegen Verletzungen von 1. Du sollst nicht schlafen (fail-stop) 2. Du sollst nicht lügen (Gegner) Methoden gegen Verletzungen von 4. Du sollst nicht töten (DoS-Attacken)
Grundlegender Ansatz Peers/Server formen einen Kreis Zustände dem System nicht bekannt! ehrliche Peers gegnerische Peers
Robustheit Gegenmaßnahmen zu: Du sollst nicht schlafen Du sollst nicht lügen Forme lokale Quoren Halte gegn. Peers gut verteilt
Robustheit Statische Menge von Peers: Wähle zufällige Permutation für Anordnung
Robustheit Dynamische Menge von Peers: Zwei Operationen: Join und Leave
Join-Leave Robustheit Problem: finde zustandslose Join und Leave Operationen, so dass für jede (selbst adaptive) Join-Leave Sequenz gegnerischer Peers die gegnerischen Peers im Kreis gut verteilt sind.
Join-Leave Robustheit Modell: n ehrliche Peers n gegnerische Peers, <1 Zeit unterteilt in Runden In jeder Runde kann Gegner Join oder Leave Operation für einen gegnerischen Peer aufrufen Ziel: finde Join und Leave Operationen, so dass für alle Folgen F von c log n Peers auf Kreis gilt: Mehrheitsbedingung: die ehrlichen Peers in F sind in der Mehrheit.
Join-Leave Robustheit Join-Operation: k-Rotation [Sch05]: - neuer Peer zunächst positionslos - vertausche (k-1)-mal hintereinander posi- tionslosen mit zufälligem Peer im Kreis - füge positionslosen Peer zufällig ein
Join-Leave Robustheit Theorem: Solange < 1-2/k ist, gilt Mehr-heitsbedingung für poly viele Runden m.h.W., egal was der Gegner macht.
Analyse der k-Rotationsregel Unterteile Regel in Stufen: Stufe 0: neuer Peer ist obdachlos Stufe i 2 {1,…,k-1}: Position p wird uniform zufällig gewählt, obdachloser Peer wird in p plaziert, Peer vorher in p wird neuer obdachlose Peer Stufe k: obdachloser Peer wird in neuer zufälliger Position plaziert
Analyse der k-Rotationsregel 0: blau, 1: rot Konzentration auf einzelne Position p: Zustandsraum: {(0,0),(0,1),(1,0),(1,1)} Stufe 0: (0,0) ! (0,1), (1,0) ! (1,1) Stufe i 2 {1,…,k-1}: Stufe k: {(0,0),(0,1)}!(0,0), {(1,0),(1,1)}!(1,0) (p,h) 0,0 0,1 1,0 1,1 1-n/N (n-1)/N 1/N 1-(n+1)/N n/N N: Anzahl Peers, n: ehrliche (blaue) Peers
Analyse der k-Rotationsregel Konzentration auf einzelne Position p: Anfangs hat p Verteilung (x,0,y,0), x+y=1 Am Ende hat p Verteilung (x’,0,y’,0) mit Stationäre Verteilung: y’=y, N=(1+e)n
Analyse der k-Rotationsregel Theorem: Für k>2 ist die worst-case Wahr-scheinlichkeitsverteilung der Zahl der roten Peers in einer Folge der Größe s=Q(log n) nach oben & unten beschränkt durch eine Binomialverteilung mit E.wert
Join-Leave Robustheit Problem: viele Peer-to-Peer Systeme platzieren Peers in virtuellen Raum
Join-Leave Robustheit Problem: viele Peer-to-Peer Systeme platzieren Peers in virtuellen Raum Einfachster virtueller Raum: [0,1)-Intervall 1
Join-Leave Robustheit n ehrliche Peers, n gegn. Peers, <1 Jeder Peer hat Punkt in [0,1) 1
Join-Leave Robustheit Ziel: Für jedes Interval I ½ [0,1) der Größe (c log n)/n, c konstant, gilt: Balancierung: (log n) Peers in I Mehrheit: ehrliche Peers in Mehrheit in I 1 I
Wie sind Bedingungen zu erfüllen? Chord: verwendet kryptographische Hashfunktion, um Peers Punkte in [0,1) zuzuweisen zufällige Verteilung der ehrlichen Peers keine zufällige Verteilung der gegnerischen Peers 1
Wie sind Bedingungen zu erfüllen? CAN: weist den Peers zufällige Punkte in [0,1) zu
Wie sind Bedingungen zu erfüllen? Group Spreading [AS04]: Weise Peers zufällige Punkte in [0,1) zu Begrenze die Lebenszeit der Peers Zu teuer!
Wie sind Bedingungen zu erfüllen? k-Kuckuck-Regel [AS06]: n ehrlich n gegnerisch leere k/n-Region < 1-1/k
Analyse der k-Kuckucksregel k-Region: Region der Größe k/n Alter einer k-Region: Anzahl Runden seit letztem Treffer in Kuckucksregel. R: feste Region aus (c log n) k-Regionen Alter von R: Alter seiner k-Regionen Neuer Peer: noch nicht replaziert >0: kleine Konstante Lemma 1: R enthält <=c log n neue Peers.
Analyse der k-Kuckucksregel Lemma 2: R hat Gesamtalter von (1 § ) (c log n)n/k, m.h.W. Beweis: Alter jeder seiner k-Regionen Ri: Pr[Alter(Ri)=t] = (k/n)(1-k/n)t-1 Alter der k-Regionen quasi-unabhängig, damit Alter von R konzentriert um E[R] = i E[Ri] = i n/k = (c log n)n/k
Analyse der k-Kuckucksregel R: feste Region aus c log n vielen k-Regionen T=(/)log2 n >0: kleine Konstante Lemma 3: In jedem Zeitintervall der Größe T werden m.h.W. (1§ )kT blaue Peers und <(1+)kT rote Peers umplaziert. Lemma 4: R hat m.h.W. (1§ )(c log n)k alte blaue Peers und <(1+)(c log n)k alte rote Peers. Beweis: Übung
Analyse der k-Kuckucksregel # blaue Peers in R: >(1-)(c log n)k # rote Peers in R: <(1+)(c log n)k + (c log n) Theorem: Unter der k-Kuckucksregel sind für jedes k>1 und <1-1/k die Balan-cierungs- und Mehrheitsbedingungen m.h.W. erfüllt.
Grenzen der Kuckuck-Regel Funktioniert nur für Join-Leave Sequenzen von gegnerischen Peers.
k-flip&cuckoo Regel [AS07] Join: wie zuvor (k-Kuckuck-Regel) Leave: wähle zufällige k/n-Region unter benachbarten c log n k/n-Regionen, leere & vertausche sie mit zufälliger k/n-Region n ehrlich n gegnerisch Tausch join
Übersicht Methoden gegen Verletzungen von 1. Du sollst nicht schlafen (fail-stop) 2. Du sollst nicht lügen (Gegner) Methoden gegen Verletzungen von 4. Du sollst nicht töten (DoS-Attacken) Weitere Probleme und Ausblick
Fundamentales Dilemma Skalierbarkeit: Minimiere Ressourcen für Operationen Robustheit: Maximiere DoS-Aufwand für Angreifer Gegner hat Insider-Wissen: keine Chance!!
DoS-resistente Informationssysteme Past-Insider-Attacke: Gegner kennt alles über System bis (unbekannte) Zeit t0 Ziel: skalierbares Informationssystem, so dass alles, was nach t0 eingefügt oder aktualisiert worden ist, sicher (m.h.W.) gegen jede past-insider DoS Attacke ist, die einen beliebigen -Bruchteil der Server lahmlegen kann (für ein >0) Sie sind gefeuert!
Past insider DoS-Attacke Dilemma: Explizite Datenstruktur: Konsistenzprobleme unter einer DoS-Attacke Feste Hashfunktion: Strukturlos, aber trotzdem leicht zu attackieren Zufällige Platzierung: schwer zu attackieren, aber Suche teuer Kombiniere Hashing mit zufälliger Platzierung!!
Past-insider-resistentes System hashbasierte Position (davon O(log n) viele) [AS07] zufällig gestreute Kopien
Fragen?
Übungen Zeige: maxU=; |(U)|/|U|<=dm/ne + 1 m.h.W. für m> cn log n für eine genügend große Konstante c. Zeige, dass die Zeugenstruktur für die Minimum-Regel sehr unwahrscheinlich für den Fall ist, dass alle Bälle in ihr verschieden sind. Zeige, dass es beim konsistenten Hashing erwartungsgemäß mindestens eine Region Ri gibt mit |Ri|<=1/n2 und mindestens eine Region Ri gibt mit |Ri|>=(log n)/n.
Übungen 4. Zeige: Bei Anwendung von Cut&Paste von 1 nach n Speichern wird jedes Datum höchstens dlog ne–mal umplatziert. Zeige, dass für einen genügend großen Stretch s=(log n) die Anzahl der Invervalle über jeden Punkt in [0,1) innerhalb von (1§ )s m.h.W. ist. Beweise Lemma 4 der Kuckucksregel, d.h. R hat m.h.W. (1§ )(c log n)k alte blaue Peers und <(1+)(c log n)k alte rote Peers. Benutze dazu die vorigen Lemmata.