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