Avalanche: P2P secondo Microsoft

Avalanche: P2P secondo Microsoft

Avalanche è il nome scelto da Microsoft per il proprio progetto di file sharing attraverso la rete internet.

di pubblicata il , alle 10:03 nel canale Programmi
Microsoft
 
95 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
sari21 Giugno 2005, 18:31 #71
Originariamente inviato da: fek
Evidentemente stai supponendo che gli eventuali costi rimangano invariati, cosa che, ripeto, e' una tua supposizione non suffragata da alcuna prova.

Ma se fai queste affermazioni basate su tue supposizioni per criticare aprioristicamente un'azienda che ti sta antipatica, allora non c'e' molto da aggiungere e mi tiro fuori dal discorso perche' sarebbe inutile continuarlo.


ho criticato? ho detto solo che è accettabile che il P2P venga utilizzato a patto di un adeguato abbassamento del prezzo, da parte di Microsoft come da parte di Suse o RedHat giusto per spararne due. 2 mega di upload (100% garantita) in italia costano 700 euro al mese, figurati 100 mega o un giga di dorsale .
Se un'azienda vuole risparmiarli, secondo me questo risparmio dovrà ricadere anche sull'utente finale. Ho detto qualcosa di sbagliato? Ho detto che Microsoft non lo farà? Ho detto solo che mi aspetto che lo faccia. Scusa se al posto di Microsoft non ho usato la classica azienda Rossi, ma credevo che il succo si capisse lo stesso.
sari21 Giugno 2005, 18:35 #72
Originariamente inviato da: Wonder
Inutile parlare con te dunque inutile leggerti. Addio


dalla prima frase mi mettevi in bocca parole non mie, quindi perchè leggere tutto se la risposta sarebbe stata uguale? Se facevi supposizioni o controbattevi a mie convizioni sarebbe stato ben diverso. Magari si mi sono espresso male sul momento, scusa, ma cmqe il succo della risposta è quello.
fek21 Giugno 2005, 18:37 #73
Originariamente inviato da: sari
ho criticato? ho detto solo che è accettabile che il P2P venga utilizzato a patto di un adeguato abbassamento del prezzo, da parte di Microsoft come da parte di Suse o RedHat giusto per spararne due. 2 mega di upload (100% garantita) in italia costano 700 euro al mese, figurati 100 mega o un giga di dorsale .
Se un'azienda vuole risparmiarli, secondo me questo risparmio dovrà ricadere anche sull'utente finale. Ho detto qualcosa di sbagliato? Ho detto che Microsoft non lo farà? Ho detto solo che mi aspetto che lo faccia. Scusa se al posto di Microsoft non ho usato la classica azienda Rossi, ma credevo che il succo si capisse lo stesso.


Sono pienamente d'accordo con questa versione.
sari21 Giugno 2005, 18:43 #74
Originariamente inviato da: fek
Sono pienamente d'accordo con questa versione.


Alla fine ci siamo capiti , io proporrei di rimanere così e di lasciar stare gli altri punti e cavilli vari.

La prossima volta utilizzerò azienda Rossi
fek21 Giugno 2005, 19:05 #75
Originariamente inviato da: sari
Alla fine ci siamo capiti , io proporrei di rimanere così e di lasciar stare gli altri punti e cavilli vari.

La prossima volta utilizzerò azienda Rossi


Ma utilizza pure Microsoft
Forse ti ho scambiato troppo precipitosamente per un normale basher, escono dalle fottute pareti!
[A+R]MaVro21 Giugno 2005, 21:37 #76
Originariamente inviato da: fek
Pensa che questo algoritmo messo a punto a Cambridge va anche oltre. Ogni peer trasmette un blocco che e' una combinazione lineare di tutti i blocchi che formano il file.

