lördag 15 oktober 2011

Egendriftat alternativ dropbox

Äntligen har det dykt upp ett opensource-program för att köra en egen dropboxliknande tjänst!
Har inte hunnit kolla alls, men noterar länken så jag kommer ihåg det sen. Tyvärr är websidan för tillfället död, men sidan för nedladdning av källkoden lever:
sparkleshare

Hur spotify fungerar

Det finns en mycket intressant artikel som berättar om hur spotify fungerar (i vissa avseenden).
Klienten strömmar data både från spotifys servrar och andra klienter. Hur detta sker berättas i artikeln som går att läsa här:
http://www.csc.kth.se/~gkreitz/spotify-p2p10/

Väldigt intressant. Spotifyservrarna står för ca 9% av lasten, 36% via andra klienter och resten från lokalt lagrade data. Det betyder alltså att serverbelastningen är en femtedel av vad den hade varit utan p2p-funktionen!
Genom att börja ladda låtar från servern lyckas man hålla nere fördröjningen från "play" till att det börjar spela till imponerande 256 ms (medianvärde).

Artikeln beskriver hur man begränsar t ex antalet anslutningar och andra parameterar för att förenkla implementationen av både klient och server, och att minska belastningen på folks nätverksutrustning.

Undrar hur stor lasten är totalt? Totalt finns ca 10 miljoner användare(källa: http://www.csc.kth.se/~gkreitz/spotify-p2p11/). Om jag gissar att genomsnittsanvändare lyssnar på ca 20 låtar á 4 minuter om dagen (en vild gissning) och denna delas jämnt över ca 12 timmar (aktiviteten är störst dagtid, lasten är nästan sinusformad, se http://www.csc.kth.se/~gkreitz/spotify-p2p10/, detta motsvarar toppvärdet 2 ggr genomsnittslasten)
så blir totala lasten som högst under dagen
10e6 användare*20 låtar*240 s/låt/(12 h*3600 s/h) * 160 kbit/s=178Gbit/s

Med avlastning enligt ovan behöver servrarna bara ta hand om 9% av detta vilket blir 16 Gb/s. Det är en rätt stadigt belastning. En gigabitanslutning för företag kostar ca 10kSEK/mån exkl. moms sist jag kollade (2008?). Om vi bortser från volymrabatt betyder det att bandbredden per användare kostar ca 16*10e3/10e6=2 öre per användare och månad. (man behöver lite marginal för sällsynta tillfällen, så låt marginalen kvittas mot volymrabatten för att slippa räkna mer noggrant.)
Hur många servrar behöver man? Säg att en server kan streama musik i 200 Mbit/s (trots allt är det rätt jobbigt eftersom alla klienter vill åt olika filer, jobbigt jämfört med om 10 miljoner klienter ska ladda ner samma ubuntu-iso som då kan cachas), då behövs ca 100 servrar (några går väl åt för att sköta trackern också). Sen ska det skickas ut reklam, hanteras inloggning etc men det måste vara trivialt jämfört med att strömma musik i 16Gb/s. Med 200W per server (man får hoppas de bygger energisnålt!) blir det ca 100*200W*730 timmar/månad*1 kr/kWh=15 kSEK elräkning per månad, ca 0.15 öre per användare och månad.
Säg att det går åt dubbelt så många servrar (någonstans måste musiken lagras) så är det ett väldigt kostnadseffektivt sätt att distribuera musik. Har för mig att en cd kostar tio kr att tillverka.

Stor brasklapp för att jag klantat till något i beräkningarna ovan. Har inte dubbelkollat, utan skrivit medan jag tänkt.