Lietojumam specifiski ZK ķēdes: Precizitāte, veiktspēja un mērogošanas paradokss
Pēdējās dažās dienās esmu iegrimis arhitektūras modeļos aiz sistēmām, piemēram, RIVER, PIPPIN un Kachina sadaļā — un jo dziļāk es skatos, jo skaidrāk kļūst dizaina filozofija. Tas, kas sākotnēji šķita kā nišas optimizācija, tagad liekas kā apzināta, gandrīz filozofiska novirze no galvenā virziena nulles-zināšanu (ZK) sistēmās.
Vismodernākās ZK pierādījumu sistēmas ir veidotas vispārējas lietošanas vajadzībām. Tās mērķē atbalstīt plašu lietojumprogrammu klāstu vienā ietvarā, prioritizējot elastību un kompozīciju. Šai pieejai ir acīmredzamas priekšrocības: izstrādātāji var izstrādāt vienu reizi un izvietot to dažādos kontekstos, gūstot labumu no kopīgiem rīkiem, infrastruktūras un standartiem.
Kachina, tomēr, izvēlas fundamentāli atšķirīgu ceļu.
Nevis optimizējot universālumam, tas pievērš uzmanību specifikai. Katru lietojumprogrammu pavada tās pašas pielāgotās shēmas—pēc pasūtījuma izstrādātas, lai atspoguļotu tās precīzo aprēķinu loģiku. Tā vietā, lai piespiestu dažādas lietojumprogrammas vispārējā pierādījumu sistēmā, Kachina pārveido pierādījumu sistēmu ap pašu lietojumprogrammu.
Šī atšķirība nav tikai arhitektoniska—tā ir dziļi sekas.
Vispārīgas sistēmas pēc savas būtības nes sev līdzi pārslodzi. Tām jāspēj pielāgoties pilnam iespējamo aprēķinu spektram, pat ja konkrētā lietojumprogramma izmanto tikai nelielu daļu no šīs spējas. Tas noved pie neefektivitātes pierādījumu ģenerēšanā, verificēšanas laikā un dažreiz pat drošības pieņēmumos.
Lietojumprogrammām specifiskas shēmas, savukārt, noņem šo pārmērību. Tās darbojas ar šaurāku fokusu, ļaujot:
Plāni pierādījumi: Mazākas, efektīvākas reprezentācijas
Ātrāka ģenerēšana: Samazināta aprēķinu sarežģītība
Spēcīgākas garantijas: Mazāk vietas neparedzētai lietošanai vai nepareizai konfigurācijai
Būtībā viņi tirgo elastību pret precizitāti—un to darot, atslēdz līmeni veiktspējas, kuru vispārējās sistēmas cenšas sasniegt.
Bet šis dizaina izvēle ievieš jaunu spriedzi: mērogojamību ekosistēmas līmenī.
Lai gan ir salīdzinoši vienkārši izveidot pāris augsti optimizētu shēmu, izaicinājums palielinās, pieaugot lietojumprogrammu skaitam. Katrs jaunais lietošanas gadījums prasa savu shēmas dizainu, auditēšanas procesu un apkopi. Tas, kas sākas kā veiktspējas priekšrocība, var attīstīties par operatīvu slogu.
Tas rada kritisku jautājumu:
Vai lietojumprogrammām specifiskas shēmas ir augstas veiktspējas nākotnes pamats—vai arī pudeļu kakls, kas gaida, lai parādītos?
No vienas puses, pielāgotie shēmas ļauj katrai lietojumprogrammai darboties ar maksimālu efektivitāti, stiprinot sistēmu kopumā, specializējoties. No otras puses, kopējās izmaksas, kas saistītas ar šo shēmu izstrādi un pārvaldību, var kavēt mērogojamību, palēnināt inovācijas un fragmentēt ekosistēmu.
Atbilde, iespējams, nav izvēlēties vienu ekstremitāti, bet atrast līdzsvaru.
Hibrīdie modeļi var rasties—kur kodolprimitīvi paliek vispārīgi, kamēr veiktspējai kritiski komponenti izmanto lietojumprogrammām specifiskas optimizācijas. Rīku un automatizācija var arī spēlēt izšķirošu lomu, samazinot shēmu izveides berzi un ļaujot izstrādātājiem mērogot bez precizitātes upurēšanas.
Kachina pieeja ir drosmīgs apgalvojums: ka veiktspēja, pareizība un apzināta dizaina ir vērti pievienotajai sarežģītībai. Vai šis modelis mērogos eleganti vai slodze to nosver, būs atkarīgs no tā, kā attiecīgā ekosistēma attīstās.
Pagājušajā laikā tas ir pārliecinošs pretarguments “viena izmēra visiem” filozofijai—atgādinājums, ka dažkārt asākie dizaini nāk no apjoma sašaurināšanas, nevis paplašināšanas.
Un tā spriedze? Tieši tur inovācija parasti plaukst.#night @MidnightNetwork $NIGHT 