spotify - Dipartimento di Informatica
Transcript
spotify - Dipartimento di Informatica
Università degli Studi di Pisa Dipartimento di Informatica Lezione n.21 P2P MEDIA STREAMING SPOTIFY Laura Ricci 24/5/2013 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 1 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,...) Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 2 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 3 P2P MEDIA STREAMING: APPLICAZIONI Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 4 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 5 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 6 SINGLE TREE: IMPATTO DEL CHURN Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 7 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 8 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 9 P2P STREAMING OVERLAYS Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 10 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 11 SPOTIFY: BUSINESS MODEL Versione free: advertisement funded Sottoscrizione a pagamento assenza di adv accesso anche da dispositivi mobili playback offline accessibile via API Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 12 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. Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 13 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 14 SPOTIFY: L'ARCHITETTURA Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 15 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 16 SPOTIFY: STATISTICHE Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 17 SPOTIFY: ARCHITETTURA GENERALE Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 18 SPOTIFY: IL BACK END Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 19 SPOTIFY: STORAGE SYSTEM Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 20 SPOTIFY: IL BACK END Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 21 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 22 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 23 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 24 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 25 IL PROTOCOLLO P2P Richiesti per primi i pezzi “più urgenti” Richieste a peer lenti cancellate Buffer underrun: richiesta al server centrale stop upload Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 26 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 27 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 Dipartimento di Informatica Università degli Studi di Pisa Laura Ricci P2P Streaming - Spotify 28