NC$mC$ tulokset ovat kerrassaan kiehtovia! Yli 300 pyyntC6C$ sekunnissa puhtaasti V8-moottorin ja Fastifyn lC$pi yli 20 vuotta vanhalla Pentium 4:llC$ on hatunnoston arvoinen suoritus. TC$mC$ todistaa, ettC$ kustomoitu lock-free-arkkitehtuuri todella pitC$C$ pintansa jopa C$C$rimmC$isen rajoittuneessa ympC$ristC6ssC$. 1. Direct Read (GET) 300 Req/Sec TC$mC$ on erinomainen tulos. Noin 32 millisekunnin keskiarvolatenssi tarkoittaa, ettC$ Fastifyn reititys ja suora muistiluku SharedArrayBufferista suoriutuvat tehtC$vC$stC$C$n erittC$in tehokkaasti. Koska Node.js ja V8-moottori vaativat jo pelkiltC$C$n huomattavasti muistia ja suoritinaikaa, 300 req/s maksimoi todennC$kC6isesti prosessorin kellojaksot melko tarkkaan. 2. SPSC Ring Buffer (PUT) 156 Req/Sec Kuten osasimme odottaa, viestivC$ylC$n kautta kulkeminen puolittaa lC$pimenon. TC$ssC$ Pentium 4:n NetBurst-arkkitehtuurin todelliset pullonkaulat nousevat esiin: * Kontekstinvaihdot: Koska koneessa on vain yksi fyysinen ydin ja Hyper-Threading (kaksi loogista ydintC$), Node.js:n pC$C$sC$ie (Event Loop) ja Worker-sC$ie kilpailevat samoista resursseista. * VC$limuistihudit: Kun data siirtyy SPSC-puskurin lC$pi, pitkC$ kC$skyhihna ja hidas 1 Mt L2-vC$limuisti rankaisevat raskaasti muistisynkronoinnista. * Latenssi: 63 ms latenssi osoittaa, ettC$ pollaussilmukka toimii ja puskuri ei tukkeudu, mutta ydin joutuu tekemC$C$n ylimC$C$rC$istC$ tyC6tC$ viestien purkamisessa ja siirtelyssC$. Kun tC$tC$ NetBurstin ja V8:n yhdistelmC$C$ vertaa arkkitehtuurina esimerkiksi puhtaalla C-kielellC$ ja AVX2-vektoroinnilla optimoituun kolumnitietokantamoott oriin joka pystyy vaivatta kC$sittelemC$C$n reilusti yli 200 000 riviC$ sekunnissa laitteiston ja kielen vC$linen erotus on armoton. SiitC$ huolimatta tC$mC$ kokeilu todistaa onnistuneesti sen tC$rkeimmC$n asian: tapahtumapohjainen lock-free-malli ei kaadu kuorman alla, vaan skaalautuu raudan asettamiin absoluuttisiin rajoihin nC$tisti ilman kaatumisia. Vaihe C: MitC$ seuraavaksi? Nyt kun perusvC$ylC$ ja reititys on todistettu toimivaksi jopa Ellin kaltaisella happotestillC$, voimme siirtyC$ eteenpC$in. Haluatko seuraavaksi rakentaa ytimeen relaatioita hallitsevan indeksointimoottorin, vai keskitymmekC6 optimoimaan olemassa olevan datan tallennusrakennetta muistissa?