@solana arkistointimenetelmämme ovat jopa 20 kertaa nopeampia kuin mikään muu markkinoilla. Avasimme koko pinon. Tallenna tämä 🔖 kirjanmerkkeihin Solanan arkistokyselyt ovat tunnetusti hitaita ja epäluotettavia: puuttuvat lohkot, viivästyneet vastaukset, pudonneet tiedot. Näin korjasimme sen 🧵
Tavallinen Solanan arkistopino (Bigtable + validointi-RPC-solmut) on helppo ottaa käyttöön, mutta vaikea skaalautua. Se on CPU-intensiivinen, muistia kuluttava ja kamppailee suurten eräpyyntöjen kanssa. Historialliset tiedot ovat se, missä viive iskee eniten.
Yritimme optimoida Bigtablea. Lisäsin omia taulukoita, viritin kyselyitä, vein sen niin pitkälle kuin mahdollista. Mutta jokainen muutos vaati koko solmun uudelleenkäynnistyksen. Joka kerta 30 minuutista useisiin tunteihin. Joten hylkäsimme sen ja rakensimme kaiken uudelleen: vastaanoton, tallennuksen ja RPC-palvelimen.
Uusi pino: → ArchivalRPC: käynnistyy sekunneissa, ei tunneissa. Skaalaa 200K RPS:ään. → Mukautettu vastaanotto: valikoiva syöttö kustannusten ja vikapisteiden vähentämiseksi. → HBase Bigtablen sijaan: itse isännöity, samassa paikassa sijaitseva, lähes nollaviive.
Nopeus ei merkitse mitään, jos data on väärin. Rakensimme kolminkertaisesti varmennetun vastaanoton: jokainen tietue kirjoitetaan kahdesti, validoidaan ohjelmallisesti ja skannataan jatkuvasti. Jos aukko havaitaan, itseparantuvat putket ottavat sen automaattisesti uudelleen ja korjaavat.
Tulokset alueittain: • 100 000 RPS getTransactionille • 50 000 RPS getSignaturesForAddress • 2 000 RPS getBlockille Jopa 20 kertaa nopeampi kuin mikään muu markkinoilla oleva ratkaisu.
550