Hoofdcategorieën
Device Settings

Twitter zet bittorrent in voor uitrollen serverupdates

Door Jeroen Rosier, vrijdag 16 juli 2010 16:30, views: 13.663

Twitter heeft zijn serverupdateproces tot 12 seconden weten te verkorten. De systeembeheerders konden deze verbetering treffen door gebruik te maken van bittorrent. Voorheen duurde het uitrollen van een update 40 minuten.

Twitter heeft met de zelfgeschreven bittorrentsoftware een tijdsbesparing van 99,5% gerealiseerd. Door de groei in de afgelopen jaren kampte het sociale netwerk met Twitter Git-serverschalingsproblemen bij serverupdates. Met behulp van een enkele Git-server werden de duizenden servers van updates voorzien. Elke server moest apart de update van de Git-server downloaden en installeren, een tijdrovende bezigheid omdat de server zeer zwaar werd belast. Het bedrijf uit San Francisco vond de oplossing in de opensource-wereld in de vorm van bittorrent.

Ze ontwikkelden Murder, vernoemd naar het poëtische woord voor een groep kraaien. Murder is een tool, geschreven in de programmeertalen Python en Ruby, waarmee de updaTwitter bittorrenttes worden aangestuurd. Als client is een gemodificeerde versie van BitTornado gebruikt die onder andere lagere toegangstijden kent, een hogere bandbreedte en geen nat-problemen heeft. Elke server downloadt van één peer en dient zelf ook als één peer voor een andere server. Als de eerste server in de 'ketting' het eerste datapakketje van de update heeft ontvangen, begint de tweede server dat pakketje te downloaden. Zo ontstaat er een ketting van data waarmee de nieuwste software snel verspreid kan worden. De Murder-software is opensource en voor iedereen te downloaden.

Volgende 16:48 Joss Stone speelt Bond-girl in nieuwe game Blood Stone
Vorige 15:58 Toezichthouders: providers moeten te veel privégegevens bewaren
Advertentie

Reacties

«  1  2  3  »


Als je ervan uitgaat dat Twitter een nutteloze dienst is, waarom zou het slim updaten van die dienst dan wel "blijkbaar goed" zijn?

Omdat dat totaal los staat van wat twitter voor diensten bied misschien? 8)7

12 sekonden winst op 40 minuten... lijkt mij bijna te verwaarlozen tijdswinst.

Als ik het goed begrijp duurt het nu nog maar 12 seconden.
it turned a 40 minute deploy process into one that lasted just 12 seconds!

[Reactie gewijzigd door Rik T op vrijdag 16 juli 2010 16:37]


Je kunt het inderdaad op twee manieren lezen. Tot 12 seconden kan betekenen dat het maximaal 11,99999 seconden korter duurt dan voorheen, of dat het verkort is tót 12 seconden.

Áls je de Engelse zin nou per sé op twee manieren wil uitleggen dan staat er òf "het nieuwe proces duurt net geen 12 seconden" òf "het nieuwe proces duurt slechts 12 seconden". Niets in die zin wijst op "12 seconden korter"...

Maar goed, het is natuurlijk een absurde tijdwinst. Het is bijna logisch als daar verwarring over ontstaat ;)

[Reactie gewijzigd door Bugu op vrijdag 16 juli 2010 16:54]


Of men leest de eerste zin van het bericht (na de dikgedrukte tekst):
Twitter heeft met de zelfgeschreven bittorrentsoftware een tijdsbesparing van 99,5% gerealiseerd.

stelletje miereneukers. Die jongen heeft gewoon goed zijn best gedaan, klaar. Prachtige tijdswinst

Rond 4:30 legt hij het uit.

Het is niet gegaan van 40 minuten naar 12 seconden, maar van 900 seconden (15 minuten) naar 12 seconden

Anders lees je nog een keer. Het is van 40 minuten naar 12 seconden gegaan ;)

Van 40 minuten naar 12 seconden...

