Lezione n.12 JXTA: L’applicazione RestoNet Materiale...

28
1 Laura Ricci P2P Streaming - Spotify Dipartimento di Informatica Università degli Studi di Pisa Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 Università degli Studi di Pisa Dipartimento di Informatica

Transcript of Lezione n.12 JXTA: L’applicazione RestoNet Materiale...

Page 1: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

1Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

Lezione n.21P2P MEDIA STREAMING

SPOTIFY

Laura Ricci24/5/2013

Università degli Studi di PisaDipartimento di Informatica

Page 2: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

2Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

P2P MEDIA STREAMING Media streaming: contenuto multimediale inviato sulla rete e riprodotto in

maniera incrementale man mano che viene acquisito dall'end-user

L'utente non deve attendere di scaricare tutto il contenuto (video, audio) prima di riprodurlo, ma lo può riprodurre man mano che lo riceve

Live Media Streaming: il contenuto multimediale è disponibile solo a certi istanti di tempo

Streaming on demand: gli stream audio/video sono memorizzate su un server e disponibili a

richiesta di un utente fornite funzionalià classiche (pausa, fast forward, fast rewind,...)

Page 3: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

3Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

P2P MEDIA STREAMING: LE SFIDE

Applicazioni bandwidth intensive

Impongono limiti temporali alla ricezione dei dati

Churn

Capacità della rete cambia dinamicamente

Scelta della topologia dell'overlay per la disseminazione dei media

Quale topologia?

Ricerca di video codec più sofisticati

Page 4: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

4Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

P2P MEDIA STREAMING: APPLICAZIONI

Page 5: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

5Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

OVERLAY PER LO STREAMING P2P

Approcci esistenti

Tree based Overlay

Push Content Delivery

Single o Multiple Tree

Mesh-shaped overlay

Pull content Delivery (swarming)

Simile a Bittorrent, diverse politiche di selezione dei chunk

Page 6: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

6Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

TREE-BASED VIDEO STREMING

Single Tree: singolo albero di multicast, la radice è la sorgente che

distribuisce il contenuto (il server) i nodi interni dell'albero e le foglie

sono i peer push del contenuto ogni nodo interno riceve lo stream

dal padre e lo invia ai figli vantaggi

semplicità basso delay

svantaggi poco resistente al churn traffico gestito da nodi interni

Page 7: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

7Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SINGLE TREE: IMPATTO DEL CHURN

Page 8: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

8Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

MESH BASED P2P STREAMING

contenuto audio/video diviso in piccoli blocchi nodi connessi mediante una topologia di tipo mesh ogni nodo richiede esplicitamente i blocchi mancanti (approccio pull based) simile a BitTorrent Vantaggi

resistente al churn buon bilanciamento del carico semplice implementazione

Svantaggi latenze imprevedibili a

causa di scambio frequente di messaggi di richiesta e di notifica

Page 9: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

9Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

MULTIPLE TREE P2P STREMING il server divide lo stream in un insieme di sub-stream creazione di un albero diverso per ogni stream un peer deve unirsi a tutti gli alberi per ricevere l'intero stream vantaggi:

resistenza al churn buon bilanciamento del carico

svantaggi complessità degli algoritmi

Page 10: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

10Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

P2P STREAMING OVERLAYS

Page 11: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

11Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: LIGHT MUSIC STREAMING

Spotify: on demand music streaming

Aprile 2006, Svezia (Daniel Ek, Martin Lorentzon), più di 10 milioni di utenti,18 milioni di tracce

Sviluppato in Svezia, ora disponibile in molte nazioni europee (Italia da febbraio 2013) ed USA

Legale: più conveniente del P2P illegale

20000 tracks aggiunte ogni giorno

700 milioni di playlist

Page 12: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

12Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: BUSINESS MODEL

Versione free: advertisement funded

Sottoscrizione a pagamento

assenza di adv

accesso anche da dispositivi mobili

playback offline

accessibile via API

Page 13: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

13Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

OBIETTIVO PRINCIPALE: RIDUZIONE DELLA LATENZA

Latency sensitive application: First Person Shooters (FPS), multiplayer,ma anche music streaming,....

Il tempo di risposta inadeguato è una delle ragioni principali per cui gli utenti abbandonano un servizio..... e una volta abbandonato un servizio, l'utente non ritorna sui suoi passi...

Google: aumenta la latenza di 100-400 ms diminuisce il numero degli utenti del 0.2-0.6%

Amazon: ogni 100ms di latenza, 1% di profitto

Nozione di “istantaneità” secondo la percezione umana: circa 200 ms, un “battito di ciglia”

Latenze entro la soglia di “istantaneità” non vengono percepite.

Page 14: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

14Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

OBIETTIVO PRINCIPALE: RIDUZIONE DELLA LATENZA Quando un utente preme “play” la riproduzione della traccia selezionata deve

