470 likes | 640 Views
Ancora esercizi!!!. Chernoff Bound Siano X 1 , X 2 , …,X n prove ripetute indipendenti tali che per 1 ≤ i ≤ n, Pr[ X i =1]= p i , Pr[ X i =0]=1- p i con 0 < p i < 1. Se allora Inoltre se >2e-1 4,43, allora. Ancora esercizi!!!.
E N D
Ancora esercizi!!! • Chernoff Bound Siano X1, X2, …,Xn prove ripetute indipendenti tali che per 1 ≤i≤ n, Pr[Xi=1]=pi, Pr[Xi=0]=1-pi con 0 <pi< 1. Se allora Inoltre se >2e-1 4,43, allora
Ancora esercizi!!! • Abbiamo una roulette (Americana) (38 settori) proviamo ad effettuare 380 lanci: • Quale è la probabilità di beccare lo 0 almeno 41 volte? • Quanto vale ? (100) (10) (600) (nessuna delle precedenti) • Quanto vale ? (2000)(3)(1)(1000)(nessuna delle precedenti) • Quale formula applicare? • Se invece dello 0 consideriamo 0 e 00 almeno 41 volte, cambia qualcosa? • E se effettuiamo 3800 lanci quale è la probabilità di beccare lo 0 401 volte?
Condizioni necessarie ma non sufficienti Dal punto di vista topologico • Consideriamo una rete P2P come un grafo G=(V,E), dove V è l’insieme dei nodi nel sistema e E rappresenta l’insieme delle interconnessioni fra essi: • Minimizzare, per ogni nodo, le informazioni relative agli altri nodi: • minimizzare il grado dei nodi; • Minimizzare il numero di messaggi necessari per fare lookup: • Minimizzare il diametro; • Minimizzare l’average path lenght (APL), vale a dire, la distanza media fra due nodi nel grafo.
Es. Chord • Consideriamo un anello con n=2b nodi; • Ogni nodo x ha un etichetta a b bit; • I vicini del nodo x sono i nodi (x+2i) mod 2b i = 0,1,…,b-1; jump 000 111 001 110 010 101 011 b=3 100
000 Es. Chord 111 001 110 010 • Quanto valgono: • grado? • diametro? • average path lenght? 101 011 b=3 100 Il grado è b = log n
000 Es. Chord 111 001 110 010 • Dati due nodi x e y la loro distanza d(x,y) è uguale al numero di “1” che ci sono nella stringa binaria (y-x) mod 2b. • Infatti i jump necessari per passare dal nodo x al nodo y sono quelli relativi alla posizione degli “1” nella stringa binaria (y-x) mod 2b. 101 011 b=3 100
000 Es. Chord 111 001 110 010 • Calcoliamo la distanza tra il nodo 3 e il nodo 6: • (6-3) mod 8 = 3 = 011 (un jump da 2 e uno da 1). • Calcoliamo la distanza tra il nodo 6 e il nodo 3: • (3-6) mod 8 = 5 = 101 (un jump da 4 e uno da 1). Il diametro è b = log n 101 011 b=3 100 d(x,y) può essere diverso da d(y,x) Chord non è simmetrico
diametro Anello n -1 Chord e altri Grafo completo O(log n) 1 1 O(log n) n -1 grado n è il numero dei peer;
000 Es. Chord 111 001 110 010 • Quanto vale l’average path lenght? 101 011 b=3 100 N denota l’insieme dei nodi
Per semplicità consideriamo un sistema Chord like Sistemi P2P uniformi k=grado l=diametro • Denotiamo con Jx,i l’iesimo jump del nodo x; • Un sistema P2P viene detto uniforme, se per ogni coppia di nodi x e y, si ha Jx,i = Jy,i i =1,2,…,k. • Chord è uniforme? • APL sistemi uniformi: Si a è un generico nodo N
Sistemi P2P uniformi • Vantaggi: • Facili da implementare e da analizzare; • Algoritmo di routing semplice (greedy); • Routing locale, la procedura di lookup interessa solo i nodi che si trovano fra sorgente e destinazione; • Non c’è congestione sui nodi, vale a dire il traffico generato dai messaggi di lookup è più o meno uguale per tutti i nodi. • Fast bootstrap: • Poiché tutti i nodi utilizzano gli stessi jump, è possibile utilizzare la tabella di routing del proprio predecessore per velocizzare notevolmente l’operazione di join; • Svantaggi: • Sfortunatamente non sono gli algoritmi più efficienti. Lo vediamo fra un pò
000 Es. Chord 111 001 110 010 • Quanto vale l’average path lenght? • Scegliamo come nodo sorgente il nodo a=00…0; • La distanza fra a e il generico nodo x è uguale al numero di bit a 1 nella codifica binaria di x; 101 011 b=3 100 00…0 00…1 … 11…0 11…1 a
DHT Routing (Tapestry) • Realizzazione dinamica dell’algoritmo di Plaxton et al.(che non si adattava a sistemi dinamici); • Supponendo che le chiave è costituita da un intero positivo l’algoritmo di routing corregge a ogni passo un singolo digit alla volta; • Per fare ciò un nodo deve avere informazioni sui nodi responsabili dei prefissi della sua chiave; (O(log N) nodi) • Il numero di messaggi necessari per fare lookup è O(log N); • L’algoritmo in pratica simula un Ipercubo;
DHT Routing (Tapestry) • Tabella di routing (base k=4, digit d=4) • Consideriamo il nodo x con id (x1, x2, x3, x4): • (1+x1, *, *, *) (x1, 1+x2, *, *) (x1, x2,1+x3, *) (x1, x2, x3, 1+x4) • (2+x1, *, *, *) (x1, 2+x2, *, *) (x1, x2, 2+x3, *) (x1, x2, x3, 2+x4) • (3+x1, *, *, *) (x1, 3+x2, *, *) (x1, x2, 3+x3, *) (x1, x2, x3, 3+x4) • (in totale sono k-1 d nodi -- n=dk -> d=logk n) • Es. tabella di routing (1323 base 4) • (2, 1, 3, 0) (1, 0, 2, 3) (1, 3, 3, 2) (1, 3, 2, 0) • (3, 1, 2, 2) (1, 1, 1, 3) (1, 3, 0, 1) (1, 3, 2, 1) • (0, 3, 2, 1) (1, 2, 1, 2) (1, 3, 1, 1) (1, 3, 2, 2)
DHT Routing (Tapestry) • Es. tabella di routing (1323 base 4) • (2, 1, 3, 0) (1, 0, 2, 3) (1, 3, 3, 2) (1, 3, 2, 0) • (3, 1, 2, 2) (1, 1, 1, 3) (1, 3, 0, 1) (1, 3, 2, 1) • (0, 3, 2, 1) (1, 2, 1, 2) (1, 3, 1, 1) (1, 3, 2, 2) • Supponiamo che il nodo 1323 deve risolvere la query per il nodo 1333 … siccome i primi due digit coincidono (si utlizza la terza colonna) … la query viene inoltrata al nodo 1332… che avrà un link al nodo 1333 (nella sua quarta colonna). • Grado (k-1) logk n • Diametro logk n (2, 2, 2 ,1) (1, 0, 3, 3) (1, 3, 0, 2) (1, 3, 3, 0) (3, 2, 3, 0) (1, 1, 3, 3) (1, 3, 1, 1) (1, 3, 3, 1) (0, 2, 2, 3) (1, 2, 0, 2) (1, 3, 2, 1) (1, 3, 3, 3)
DHT: Routing (CAN) • I nodi sono mappati su un toro d-dimensionale; • A ogni nodo è associato un sottoinsieme di questo spazio d-dimensionale; • Ogni nodo mantiene la lista dei nodi responsabili dei sottospazi che confinano con il proprio sottospazio; • Grado: Ogni nodo ha O(d) vicini (due per ogni dimensione); • Il routing avviene in passi, in media; • Da notare che se usiamo d = log N dimensioni abbiamo O(log N) vicini e il routing ha costo:
DHT: Routing (CAN) • Join • Al nuovo nodo viene assegnato un punto (random) nello spazio d dimensionale. • La zona viene divisa in due : • Una parte viene gestita dal nuovo nodo • La rimanente dal vecchio gestore. • Leave • La zona gestita dal nodo che lascia la rete viene passata a un suo vicino e se è possibile le zone vengono raggruppate di nuovo • problema: frammentazione delle zone
Dall’Ipercubo alla Butterfly • Ipercubo Un nodo u è connesso con tutti i nodi che differiscono di un solo bit da u Nodi = N=2r Archi = r 2r-1 Bisezione = N/2 Diametro = log N • Butterfly (r dimensioni) 2r righe e r+1 colonne Nodo u =(w,i) w (r bit) =riga, i = colonna (da 0 a r) u=(w,i) e u’=(w’,i’) sono connessi se • i’=i+1 • w=w’ oppure w e w’ differiscono esattamente nell’iesimo bit Nodi = (r+1)2r nodi Archi = r2r+1 Bisezione O(N/log N) Diametro O(log N) r=3
000 000 001 001 010 010 011 011 100 100 101 101 110 110 111 111 Butterfly (FFT) Network 0 1 2 3
Routing on a Butterfly 0 1 2 0 000 000 001 001 010 010 011 011 100 100 101 101 110 110 111 111
DHT: Routing (Viceroy) • I nodi sono mappati su una butterfly e contemporaneamente su un array circolare; • Ogni nodo ha un identificatore addizionale chiamato livello (scegliendo a caso nell’intervallo 1 e log n’ dove n’ è una stima di n); • Tre tipi di link: • General link: predecessore e successore sull’array circolare (2 link); • Level ring: connette i nodi di uno stesso livello (2 link); • Butterfly link: realizza la butterfly (2 link); • Ogni nodo ha O(1) vicini; • Il routing avviene in O(log N) passi in media e O(log2 N) passi WHP;
k=grado l=diametro Fault tolerance and degree • Il grado di una rete P2P soggetta a fallimenti deve essere almeno Ω(log n). • Infatti, Ω(log n) risulta essere il minimo valore che permette alla rete di rimanere connessa anche nelle condizioni più proibitive; • Sketch: • Supponiamo che tutti i nodi della rete possono fallire con probabilità ½; • Ovviamente un nodo rimane disconnesso se tutti i suoi vicini si disconnettono contemporaneamente; • Vogliamo che la probabilità che un nodo non si disconnetta sia ≥ 1-1/n; • Pr[un nodo non si disconnette]=1-(1/2)k ≥ 1-1/n 1/n ≥(1/2)k 2k≥ n k ≥ log n In realtà la prova è un po’ più complicata, ma questa rende bene l’idea
P2P: grado e diametro • Abbiamo visto che il grado di una rete P2P soggetta a fallimenti deve essere almeno Ω(log n). • Esistono in letteratura molti protocolli che hanno grado e diametro pari a O(log n). • E’ possibile fare di meglio? • Fissiamo il grado pari O(log n), qual è il minimo diametro che riusciamo ad ottenere? • Fissiamo il grado pari O(log n), qual è il minimo APL che riusciamo ad ottenere? Chord, tapestry, pasty… Stiamo cercando dei Lower Bound
k=grado l=diametro P2P: Lower Bound Teorema Dato un grafo G=(V,E) con |V| = n e grado k = O(log n), allora il diametro l = Ω(log n / log (log n)). Prova Dato che il grado è k e il diametro è l, ogni nodo può raggiungere al massimo altri nodi (compreso il nodo stesso). Poiché il grafo deve essere connesso, allora kl+1 > n l > logk (n) - 1 =Ω(log n / log (log n)). Con argomentazioni analoghe si può dimostrare che anche l’APL è Ω(log n / log (log n)) in quanto la maggior parte dei nodi si trova a distanza l-O(1). Ma allora Chord non è ottimale!!!
P2P: Lower Bound (Esempio 1) r • k = log n; • Ogni nodo ha grado k (k-1 figli e la radice dell’albero); • r raggiunge qualsiasi nodo in al più logk-1 n =O(log n / log (log n)) passi. • Il diametro è 1 + logk-1 n =O(log n / log (log n)). k-1 … … … Il grado in ingresso della radice è n-1
P2P: Lower Bound (Esempio 2) r • k = log n; • Ogni nodo ha grado(entrante più uscente) k ( k/2 -1 ai figli e 1 al padre (x2)); • r raggiunge qualsiasi nodo in al più logk/2 -1 n = O(log n / log (log n)) passi. • Ogni nodo raggiunge r in al più logk/2 -1 n = O(log n / log (log n)) passi • Il diametro è O(log n / log (log n)). k/2 -1 … … …
P2P: Lower Bound (Esempio 3) r • k = 6; • Ogni nodo ha grado(entrante più uscente) 6 ( 2 ai figli e 1 al padre (x2)); • r raggiunge qualsiasi nodo in al più log n passi. • Ogni nodo raggiunge r in al più log n passi • Il diametro è 2 log n. 2 … … La mole di traffico che spetta al nodo r è nettamente maggiore rispetto agli altri nodi La rete si disconnette se uno qualsiasi dei nodi (escluse le foglie) fallisce
P2P: Lower Bound sistemi uniformi Teorema Consideriamo un sistema P2P uniforme con n nodi, sia k il numero dei vicini che ogni nodo mantiene, allora il lower bound per il diametro è 1/2log n (l ≥ 1/2log n ) se k 1/2log n.
P2P: Lower Bound sistemi uniformi Teorema Consideriamo un sistema P2P uniforme con n nodi, sia k il numero dei vicini che ogni nodo mantiene, allora il diametro è Ω(log n) se k = O(log n).
diametro Anello n -1 Chord e altri Grafo completo LB O(log n) O(log n/ log(log n)) 1 1 O(log n) n -1 grado n è il numero dei peer;
Alcune osservazioni • Chord è asintoticamente ottimo • Uniforme • Facili da implementare e da analizzare; • Algoritmo di routing semplice (greedy); • Non c’è congestione sui nodi; • Fast bootstrap: • Routing locale; • GAP • Chord (log n, log n) • LB (½ log n, ½ log n) E’ possibile fare meglio di Chord, si può arrivare a (0.72021 log n, 0.72021 log n)
Domande: • Consideriamo un sistema P2P con N nodi e grado k = O(log N), quale delle seguenti affermazioni è vera. (giustificare la risposta) • il diametro è (log N) • il diametro è almeno ½ log N • il diametro è (log N / log log N) • Nessuna delle precedenti • Dato un sistema P2P uniforme con N nodi, grado k e diametro l, (giustificare la risposta) • k è O(log N) se l è O(log N) • l è (log N) se k è O(log N) • l è (log N/ log log N) se k è O(log N) • Nessuna delle precedenti
Domande: • Quale delle seguenti affermazioni è vera (giustificare la risposta) • I protocolli P2P uniformi sono più efficienti • Non esiste un sistema P2P asintoticamente ottimo • Chord è un sistema non uniforme • Nessuna delle precedenti • Consideriamo l’insieme dei protocolli P2P uniformi, quale delle seguenti affermazioni è vera . (giustificare la risposta) • Chord è un sistema P2P asintoticamente ottimo (rispetto al tradeoff grado - diametro) • Non esiste un sistema P2P asintoticamente ottimo (rispetto al tradeoff grado - diametro) • Non esiste un sistema che offre prestazioni migliori del protocollo Chord (rispetto al tradeoff grado - diametro) • Nessuna delle precedenti