zoals ik het lees is het van 40min naar 12 seconden gegaan? En niet verminderd.. Beetje foute woordkeuze lijkt me?

Je leest het verkeerd, de serverupdate duurt nu nog maar 12 seconden :)

Warpozio, ze hebben de update tijd van 40 minuten, naar 12 seconden terug geschroefd!

Tot 12 seconden, dus dat is bijna 40 minuten korter.


Nee. Wat hij zegt klopt. Het was ~40 min en is verkort tot 12 seconden. ~40 min - 12s = ~40 min winst.

Is het niet van 40minuten naar 12 seconden?

tot 12 seconden, dus wat eers 40 minuten duurde duurt nog maar 12 seconden. Als het maar 12 seconden sneller zou zijn zou het kunnen liggen aan variable bandbreedte.

apparte naam voor de software MURDER als je dat als freeware zou zien download je dat dus niet :p

Een update duurt nu maar 12 seconden in totaal...

Vreemd dat niemand hier nog op gereageerd heeft, maar volgens mij (en ik weet het niet helemaal zeker, dus pin me er niet op vast) duurt het nu nog maar 12 seconden, in plaats van 40 minuten.

Volgens mij ben je vergeten op F5 te drukken...


Die 40 minuten zijn niet precies genoeg om te mogen spreken van 2388 seconden tijdwinst.

Elke server downloadt van één peer en dient zelf ook als één peer voor een andere server.
Dan vraag ik me af of het niet nog sneller kan als ze die limiet van 1 opschroeven naar 2 of 3.

Ik vraag me eerder af het niet veel betrouwbaarder wordt als je het opschroeft naar 2 of 3. Als nu een server onderuit gaat, dan ligt heel je ketting stil...

Dat is iets wat ik me ook afvraag, waarom van één naar éen? Heb het filmpje vluchtig doorgekeken dus heb niet zo snel gevolgd waarom (als het er al in staat).

Dat vertellen ze op ongeveer 10:40: Doordat de servers met gigabitlinks aan elkaar hangen is de extra tijd die nodig is om het bestand tussen meerdere mensen te versturen verwaarloosbaar. Daarnaast vertelt hij ook nog dat ze de snelheid en connecties limiteren om het overige verkeer niet te hinderen.

Omdat het bittorrent is. Alle bestanden die worden verzonden worden opgedeeld in kleine packages, dus je hebt niet het hele bestand nodig om verder te kunnen seeden. Bovendien werkt het via een tracker dus als er een seeder uitvalt kan de tracker de server die nog niets heeft ontvangen vertellen dat het moet verbinden met een andere server.

In het filmpje zegt hij dat het rapper gaat in een simpele ketting: 1-1-1-1 dan in een complex systeem waarbij 1 server naar meerdere servers zendt bv: 3-3-3-3...

De betrouwbaarheid gaat niet omlaag, hij zoekt gewoon een nieuwe peer die niet aan het uploaden is. Dus als er midden in de chain 1tje uitvalt, gaat degene zonder download link op zoek naar een nieuwe peer, wat degene is vóór(in de chain) diegene die uit is gevallen, het blijft gewoon torrent, alleen met een heel laag peer limit per client.

[Reactie gewijzigd door Scorpion1984 op vrijdag 16 juli 2010 17:32]


12 seconden van 40 minuten? Dat lijkt me nou niet echt een topprestatie...

[Reactie gewijzigd door Japperrrr op vrijdag 16 juli 2010 16:40]


Twitter heeft zijn serverupdateproces tot 12 seconden weten te verkorten
Volgens mij staat er toch echt dat ze nu slechts 12 seconden kwijt zijn met een update, in plaats van 40 minuten ;)

Multicast? Zeker als je servers in hetzelfde data centrum hangen...

dat zou te slim zijn ;)

Hoe stel je je dat voor je? Multicast is leuk bij dingen als streams, maar hierbij niet echt praktisch?

