Valg i USA: Twitter klarede 9.965 beskeder i sekundet ved skift fra Ruby til Java

8. november 2012 kl. 09:2810
Trafikken på Twitter satte ny rekord på valgaftenen for det amerikanske præsidentvalg, som også var en ilddåb for den nye platform baseret på Java.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

I gennemsnit blev der sendt et 'tweet', en besked på Twitter, 9.965 gange hvert sekund tirsdag aften, i takt med at resultaterne indløb på valgaftenen i USA. Twitter har aldrig tidligere set så stor trafik over længere tid, men tjenesten holdt sig kørende, og en del af æren tilfalder et platformskifte.

I et blogindlæg fortæller Mazen Rawashdeh, teknisk driftschef for Twitter, at selskabet er i færd med at skifte fra en Ruby-platform til Java, og det var med til at klare den store trafik.

Alle beskeder sendt via mobile Twitter-klienter blev omdirigeret til Twitters nye Java-baserede backend, hvor JVM-stakken kunne følge med trods presset.

I de første år var Twitter jævnligt plaget af nedbrud, som førte til den stående vittighed om Twitters 'Fail Whale' på grund af den illustration med små fugle, der løftede en hval ud af vandet, som Twitter brugte på den fejlside, der blev vist i forbindelse med nedbrud.

Artiklen fortsætter efter annoncen

Siden har Twitter arbejdet på at optimere Ruby-koden, men er altså nu i færd med at skifte til en Java-platform i stedet.

Den højeste trafik på valgaftenen tirsdag var 15.107 beskeder i løbet af ét sekund, og det indtraf ikke overraskende klokken 20.20 amerikansk vestkysttid, hvor valgstederne på vestkysten af USA var lukket, og CNN erklærede Barack Obama som vinder af præsidentvalget.

I løbet af ét minut blev der sendt 874.560 beskeder. Hidtil har Twitter hovedsageligt set kortvarige eksplosioner i trafikken under eksempelvis store sportsbegivenheder som OL og kendissladder, som da Beyoncé annoncerede, at hun var gravid.

»Det viser en ændring i måden, hvorpå folk bruger Twitter, at vi ser et konstant højdepunkt i løbet af en hel begivenhed. Tallene fra tirsdag aften beviser, at Twitter-tjenesten kan holdes stabil, selvom brugernes adfærd har ændret sig,« skriver Mazen Rawashdeh.

10 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
10
9. november 2012 kl. 01:12

Hvad er hurtigt ?

Er det tiden der går fra en forretnings idé til der er transaktioner på server ? (Eller fra forretningsidé til penge på kontoen), her vil C formodentligt være et af de dårligste valg man kan træffe...

Er det antal transaktioner per sekund i et meget specifikt domæne, her kunne C måske være et godt valg...

Lige nu er noget af det hurtigste (i begge fortolkninger) man kan finde Python skrevet i Python (PyPy), det kan næsten ikke lyde mindre intuitivt.

8
9. november 2012 kl. 00:26

"You can always count on Americans to do the right thing - after they've tried everything else." som Churchill sagde. Jeg gaetter paa at de kunne have skrevet et select() (eller lign.) loop med et par tilstandmaskiner i C, og vaere naaet til 10k msgs/s for mange aar siden. Men the cool kids skulle lige proeve alle de smarte nye sprog i bogen foerst.

9
9. november 2012 kl. 00:54

Jeg gaetter paa at de kunne have skrevet et select() (eller lign.) loop med et par tilstandmaskiner i C, og vaere naaet til 10k msgs/s for mange aar siden. Men the cool kids skulle lige proeve alle de smarte nye sprog i bogen foerst.

Hvis Twitter var startet ud med at skrive deres systemer i C, var de nok aldrig kommet ud over startrampen og mistet deres funding. Deres udviklere kendte til Ruby og Ruby on Rails, så hvorfor ikke implementere deres vision i det miljø som de er mest vante i? Rails får dig utroligt hurtigt i gang, så de kunne launche hurtigere, og ændre systemerne undervejs.

Nu har de så fået succes, og deres scaling halter, og så giver det mening at begynde at optimere og måske flytte sprog.

De har vist kørt et stykke tid med Ruby foran, og JVM (Scala) på deres backend. De var også store på at hjælpe til med JRuby (Ruby på JVM'en), men det var sløvt til deres brug.

Fordi du startede med et quote, vil jeg slutte med et:

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil"

Donald Knuth

6
8. november 2012 kl. 12:48

Men hvor mange kunne Ruby klare pr. sekund? Det fremgår ingen steder hvor stor gevinsten var..

7
8. november 2012 kl. 14:52

@Stefan: Jeg tror ikke man kan sammenligne det 1:1, da de nok også har fornyet "teknik og design", og ikke lavet en direkte omskrivning af koden.

4
8. november 2012 kl. 10:24

Ja, men jeg kan stadig ikke rigtigt finde noget mere præcist om hvor meget de skriver i hhv. Java og Scala.

De har ledige stillinger, det er nok den nemmeste måde at finde ud af det på ;-)

Men alvorlig talt synes jeg det tyder på at være et kludetæppe af Java, Scala, Clojure og Ruby, med C-komponenter rundt omkring. Eksempelvis Storm, som er skrevet i Java med en del støttekomponenter i Clojure.

Deres projekter på Github er da også rimelig 'polyglotiske'

5
8. november 2012 kl. 11:32

Mon de bruger Akka http://typesafe.com/technology/akka ? Det vil være oplagt uanset om de vælger at bruge Scala eller Java API.

Akka er en implementering af ideerne fra Erlang Actors.

1
8. november 2012 kl. 09:46

Jeg troede faktisk at Twitter brugte Scala.

Scala kører selvfølgeligt også på Java platformen, men det er et noget mere interessant valg.

En hurtig søgning på google giver dog ikke rigtig nogen info om i hvilken udstrækning de bruger Scala.

3
8. november 2012 kl. 10:01

Twitter's solution was to migrate some of its Ruby code to a new server stack running on the JVM. Initially, the company's development team avoided stock Java in favor of Scala, an alternative JVM language that combines aspects of object-oriented and functional programming. Today, Twitter's software is built from a mix of Scala and ordinary Java code.

Ja, men jeg kan stadig ikke rigtigt finde noget mere præcist om hvor meget de skriver i hhv. Java og Scala. Jeg mistænker at de selv skriver primært Scala, men at de bruger en del Java-ting (f.eks. Netty)