Immagina che il file da trasmettere sia formato da 10 blocchi (tipo di un mega l'uno a formare 10mb in totale). Quando tu fai una richiesta di trasferimento, non chiedi uno di quei blocchi in particolare ma li chiedi tutti assieme combinati in un solo blocco da 1mb.

Quando hai totalizzato un totale di trasferimenti da 1 mb l'uno dove ogni trasferimento contiene una combinazione lineare di tutti i blocchi del file, hai la matematica quasi certezza (a meno di rarissime collisioni) di avere tutte le informazioni necessarie a ricostruire il file originale.

Il vantaggio e' che ogni peer non deve piu' andare a cercare un peer che abbia esattamente la parte di cui ha bisogno (come in eMule o BitTorrent), ma gli basta cercare un peer che abbia abbastanza banda.

E' un'idea tanto semplice quanto geniale

L'implementazione e' solo un filo piu' complessa, ci ho studiato un po' nel finesettimana ed ho tirato fuori qualcosa che piu' o meno funziona, codifica e decodifica i pacchetti secondo quell'algoritmo.


Se ho capito bene questa è una idea assolutamente strepitosa e geniale . Rivoluziona senza dubbio il concetto di P2P e facilita la diffusione dei files "rari".
Il p2p funziona benissimo quando ci sono migliaia di utenti a condividere lo stesso files ma diventa snervante quando il numero di consivisioni di un certo file precipita di numero obbligandoti ad attese lunghissime (io ho provato a cercare di terminare alcuni files per MESI).

Fek correggimi se sbaglio ma in questo modo se un files è composto da 4 blocchi (A B C D) e a me mancasse il blocco C non dovrei cercare un utente che dispone proprio di quella parte ma potrei completare tranquillamente il mio download da qualcuno che ha solo il blocco A?
fek21 Giugno 2005, 21:46 #77
Originariamente inviato da: [A+R]MaVro
Fek correggimi se sbaglio ma in questo modo se un files è composto da 4 blocchi (A B C D) e a me mancasse il blocco C non dovrei cercare un utente che dispone proprio di quella parte ma potrei completare tranquillamente il mio download da qualcuno che ha solo il blocco A?


E' proprio questo il punto, i vari utenti non hanno il blocco A o il blocco B o il C, li hanno sempre tutti ma codificati.

Immagina ci siano 4 utenti: ogni utente ha una o piu' combinazioni lineari di tutti e 4 i blocchi.

Utente 1: 4 * A + 2 * B + 3 * C + 10 * D
Utente 2: 1 * A + 3 * B + 11 * C + 13 * D
Utente 3: 2 * A + 9 * B + 1 * C + 17 * D
Utente 4: 7 * A + 1 * B + 0 * C + 10 * D

Nota come ho messo numeri perfettamente causali a moltplicare ogni blocco.

Ora, io utente scarico la combinazione lineare dall'utente 1, poi dall'utente 2, poi dall'utente 3, poi dall'utente 4, perche' tanto so che ogni combinazione lineare contiene informazioni che arrivano da tutti i blocchi del file.

Quando ho scaricato la quarta combinazione sono matematicamente garantito (piu' o meno) di avere tutte le informazioni che mi permettono di ricostruire i 4 blocchi A, B, C, D di partenza. Non devo andare a cercare parti rare del file.
[A+R]MaVro21 Giugno 2005, 22:09 #78
Originariamente inviato da: fek
E' proprio questo il punto, i vari utenti non hanno il blocco A o il blocco B o il C, li hanno sempre tutti ma codificati.

Immagina ci siano 4 utenti: ogni utente ha una o piu' combinazioni lineari di tutti e 4 i blocchi.

Utente 1: 4 * A + 2 * B + 3 * C + 10 * D
Utente 2: 1 * A + 3 * B + 11 * C + 13 * D
Utente 3: 2 * A + 9 * B + 1 * C + 17 * D
Utente 4: 7 * A + 1 * B + 0 * C + 10 * D

Nota come ho messo numeri perfettamente causali a moltplicare ogni blocco.

Ora, io utente scarico la combinazione lineare dall'utente 1, poi dall'utente 2, poi dall'utente 3, poi dall'utente 4, perche' tanto so che ogni combinazione lineare contiene informazioni che arrivano da tutti i blocchi del file.

Quando ho scaricato la quarta combinazione sono matematicamente garantito (piu' o meno) di avere tutte le informazioni che mi permettono di ricostruire i 4 blocchi A, B, C, D di partenza. Non devo andare a cercare parti rare del file.


Il concetto mi sembra chiaro e semplice: una volta che ho abbastanza informazioni mi posso ricostruire il files. Tanto per restare nel tuo esempio mi basterebbe risolvere quel sistema per ottenere i valori di A B C e D e quindi ricostruire il file.

Mi sorge un dubbio però, non c'è il rischio di incappare in combinazioni lineari che sono solo mere trasformazioni di una che ho già?
Ossia se io dall'utente 4 scaricassi questa combinazione
8*A + 4*B + 6*C + 20*D
Non otterei nessuna informazione ulteriore a quella che mi avrebbe già dato l'Utente 1 e non potrei risoctruire il file. Chiaramente stiamo parlando di un caso limite ma è uno scenario possibile.
fek21 Giugno 2005, 22:23 #79
Originariamente inviato da: [A+R]MaVro
Mi sorge un dubbio però, non c'è il rischio di incappare in combinazioni lineari che sono solo mere trasformazioni di una che ho già?
Ossia se io dall'utente 4 scaricassi questa combinazione
8*A + 4*B + 6*C + 20*D
Non otterei nessuna informazione ulteriore a quella che mi avrebbe già dato l'Utente 1 e non potrei risoctruire il file. Chiaramente stiamo parlando di un caso limite ma è uno scenario possibile.


Esatto, infatti ho scritto che sei "quasi" garantito matematicamente. Anche pescando i coefficienti in maniera perfettamente casuale, c'e' sempre la probabilita' non nulla di ricevere un vettore di coefficenti che e' combinazione lineare dei vettori gia' in possesso. In questo caso scarti il pacchetto perche' non ti da' alcuna informazione aggiuntiva. Uno dei paper calcola questa probabilita' per coefficienti a 8 e 16 bit. Mi sembra sia nell'ordine dello 0.030%, quindi relativamente bassa, considerando che a te non serve alcuna informazione sulla topologia della rete per ottenere questo risultato. E come se la topologia della rete viaggiasse in qualche modo codificata nei coefficienti stessi.

Senza entrare troppo negli aspetti matematici della questione, per chi ha dimestichezza con matrici e vettori l'idea e' che i vettori di coefficienti formano una matrice, quando la matrice ha rank pari al numero di pacchetti totali, vuol dire che tutti i vettori di coefficienti sono linearmente indipendenti, puoi invertire la matrice e risolvere il sistema lineare per decodificare i pacchetti.

Ho fatto qualche prova a casa nel finesettimana con un numero piccolo di pachetti di piccole dimensioni e l'idea funziona che e' una meraviglia.
[A+R]MaVro21 Giugno 2005, 22:41 #80
Originariamente inviato da: fek]Esatto, infatti ho scritto che sei "
Quindi usando questo sistema corro il rischio (molto basso ma pur sempre non zero) di dover riscaricare parte dei pacchetti perchè contengono informazioni non utili. Mi sembra tuttavia assolutamente accettabile.

[quote]Senza entrare troppo negli aspetti matematici della questione, per chi ha dimestichezza con matrici e vettori l'idea e' che i vettori di coefficienti formano una matrice, quando la matrice ha rank pari al numero di pacchetti totali, vuol dire che tutti i vettori di coefficienti sono linearmente indipendenti, puoi invertire la matrice e risolvere il sistema lineare per decodificare i pacchetti.

Conservo ancora qualche reminiscenza anche se sono anni che non ne risolvo più una

Vado a leggermi quei paper. Grazie delle dritte Fek.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^