Ooit van Norton Ghost gehoord?

Niet handig, want dan moet je alsnog rekening houden met servers die niet in hetzelfde DC hangen. En dan is het de vraag hoe handig multicast voor een proces als updating is, als je ook al dit p2p-systeem hebt...

Multicast gaat leuk als je alles in 1 plat netwerk heb, wat me sterk lijkt met 1000en servers. Anders moet je multicast gaan routeren, leuke manier om je switches op hun gat te krijgen. (en nee, da's geen router maar een layer 3 switch) Sowieso is multicasten naar 1000en servers redelijk heavy voor net netwerk backbone, ongeacht of je wel of geen plat netwerk heb.

[Reactie gewijzigd door silentsnake op vrijdag 16 juli 2010 18:25]


Dit is geloof ik de eerste keer dat een nuttige en legaal gebruik van torrents wordt beschreven?

Vind het echt een briljante vinding (eigenlijk door z'n eenvoud).

verspreiding van *nix distro's bijvoorbeeld?

Valt me eerlijk gezegd tegen dat er nog niet zoveel andere voorbeelden zijn van een niet-discutabel-legale toepassing van bittorrent dan verspreiding van *nix distributies en WoW updates. Ik bedoel. Ubuntu maakt nog steeds gebruik van centrale servers voor het verspreiden van package updates, terwijl dit waarschijnlijk totaal veel meer bandbreedte kost dan de originele distributies. Sourceforge maakt nog gebruik van een netwerk van internationale servers, en andere uitwisselingsdiensten zoals Megaupload en vrienden doen het ook nog zo.

Je zou denken dat alles wat meer dan 100 MB ruimte inneemt via bittorrent verspreid zou kunnen worden. Denk ook aan video on demand enzo - als je een filmpje kijkt zal het niet storen als je tegelijkertijd delen van datzelfde filmpje uploadt naar andere peers. Het zou zelfs zodanig ingericht kunnen worden in zoiets dat elke abbonnee van een VOD aanbieder een X percentage van elk aangeboden bestand altijd seed, zodat je, in combinatie met slim downloaden (zo dichtbij mogelijk, P4P), de load op den weeereld wijde netwerken en datacentra flink verlaagt.

/rant

Als er maar een master-peer blijft bestaan, dan vind ik het prima.

Dit is geloof ik de eerste keer dat een nuttige en legaal gebruik van torrents wordt beschreven?

Vind het echt een briljante vinding (eigenlijk door z'n eenvoud).
Mwoah, dit is niet de eerste keer dat bittorrent hiervoor gebruikt wordt. Dus geen van beide eigenlijk.

Blizzard maakt/maakte gebruik van torrents om updates te distribueren.

Maakt. In de praktijk (in mijn ervaring) betekent dit echter nog steeds dat je het grootste deel van de download van Blizzard zijn eigen servers afhaalt, maar het helpt wel wat.

MMO's zoals WoW en Final Fantasy XIV gebruiken ook torrentsoftware om clients te updaten. Verder zijn velen opensource programma's via bittorrent te downloaden. Denk aan linux distributies of IDE's zoals Eclipse.

Ontopic:
Ik lees op de MURDER site niets die chain. Lijkt me gek om dan voor P2P / Torrents te kiezen als ze het toch als een chain gaan gebruiken.

Ik lees op de MURDER site niets die chain. Lijkt me gek om dan voor P2P / Torrents te kiezen als ze het toch als een chain gaan gebruiken.
Zoals ik 't begrijp is 't geen echte chain (behalve in het ideale geval dan), maar gewoon een versimpelde versie van BitTorrent. In plaats van van meerdere peers tegelijk te downloaden wordt er maar één gebruikt. Als daar iets mis mee gaat gebruikt 'ie dan gewoon een andere.

[Reactie gewijzigd door CyBeR op vrijdag 16 juli 2010 17:02]


Als je een BT file download, word deze opgedeeld in stukjes, chucks, van bijvoorbeeld 256kb. De initial seeder geeft de eerste chuck door aan zijn leecher, die verzend dat pakketje weer aan zijn leecher en ontvangt vervolgens het volgende pakketje. Hierdoor is de chain van peers lang, maar omdat er 256kb bestanden worden verzonden, is dit veel korter dan een 'gewone' chain.

Wat ik wel jammer vind is dat in het filmpje niet verder word ingegaan met het wegvallen van een peer in de chain, aangezien deze dan breekt. Ook wordt in het filmpje vertelt dat DHT is uitgezet, dus dat word ook niet gebruikt.

Een peer zal nadat hij klaar is met downloaden nog 30 seconden seeden voor servers waarvan hun seeder is uitgevallen. Wordt verteld in filmpje.

Veel Linux distros zijn met bittorrent te downloaden zelfde voor open office... ;)

Onbegrijpelijke en ongeinformeerde reactie. Torrents zijn altijd ontworpen geweest om zo efficient mogelijk grote hoeveelheden dataverkeer te delen. Dit kent heel veel nuttige toepassingen zoals het genoemde updatemodel van World of Warcraft.

Verder is het torrenten helemaal geen illegale bezigheid; dat is hetzelfde als zeggen dat internet illegaal is omdat je daar films van kunt downloaden zonder toestemming van de copyrighthouder. Torrenten is slechts het medium; het leent zich toevallig ook heel goed voor piraterij. Mensen gebruiken het voor illegale doeleinden, maar de technologie is erg vernuftig.

Je leest verkeerd, het is van 40 minuten naar 12 seconden gegaan.

Dit was in February al aangekondigd en kon niet wachten tot het er eindelijk was. Met een server park als twitter, wat makkelijk in de honderden, zo niet duizenden servers loopt update tijden verkorten naar 12 seconden is gewoon bruut, kon dit maar gemakkelijk geport worden naar AD.

Ik snap niet goed waarom er wordt geredeneerd dat een 1-op-1 ketting beter werkt dan een één-op-veel. (peer download maar bij één seed tegelijkertijd maar één seed kan wel meerdere peers behelpen). Ik neem aan dat we het hier over minstens een paar hondertal servers hebben dus lijkt mij één 12 seconden update met een ketting constructie eigenlijk een beetje ongeloofwaardig aangezien het verbinden, downloaden, sluiten van een connectie waarschijnlijk op z'n minst toch 200ms duurt. (12sec ~= 60 clients)

[Reactie gewijzigd door analog_ op vrijdag 16 juli 2010 16:43]


De updatetijd is 12 seconden. Misschien kan jij er nog 2-3 seconden vanaf doen, maar dan maak je het nodeloos complex, niet?

Alle peers werken op 10MB/sec om een netwerkoverload te voorkomen. De eerste peer kan beginnen aan zijn upload op het moment dat zijn eerste pakket voltooid is.
Men heeft het over een update van ongeveer 100MB, deel dat door 10MB/sec en je krijgt 10 seconden dat nodig is voor de transfer.

Tegen de tijd dat de originele seed klaar is met zijn complete transfer, is de laatste server allang begonnen met zijn download van de op een na laatste server. En vanwege de 10MB/s cap is het niet nodig om te downloaden van meer dan 1 peer.

Elke server gebruikt slechts enkele milliseconden (niet honderden) om te communiceren met de tracker en om vervolgens een connectie te maken met de server waarvan deze de update binnen haalt. Daarna volgt de secondenlange transfer. Je kunt er op rekenen dat na de eerste twee seconden alle duizenden servers begonnen zijn met de download van de update.
«  1  2  3  »

Op dit item kan niet meer gereageerd worden.

Volgende 16:48 Joss Stone speelt Bond-girl in nieuwe game Blood Stone
Vorige 15:58 Toezichthouders: providers moeten te veel privégegevens bewaren
VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011