Kodėl DI neveikia mūsų serveryje
Šiame straipsnyje
Kompiuteryje, aptarnaujančiame šią svetainę, neveikia joks kalbos modelis. Apžvalgos skaičiuojamos antrame įrenginyje, kuris paima užduotis, atlieka darbą ir grąžina sakinius.
Priežastis – aritmetika. 3B modelis užima daugiau nei gigabaitą atminties ir kiekvienam atsakymui reikia sekundžių. Sunkiausia visos šios programos duomenų bazės užklausa trunka 581 milisekundę. Sudėjus abu į tą pačią plokštę, 379 000 skaitiklių paveikslėliai laukia už teksto generatoriaus, nors būtent jie yra tikrasis produktas.
Kiek tai kainuoja ir ką suteikia
Kaina – antras kompiuteris ir eilė. Vienu kartu išduodama daugiausia dvidešimt užduočių; eilė turi viršutinę ribą, o kai pilna, naujų nekuriama — jau parašyti sakiniai lieka matomi. Savaitės senumo apžvalga tinka. Trūkstama apžvalga tinka. Statistikos puslapis, lėtas dėl to, kad kažkas kitas plokštėje galvoja, – ne.
Už tai gaunama garantija, kad skaičiavimo eiga niekada nesidalija kompiuteriu su kuo nors nenuspėjamu. Skaitiklio paveikslėlio piešimas – mažas, apribotas darbo kiekis. Teksto generavimas – ne: čia išmatuotas vieno sakinio intervalas yra nuo 5,4 iki 54,3 sekundės, dešimteriopas skirtumas tarp greito ir lėto atvejo, nulemtas dalykų, kurių serveris negali matyti iš anksto.
Kas iškeliauja iš namų
Tai dalis, kurią reikėjo nuspręsti prieš ką nors kuriant, nes jos neįmanoma sutaisyti vėliau.
Antras kompiuteris gauna tik skaičius, kurie jau vieši paties skaitiklio statistikos puslapyje, ir tik iš skaitiklių, kurių statistikos puslapis apskritai viešas — ne privatus, neapsaugotas slaptažodžiu. Užduočių vykdytojas nesužino nieko, ko to puslapio lankytojas negalėtų perskaityti jį atidaręs.
Tai ne malonus šalutinis kodo rezultatas. Kandidatų užklausa pagal tai filtruoja, o be filtro visa funkcija būtų kitų žmonių duomenų perdavimas antram įrenginiui. Jokia „būsime atsargūs“ versija nėra tokia gera kaip nesiųsti.
Bendras principas
Iš to kilo dvi taisyklės, vertingesnės už pačią funkciją.
Neapribotą darbą laikykite atokiau nuo apribotos eigos. Viskas, kieno vykdymo trukmė nenuspėjama net dešimteriopame intervale, neturi būti kompiuteryje, privalančiame atsakyti per milisekundes. Ne „paprastai gerai“ — svarbus lėtas atvejis, ir jis visada ateina.
Nuspręskite, kas gali iškeliauti, prieš nuspręsdami, ką kurti. Jei atsakymas būtų buvęs „vykdytojui reikia ir privačių skaitiklių“, teisinga reakcija būtų ne saugoti perdavimą. Teisinga reakcija būtų tai, kad funkcija neapima privačių skaitiklių – taip ji ir veikia.