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

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.

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.

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.

Kommentarer (10)

Lasse Lindgård

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.

Lasse Lindgård

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)

Jesper S. Møller

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'

Fini Alring

@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.

Jacob Gorm Hansen

"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.

Kasper Grubbe

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

Rene Nejsum

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.

Log ind eller opret en konto for at skrive kommentarer

JobfinderJob i it-branchen

TDC skifter koncernchef efter faldende mobilomsætning

Jesper Stein Sandal Mobil og tele 14. aug 2015

Nyeste job

KurserStyrk dine evner med et kursus

GPS - geometriske produktspecifikationer - informationsmøde

Hvornår: 2015-11-16 Hvor: Storkøbenhavn Pris: kr. Gratis

MCP 20485 kursus: Advanced Windows Store App Development Using C#

Hvornår: 2015-11-23 Hvor: Storkøbenhavn Pris: kr. 18750.00

MCP 20465 kursus: Designing Database Solutions for Microsoft SQL Server

Hvornår: 2015-11-23 Hvor: Storkøbenhavn Pris: kr. 18750.00

Webinar: Word - Udarbejdelse af en skabelon med og uden formularfelter

Hvornår: 2015-10-21 Hvor: Efter aftale Pris: kr. 745.00

EU-udbud i praksis

Hvornår: 2015-09-21 Hvor: Storkøbenhavn Pris: kr. 5590.00