NRK MGP - Avstemmingskatastrofen

NRK MGP - Avstemmingskatastrofen

Alt gikk i stå hos NRK når nettavstemmingen av MGP skulle gjennomføres.

Vibeke Fürst Haugen fungerende kringkastingssjef sier at 38 millioner emojis er skylden til at systemene gikk ned.

Hvor mye er egentlig 38 millioner emojis?

For å kunne svare på det så må vi først se på hva en emoji er for noe:

  • En emoji er egentlig bare et unicode tegn som vises som et fancy symbol på telefonen eller PCen din.
  • En emoji er 4 bytes i størrelse.
  • En emoji er altså ikke noe annet enn en ganske vanlig bokstav av typen unicode.

I datastørrelse er 38 millioner emojis altså 152 millioner bytes, eller ca 145 MB.

Så mao sier fungerende kringkastingssjef at 145 MB med data knakk hele løsningen deres, og i mitt hode så høres det litt merkelig ut. La oss se litt videre på dette.

Hvor mange oppkoblinger mot løsningen fikk de?

Dersom vi antar at emojiene ble sendt jevnt og trutt under alle låtene og at alle de 10 låtene varte i 3 minutter hver, så betyr dette at de hadde 38 millioner oppkoblinger på 30 minutter. Dette blir da ca 21100 tilkoblinger i sekundet. Dette er relativt høy trafikk som kan skape problemer i flere ledd.

Hvor mye klarer en typisk server å håndtere?

I tiden jeg jobbet i Schibsted med datainnsamling testet vi forskjellige typer oppsett. Standard oppsett klarte vanligvis å håndtere 2-3000 req/s på en typisk datainnsamlings applikasjon. Etter kodeoptimalisering og tuning kom vi opp mot 8-10000 req/s pr server på vårt Node.js oppsett.

Dataene som kom inn ble dyttet inn i en datakø (AWS SQS) og bak denne hadde vi flere applikasjoner som trakk ut data og behandlet denne så raskt det lot seg gjøre.

På denne måten kunne vi håndtere en gjennomsnittlig datamengde på 30-40000 json-objekter pr sekund. Disse objektene var vesentlig større enn en emoji på 4 bytes. Peak trafikk kunne ofte være 3-4 ganger denne trafikken og alt sammen kjørte komfortabelt på 5 servere.

Senere benyttet jeg omtrent samme tekniske prinsipper hos Telia og her behandlet mobiltrafikken, som er vesentlig høyere enn tallene over.

Så hvorfor krasjet løsningen til NRK?

Det blir bare spekulasjoner, men typiske feil ved oppsett av slike løsninger er:

  • Teknisk løsning er for tung i det ytterste leddet og bruker for mye resursser pr forespørsel. Dette betyr igjen at oppskalering krever veldig mange servere og tar mye tid.
  • Stresstestingen er gjennomført med statiske test-data, som ikke representerer vanlig bruk.
  • Pre-heating før trafikken treffer løsningen er uteglemt.
  • Manglende rate limit pr klient.
  • Manglende skalering 🙈

Omtaler i media

Les også:

To år med Kaffebox.no
To år med Kaffebox.no

Jeg har logget alle leveringer, og her er listen.

kort_og_godt / 6.aug 2021 kl.14:58 / 45 sek
SimpleBlog widgets
SimpleBlog widgets

Oversikt over alle Widgeter og innstillingene til disse.

kort_og_godt / 4.aug 2021 kl.15:39 / 0 sek
Test på galleri widget
Test på galleri widget

Det ruller ut en hel del widget om dagen i SimpleBlog. Neste på listen er fotogalleri.

kort_og_godt / 3.aug 2021 kl.18:43 / 25 sek
Test på Google Sheet widget
Test på Google Sheet widget

Her viser jeg medaljeoversikt og 400m hekk finalen fra Tokyo OL pr 3.aug 2021.

kort_og_godt / 3.aug 2021 kl.18:10 / 36 sek
Kaffe må man ha
Kaffe må man ha

Fersk og god kaffe er vanskelig å få tak i…

kort_og_godt / 6.jun 2020 kl.11:23 / 3 min 29 sek
Kan du lære deg programmering på 4 uker?
Kan du lære deg programmering på 4 uker?

Mange kurs og workshopper reklamerer med dette. Er det virkelig slik at du kan gjøre fast-forward og spare tid?

kort_og_godt / 27.feb 2020 kl.13:31 / 19 min 51 sek
NRK MGP - Avstemmingskatastrofen
NRK MGP - Avstemmingskatastrofen

Alt gikk i stå hos NRK når nettavstemmingen av MGP skulle gjennomføres.

kort_og_godt / 16.feb 2020 kl.13:18 / 4 min 5 sek
Velkommen til Kaffe og Kode
Velkommen til Kaffe og Kode

Alle gode kodere drikker god kaffe

kort_og_godt / 18.jul 2018 kl.02:00 / 2 min 13 sek