partire “istantaneamente”

La riproduzione può iniziare non appena il client possiede una quantità di dati sufficiente affinchè la probabilità di “buffer underrun” o “stutter”

Stutter = Balbettio

latenza media necessaria per iniziare a sentire una traccia in Spotify = 265 ms, (playback latency)

entro la soglia di “istantaneità”.

metrica importante per Spotify: frazione di richieste che possono essere servite con latenza al di sotto della soglia di istantaneità

più rapido riprodurre una traccia dalla rete piuttosto che dal disco

Page 15: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

15Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: L'ARCHITETTURA

Page 16: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

16Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: IL PROTOCOLLO

ricerca nella cache locale le tracce scaricate sono memorizzate in cache di grandi dimensioni politica LRU più del 50% delle tracce reperite nella cache tracce nella cache scambiate nella rete P2P

richiesta del primo pezzo ad un server Spotify

nel frattempo, ricerca P2P dei pezzi rimanenti

passa dinamicamente dalla rete P2P alla rete dei server, se necessario

in prossimità della fine di una traccia, pre-fetching della traccia successiva mediante la rete P2P

Page 17: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

17Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: STATISTICHE

Page 18: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

18Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: ARCHITETTURA GENERALE

Page 19: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

19Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: IL BACK END

Page 20: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

20Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: STORAGE SYSTEM

Page 21: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

21Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: IL BACK END

Page 22: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

22Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: STORAGE SYSTEM Connessione TCP con l'Access Point avviene al momento del login

AP permette accesso ai servizi di back end utilizzato un protocollo proprietario richieste ai servizi del back-end multiplexate dall'access point

Two-tiered Storage System: Production + Master Storage

Production storage diversi data center, ogni utente sceglie il datacenter più vicino

Stockholm,Sweden, London, UK, Ashburn, VA protocollo AP-Production Storage: HTTP key-value storage con replicazione (ogni oggetto replicato su 3 server,

Cassandra) rete interna al DataCenter contiene le tracce più popolari un cache miss genera una richiesta al Master Storage

Page 23: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

23Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: STORAGE SYSTEM

Master Storage contiene tutte le tracce disponibile condivisa tra tutti i data center accesso meno efficiente

Il back end comprende diversi altri servizi per la maggior parte realizzati in Python

Playlist system: memorizza e mantiene le playlist degli utenti

User service: responsabile della gestione del login dell'utente

Page 24: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

24Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: LA RETE P2P

perchè una rete P2P?

server meno carichi

un numero inferiore di server da acquistare e da mantenere

utilizzata dai desktop client, non dai mobile client

un'unica rete P2P, non una rete per ogni traccia (in realtà una per ogni data

center)

tutti i nodi hanno lo stesso ruolo (non esistono supernodi)

ogni nodo apre un insieme di <= 60 connessioni con gli altri nodi client

non una rete “pirata”: tutte le tracce fornite dai server spotify

Page 25: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

25Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: LA RETE P2P

Server Side Tracker (simile a Bittorrent) + protocollo Gnutella-like: broadcast dei dati ai vicini (TTL=2)

due meccanismi diversi per garantire una maggior disponibilità dei dati DHT non utilizzata a questo livello

Tracker Protocol: Mantiene il mapping tracce-peer che possiedono l'intera traccia Tracce brevi: mantenuto un numero limitato di peer Frequente il download di nuove tracce: importante mantenere

l'operazione di ricerca poco costosa Protocollo tracker semplificato rispetto a Bittorrent

Gnutella-like Protocol: Query-ID associato con ogni query per evitare duplicazione dei

messaggi

Page 26: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

26Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

IL PROTOCOLLO P2P

Richiesti per primi i pezzi “più urgenti”

Richieste a peer lenti cancellate

Buffer underrun:

richiesta al server centrale

stop upload

Page 27: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

27Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: TUNING DEL PLAY-OUT DELAY

Trade-off: stutter/latency predizione della quantità dati bufferizzare prima di iniziare a riprodurre

una canzone

Modellazione come catena di Markov Stati della catena di Markov

Livelli di throughput osservati (33 buckets da 0 a 153 kbps). Dati collezionati osservati negli ultimi 15 minuti di trasmissione

Probabilità= % di transizione osservati tra due livelli di throughput

Page 28: Lezione n.12 JXTA: L’applicazione RestoNet Materiale didattricci/24-05-13-Streaming-Spotify.pdf · Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 ... gli stream

28Laura Ricci

P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa

SPOTIFY: TUNING DEL PLAY-OUT DELAY

La catena di Markov viene utilizzata per simulare il playback della traccia

si inizia con il throughput attuale e con la dimensione attuale del buffer

100 simulazioni diverse

per ogni simulazione fallimento o successo a seconda che si ottenga o meno buffer underrun (sluttering)

se più di un fallimento: attende primare di iniziare il playback