lezione n.12 jxta: l’applicazione restonet materiale didatt · 2016-02-29 · p2p streaming -...
TRANSCRIPT
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
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,...)
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
4Laura Ricci
P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa
P2P MEDIA STREAMING: APPLICAZIONI
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
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
7Laura Ricci
P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa
SINGLE TREE: IMPATTO DEL CHURN
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
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
10Laura Ricci
P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa
P2P STREAMING OVERLAYS
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
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
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.
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
15Laura Ricci
P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa
SPOTIFY: L'ARCHITETTURA
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
17Laura Ricci
P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa
SPOTIFY: STATISTICHE
18Laura Ricci
P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa
SPOTIFY: ARCHITETTURA GENERALE
19Laura Ricci
P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa
SPOTIFY: IL BACK END
20Laura Ricci
P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa
SPOTIFY: STORAGE SYSTEM
21Laura Ricci
P2P Streaming - SpotifyDipartimento di InformaticaUniversità degli Studi di Pisa
SPOTIFY: IL BACK END
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
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
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
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
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
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
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