Skalar rapidu tal-ħażna online biex taqdi aktar minn biljun utent ta’ ChatGPT
Kif adattajna Habitat, il-pjattaforma tal-ħażna tal-applikazzjonijiet tagħna f’Python, għal tkabbir bla preċedent.
Minn Jon Lee, Chaomin Yu u Ben Ries, Membri tal-Persunal Tekniku
Kull prodott ta’ OpenAI jiddependi fuq aċċess rapidu u affidabbli għad-dejta, kemm jekk xi ħadd qed jidħol, jiċċekkja s-settings ta’ Codex jew jibda konverżazzjoni ġdida f’ChatGPT. Kull waħda minn dawn l-azzjonijiet tista’ teħtieġ bosta tfittxijiet separati fid-dejta qabel il-prodott ikun jista’ jwieġeb. Jekk dawk it-talbiet idumu, il-prodott jinħass li jaħdem bil-mod. Jekk dawk it-talbiet ifallu, il-prodott jieqaf jaħdem għalkollox.
Habitat hija l-pjattaforma tal-ħażna online li bnejna biex il-prodotti ta’ OpenAI jaċċessaw l-informazzjoni meħtieġa malajr u b’mod affidabbli. Habitat issa jieħu ħsieb aktar minn 70 miljun talba kull sekonda u jappoġġja prodotti użati minn aktar minn biljun persuna fil-ġimgħa, fi kważi 40 reġjun ġeografiku. Habitat tnieda għall-ewwel darba biex jappoġġja l-GPTs f’DevDay 2023, bħala librerija Python sempliċi min-naħa tal-klijent imqabbda ma’ bażi tad-dejta waħda. Illum huwa sistema distribwita kumplessa li taqdi aktar minn 500 petabyte ta’ dejta.
Figura 01 · X’inhu Habitat?
Pjattaforma tal-ħażna online
Habitat hija l-pjattaforma tal-ħażna online li bnejna biex il-prodotti ta’ OpenAI jaċċessaw l-informazzjoni meħtieġa malajr u b’mod affidabbli.
- Talba
- Rispons
- Bidliet (CDC)
Il-bini u t-tħaddim ta’ infrastruttura fuq din l-iskala mhuwiex faċli, iżda lanqas huwa partikolarment diffiċli. Dak li għamel is-sitwazzjoni tagħna unika kien ir-ritmu bla preċedent li bih kellna niskalaw biex nappoġġjaw tkabbir enormi fl-utenti u fid-domanda għall-prodotti, filwaqt li nibnu pjattaforma matura. Spiss, l-inġiniera tas-sistemi jibnu għal skala 10 darbiet akbar u jittamaw li sservi għal ftit snin waqt li jħejju għall-10 darbiet li jmiss. Fil-każ tagħna, għal dawn l-aħħar tliet snin kbirna aktar minn 10 darbiet sena wara sena. Għalhekk, il-bini u t-tħaddim ta’ Habitat kienu sensiela ta’ deċiżjonijiet tattiċi u sekwenzar: nifhmu kull komponent sal-aktar livell baxx biex nieħdu l-massimu mill-istack eżistenti, filwaqt li nevitaw nuqqasijiet fil-kapaċità tal-ħażna u tal-compute biex niksbu żmien għal investimenti fundamentali.
- 70M+
talbiet kull sekonda
- 1B+
persuna fil-ġimgħa
- 500 PB+
dejta
Hekk kif OpenAI kibret, Habitat kellu jikber magħha: l-ewwel sar affidabbli biżżejjed għat-traffiku kritiku tal-prodotti, imbagħad veloċi biżżejjed għall-utenti globali u fl-aħħar kapaċi jopera b’ħila fuq skala enormi. Din il-pubblikazzjoni hija l-ewwel waħda minn sensiela f’żewġ partijiet dwar kif skalajna l-ħażna online. Hawn se naqsmu kif evolva Habitat, għaliex qlibnieh minn librerija għal servizz u kif estendejna servizz miktub f’lingwa mhux komuni għal serving stack—Python—biex sar saff affidabbli ta’ pjattaforma tal-ħażna.
F’pubblikazzjoni futura se nispjegaw fid-dettall kif ksibna affidabbiltà multi-tenancy fuq skala kbira, l-istrateġija tagħna f’saffi għall-ottimizzazzjoni tal-qari u kif skalajna s-sħubija ma’ Azure Cosmos DB biex tlaħħaq b’mod affidabbli ma’ domanda bla preċedent.
Habitat beda minn idea sempliċi: l-inġiniera tal-prodott m’għandhomx għalfejn jaħsbu dwar il-ġestjoni tal-bażi tad-dejta. Habitat tnieda għall-ewwel darba biex jappoġġja l-GPTs f’DevDay 2023 bħala librerija Python żgħira li kienet tikkomunika mas-server ewlieni ta’ ChatGPT. Kien jappoġġja sett żgħir ta’ operazzjonijiet li internament kienu jimmappjaw mal-applikazzjoni tal-bażi tad-dejta, Azure Cosmos DB.
Ix-xogħol tal-librerija kien li tagħti lit-timijiet tal-prodott mod sempliċi kif jaħżnu u jirkupraw id-dejta mingħajr ma jkollhom jitgħallmu d-dettalji sottostanti. Habitat kien jieħu ħsieb ix-xogħol meħtieġ: jiddetermina x’tip ta’ dejta kienet involuta, minn fejn kellha tiġi jew fejn tmur, jekk it-talba kinitx permessa u l-bqija.
L-inġiniera tal-prodott m’għandhomx għalfejn jieħdu ħsieb it-tfittxija fl-iskemi, ir-routing, l-awtorizzazzjoni, il-kriptaġġ, is-serjalizzazzjoni, l-iffurmar tat-talbiet u l-pooling tal-konnessjonijiet. Lanqas ma kellhom għalfejn iqisu minn fejn tiġi d-dejta: Azure Cosmos DB, caches jew tipi oħra ta’ ħażna.
Figura 02 · Servizz Habitat
Fluss simplifikat ta’ talba Habitat
Billi sseparajna l-loġika tal-ħażna f’servizz indipendenti, ħloqna punt uniku ta’ kontroll għall-iskjeramenti, l-osservabbiltà u t-titjib tal-pjattaforma.
- Talba
- Rispons
Din il-librerija Python ħadmet tajjeb u Habitat ġie adottat malajr mill-inġiniera tal-prodott f’OpenAI, minkejja li ma kienx hemm inizjattiva ċentrali biex jitwarrab l-użu self-service ta’ Postgres u Azure Cosmos DB.
Hekk kif evolvew il-ħtiġijiet tal-prodott, kien ukoll faċli għall-iżviluppaturi jżidu mal-librerija kondiviża appoġġ għal karatteristiċi bħal caching min-naħa tal-klijent, kompressjoni jew kriptaġġ.
Sa nofs l-2025, Habitat kien laħaq il-limiti tiegħu bħala implimentazzjoni min-naħa tal-klijent. Hekk kif is-saff ta’ Habitat sar aktar kumpless u żdied l-għadd ta’ servizzi ta’ OpenAI, il-bidliet fil-protokoll kompatibbli b’lura ma baqgħux fattibbli.
F’każ wieħed, ridna nnaqqsu l-impatt ta’ qtugħ f’reġjun wieħed fuq l-aktar settijiet kritiċi ta’ dejta billi nimmigrawhom lejn grupp ta’ kontijiet Azure Cosmos DB distribwiti reġjonalment. Din il-bidla kienet teħtieġ loġika addizzjonali tar-routing fil-klijent, diżattivata wara feature flag, it-tnedija tagħha għall-klijenti kollha u mbagħad l-attivazzjoni tal-feature flag.
Il-koordinazzjoni tal-iskjeramenti fost għexieren ta’ servizzi u l-ħidma ma’ kull tim biex jitnedew damet ġranet sħaħ. Qabel attivajnieha, indunajna li ridna nintroduċu xi shadowing biex niżguraw li l-loġika tax-sharding kienet korretta. Biex inniedu dak kellna bżonn jumejn oħra. Soluzzjoni għal bug f’xi ħaġa li ndunajna li kienet ħażina? Jumejn oħra. Fl-aħħar konna lesti nattivaw il-flag, iżda tim minnhom reġġa’ lura s-servizz tiegħu għal raġunijiet mhux relatati ma' klijent preċedenti b'bug, li kkawża proprju l-qtugħ fis-servizz li tant ħdimna biex nevitaw.
Il-bidliet fil-librerija tal-klijent kienu jeħtieġu koordinazzjoni kumplessa fost għexieren ta’ servizzi, proċess li sar dejjem aktar fraġli, ineffiċjenti u suxxettibbli għal fallimenti operazzjonali. Biex innaqqsu din il-firxa operazzjonali fi skjeramenti futuri, iddeċidejna li nifirdu lil Habitat f'servizz għalih.
Billi sseparajna l-loġika tal-ħażna f’servizz indipendenti, ħloqna punt uniku ta’ kontroll għall-iskjeramenti, l-osservabbiltà u t-titjib tal-pjattaforma. Minflok niġġestixxu aġġornamenti frammentati, stajna nimplimentaw titjib ċentralment u nagħtu benefiċċji immedjati lil kull prodott ta’ OpenAI.
Servizz ċentralizzat jagħtina wkoll punt uniku ta' konġestjoni fejn nipprovdu l-aktar elementi b’saħħithom għas-sigurtà u l-privatezza tad-dejta. Fis-servizz Habitat nistgħu ninfurzaw ċentralment il-politiki tal-kontroll tal-aċċess, nirreġistraw l-awditi u nillimitaw l-aċċess għal riżorsi tal-ħażna sottostanti bħal Azure Cosmos DB. Habitat għandu rwol kritiku fil-protezzjoni tad-dejta tal-utenti u fil-prevenzjoni ta’ aċċess mhux awtorizzat minn atturi esterni, interni u aġenti.
Konna nafu li kellna bżonn servizz, iżda għalissa ma ridniex nitilqu minn Python, minkejja l-ispiża addizzjonali tiegħu bħala servizz. L-użu ta’ Python għal servizz b’throughput għoli żied il-latenza tan-network u l-ispejjeż tal-iskalar tas-CPU u tal-memorja meta mqabbel mal-eżekuzzjoni lokali tal-librerija. Barra minn hekk, fhimna li l-ineffiċjenzi ta’ Python ma kinux se jkunu aċċettabbli fuq skala 100 darba akbar u għalhekk kitba mill-ġdid kienet kważi ċerta.
Madankollu, qisna dan bħala dejn tekniku meħud b’mod strateġiku. L-għan ewlieni tagħna dak iż-żmien ma kienx li nottimizzaw l-ispejjeż jew ir-riżorsi, iżda li nħallu lill-iżviluppaturi tal-prodott jimxu ’l quddiem u niksbu stabbiltà fil-pjattaforma. Billi aċċettajna temporanjament il-kompromessi fil-prestazzjoni ta’ servizz Python, stajna nagħtu prijorità lil sfidi aktar immedjati, nistabbilixxu l-APIs ewlenin u nibnu infrastruttura robusta.
Għamilna wkoll imħatra kkalkulata li l-progress rapidu tal-mudelli tal-kodifikazzjoni tagħna kien se jissimplifika t-triq teknika fil-futur. Ħsibna li, meta ssir meħtieġa migrazzjoni sħiħa minn Python, Codex u GPT kienu se jagħmluha possibbli. Fl-aħħar, dik l-imħatra rriżultat korretta.
It-tħaddim ta’ Habitat bħala servizz Python ma kienx ideali għall-prestazzjoni, iżda kien għażla meħtieġa. Python tħallina nimxu malajr, iżda dan ma jfissirx li stajna ninjoraw ir-riskji u naċċettaw latenzi ferm agħar. Meta talba medja ta’ utent twassal għal mijiet ta’ sejħiet lill-bażi tad-dejta, l-aktar sejħa tal-bażi tad-dejta bil-mod tkun dik li jħoss l-utent. Sibna li l-isfida ewlenija fit-tħaddim ta’ servizz ta' Python fuq din l-iskala hija l-ġestjoni tal-latenzi estremi.
Asyncio jgħin lil Python teżegwixxi workloads marbuta mal-I/O fl-istess ħin, iżda ma jegħlibx il-GIL ta’ Python u ma jipprovdix paralleliżmu tas-CPU. Minbarra l-proxying ta' talbiet b’ħafna I/O, Habitat jieħu ħsieb bosta responsabbiltajiet u kompiti fl-isfond intensivi għas-CPU: routing, kompressjoni, kriptaġġ, checksums, verifika tal-istat downstream, shadowing u hedging tat-talbiet.
B’tant workloads għas-CPU u kompiti fl-isfond fis-servizz tagħna, id-dewmien fl-iskedar ta’ asyncio jista’ faċilment jiddomina l-latenza estrema tat-talbiet. Qabel l-irfinar għat-tnedija inizjali, fit-traċċi ta’ talbiet b’latenza p99 jew ogħla rajna li, għalkemm il-ħażna downstream wieġbet malajr, it-talbiet spiss waqfu jistennew li l-coroutine responsabbli terġa’ tiġi skedata biex tipparsja r-rispons.
Figura 03 · Traċċar tad-dewmien ta’ asyncio
Il-konkorrenza mhijiex paralleliżmu tas-CPU
Asyncio ta’ Python jippermetti pproċessar konkorrenti tat-talbiet, iżda talba waħda biss tiġi eżegwita fuq it-thread tas-CPU kull darba. Dan għandu impatt kbir fuq il-latenzi tat-talbiet meta jkun hemm ħafna xogħol tas-CPU.
Ftit xogħol tas-CPU
Passi qosra ta’ Python; l-istennijiet tal-I/O jikkoinċiduĦafna xogħol tas-CPU
Passi twal ta’ Python iżommu r-risposti lesti jistennewGħas-servizzi Python f’OpenAI, insibu li minbarra l-kejl tal-metriċi standard tal-użu u s-saturazzjoni tal-memorja, is-CPU, in-network u d-disk, huwa kruċjali li jiġi mmonitorjat ukoll kemm hu okkupat il-loop ta’ asyncio u jsir irfinar skont dan.
Billi niskedaw perjodikament kompiti fl-isfond u nirreġistraw id-differenza bejn il-ħin mistenni u dak effettiv tal-eżekuzzjoni, nistgħu nkejlu empirikament u f’ħin reali d-dewmien fl-iskedar tal-event loop. B’użu għoli u ħafna kompiti impenjattivi, anki għadd modest ta’ talbiet konkorrenti għal kull proċesshuma biżżejjed biex jipproduċu jitter sinifikanti fl-iskedar, sa mijiet ta’ millisekondi u, f’każijiet estremi, diversi sekondi.
Bħala riżultat, nirrikorru biex inżommu kull proċess iservi biss numru żgħir ta' talbiet konkorrenti u minflok niskalaw bil-kbir l-għadd ta’ proċessi worker ta’ Python.
Fit-tnedija inizjali tas-servizz tagħna, permezz tal-profiling tas-CPU fuq servizz dirett, sibna waħda mill-kawżi ewlenin tad-dewmien għoli ta’ asyncio (u l-latenzi estremi li jirriżultaw): il-parsing perjodiku tal-JSON tal-konfigurazzjonijiet tal-feature flags tagħna permezz ta’ Statsig (għodda għall-ġestjoni tal-feature flags u li tista' tintuża biex tħaddem testijiet A/B, fost affarijiet oħra.
B’mod awtomatiku, Statsig kien ikkonfigurat biex kull minuta jiċċekkja għal konfigurazzjonijiet aġġornati mingħajr jitter u l-konfigurazzjoni kienet tinkludi kull regola tal-produzzjoni tas-servizzi kollha. F’parti oħra, ittieħdet deċiżjoni arkitettonika li jitħaddmu sa 8 proċessi Python għal kull pod biex jiżdied l-użu tas-CPU u jitnaqqsu l-latenzi. Flimkien, dan kien ifisser li kull minuta kull pod kien jgħaddi minn mument meta l-workers kollha tiegħu jistaġnaw fil-proċessar t-talbiet in-flight u minflok jużaw iċ-ċikli tas-CPU biex jipparsjaw fajl enormi ta’ konfigurazzjoni.
Ladarba l-profiling tas-CPU għenna nsibu l-kawża ewlenija, is-soluzzjoni kienet sempliċi: niskjeraw konfigurazzjoni iżgħar u mmirata, intawlu l-intervall tal-aġġornament u nżidu ftit jitter ma’ kompiti fl-isfond bħal dawn.
Biex jinżamm baxx id-dewmien ta’ asyncio, huwa kruċjali wkoll li t-talbiet jitqassmu tajjeb bejn il-proċessi tas-server; mingħajr konfigurazzjoni, il-pooling tal-konnessjonijiet jista’ jaħdem kontra dan.
Bil-pooling tal-konnessjonijiet min-naħa tal-klijent, proċess wieħed tal-klijent li jagħmel ħafna talbiet konkorrenti jista’ jistabbilixxi ftit konnessjonijiet biss mas-server u b'riżultat ta' dan jibgħat it-tagħbija kollha tiegħu lil ftit proċessi biss. Qabel aġġustajna l-ibbilanċjar tat-tagħbija, l-użu tas-servizz tagħna kien ivarja ħafna, b’xi proċessi estremi jaqdu 5–10 darbiet aktar talbiet konkorrenti mill-medja.
Skoprejna dan b’kumbinazzjoni waqt inċident meta, minkejja li waqqafna l-klijent li kien qed jgħabbi żżejjed parti mis-servizz, sottosett ta' proċessi baqa' degradat għal ħafna wara li naqas it-traffiku qawwi. Fil-fatt, innutajna li dawn il-proċessi komplew jiddegradaw bla kontroll u jirċievu dejjem aktar talbiet sakemm bdejniehom mill-ġdid. Ladarba pod jitgħabba żżejjed, xi mġiba kienet torbot aktar traffiku miegħu. Din kienet klassi ta’ fallimenti li xi kollegi tagħna kienu jafuha sew minn xogħol preċedenti: falliment metastabbli(jinfetaħ f’tieqa ġdida).
Issuspettajna li l-pool tal-konnessjonijiet kien il-kawża u ttestjajna dan billi llimitajna t-tul massimu tal-użu mill-ġdid tal-konnessjonijiet; dan tassew illimita d-degradazzjoni u kkonferma d-direzzjoni tal-investigazzjoni. Investigazzjoni ulterjuri sabet li t-TCPConnector ta’ aiohttp f’Python juża awtomatikament l-użu mill-ġdid LIFO: għall-talba li jmiss tintgħażel il-konnessjoni rritornata l-aktar reċentement. Normalment din hija għażla awtomatika raġonevoli: l-użu mill-ġdid ta’ konnessjonijiet reċenti jħalli l-konnessjonijiet żejda maħluqa għal traffiku qawwi jagħlqu wara perjodu inattiv, u jnaqqas l-ispiża biex jinżammu. F’dan il-każ, ħolqot falliment metastabbli. Waqt żieda qawwija fit-talbiet, is-servers li jaħdmu aktar bil-mod u mgħobbija żżejjed irritornaw il-konnessjonijiet fil-pool aktar tard; għalhekk dawn intgħażlu aktar spiss minn talbiet sussegwenti, u gradwalment ikkonċentraw aktar traffiku fuq il-pods li diġà kienu qed ibatu. Il-modifika tal-pool biex juża FIFO għall-użu mill-ġdid kissret dan iċ-ċiklu ta’ feedback u saħansitra naqqset il-varjazzjoni tat-talbiet fl-istat stabbli.
Figura 04A · Pooling tal-konnessjonijiet min-naħa tal-klijent
LIFO jerġa’ jibgħat ix-xogħol il-ġdid lill-proċess li jaħdem bil-mod
Wara żieda qawwija fit-talbiet, is-servers aktar kajmana jirritornaw il-konnessjonijiet fil-pool l-aħħar. LIFO jikkonċentra aktar xogħol fuq dawk l-istess servers li jaħdmu aktar bil-mod.
Żieda qawwija inizjali tasal għand A, B u l-proċess C, li jaħdem aktar bil-mod.
Figura 04B · Pooling tal-konnessjonijiet min-naħa tal-klijent
FIFO jikser iċ-ċiklu ta’ feedback tal-użu mill-ġdid tal-konnessjonijiet
FIFO iżomm aktar konnessjonijiet attivi wara żieda qawwija, iżda jqassam il-workloads b’mod ġust bejn is-servers kollha.
Żieda qawwija inizjali tasal għand A, B u l-proċess C, li jaħdem aktar bil-mod.
Illum niddependu l-aktar fuq Istio u Envoy biex jipprovdu pooling tal-konnessjonijiet u strateġiji aħjar ta’ bbilanċjar konxji tat-tagħbija tas-server fl-infrastruttura kollha ta’ OpenAI u b’hekk nevitaw il-problema.
Effett sekondarju tal-konfigurazzjoni għal dewmien baxx ta’ asyncio u tal-għadd kbir ta’ proċessi Python huwa li d-dipendenzi downstream jistgħu faċilment jinħakmu mill-għadd enormi ta’ konnessjonijiet, magħruf bħala “thundering herd”.
Skjerament regolari ta’ kuljum—jekk ma tkunx irfinata biex timxi bil-mod—tista’ tikkawża ċaqliq kbir fl-użu tas-CPU minħabba ċ-ċiklar tal-konnessjonijiet. Jew tnixxija ta’ konnessjonijiet tista’ twaqqaf in-network billi tissatura l-gateway NAT. Dawn il-problemi mhumiex rari f’servizzi oħra, iżda l-livell li jqabbadhom jonqos ħafna meta jkun hemm għaxar darbiet aktar proċessi; spiss jiġu saturati riżorsi tan-network li, abbażi tat-throughput biss, il-klijenti ma jistennewx li jkollhom jimmaniġġjaw fi stat stabbli.
Niddependu wkoll fuq Envoy biex nimmassimizzaw il-fan-in tal-konnessjonijiet tagħna. Nużawh biex intejbu l-konnessjonijiet HTTP/1 ta’ Python għal HTTP/2 u nieħdu vantaġġ mill-multiplexing, imbagħad niġbru dawk il-konnessjonijiet f’pool u ntawlu ħajjithom. Envoy jagħtina wkoll post ċentrali fejn nimplimentaw limiti tar-rata u circuit breakers li jkunu inqas effettivi f’kull proċess Python indipendenti.
Figura 05 · Fan-in tal-konnessjonijiet
L-istess talbiet, inqas konnessjonijiet
Il-pooling u l-multiplexing tal-konnessjonijiet HTTP/2 jgħinu jnaqqsu t-tagħbija tal-konnessjonijiet fuq is-servizzi downstream.
Raġuni waħda għaliex stajna niskalaw Python daqshekk kienet l-API limitata ta’ Habitat, li żżomm l-ispiża tat-talbiet prevedibbli. Minflok ma jħalli lill-klijenti jibnu kwalunkwe query SQL li tista’ tiskennja tabelli kbar jew tgħaqqad ħafna tabelli, Habitat jesponi API NoSQL sempliċi. In-nuqqas ta’ API b’saħħitha huwa kompromess intenzjonat fid-disinn ta’ Habitat.
Nimmiraw li nottimizzaw għal talbiet sempliċi, prevedibbli u b’ammont fiss ta’ xogħol. Mill-esperjenza tagħna, dawn is-sistemi huma ħafna aktar faċli biex jiġu skalati u diffiċli biex jintużaw ħażin. Talbiet b’fanout imprevedibbli huma perikolużi operazzjonalment: jikkomplikaw l-iżolament u l-ibbilanċjar tal-load u joħolqu qabżiet fil-latenza diffiċli biex jiġu skalati kemm mis-servizz kif ukoll mill-klijenti tiegħu.
Qabel morna għal Habitat u Azure Cosmos DB, il-biċċa l-kbira tad-dejta online ta’ OpenAI kienet maħżuna fuq Postgres. Dak iż-żmien kien faċli nirrieżaminaw kull bidla fil-queries u fl-iskemi biex niżguraw li kienet effiċjenti u taħdem fuq dejta indiċizzata qabel ma tasal fil-produzzjoni. Hekk kif kibru t-tim u l-prodotti, dan malajr sar impossibbli biex jiġi ġestit u spiss ikkawża qtugħ fis-servizz meta query ġdida u impenjattiva fuq hot path waqqgħet il-bażi tad-dejta.
Il-problema hija l-iżbilanċ fl-ispiża: huwa faċli u rħis li tikteb queries SQLimpenjattivi u diffiċli biex jitħaddmu. F’Habitat nevitaw dan u nagħmlu l-queries għaljin ferm evidenti min-naħa tal-klijent. Ma hemmx queries mingħajr limitu li jistgħu jgħabbu żżejjed lil Habitat u joins kumplessi u traversals tal-graf jeħtieġu li t-timijiet tal-prodott jagħmlu parti mill-aktar xogħol impenjattiv u b’hekk jottimizzaw disinji aktar effiċjenti.
Habitat jesponi API NoSQL ibbażata fuq tipi ta’ oġġetti u truf definiti mill-klijent, ispirata minn TAO(jinfetaħ f’tieqa ġdida). Il-klijenti jiddefinixxu minn qabel l-oġġetti, it-truf u r-relazzjonijiet bejniethom, iżda mhux il-kontenut ta’ kull tip. Ir-relazzjonijiet li jirriżultaw jixbhu graf, iżda Habitat innifsu ma jappoġġjax queries tipiċi ta’ traversal lil hinn mit-tfittxija fit-truf diretti ta’ oġġett partikolari.
Naqsmu dan il-graf biex kull oġġett u t-truf tiegħu jkunu fl-istess partizzjoni fil-livell tal-ħażna, iżda ma nagħmlux sforz fil-livell tal-bażi tad-dejta biex inpoġġu flimkien oġġetti u l-oġġetti remoti li lejhom jippuntaw it-truf tagħhom. B’hekk il-mudell jinqasam faċilment għal skalabbiltà orizzontali, iżda t-traversals tal-graf huma ineffiċjenti għax qabża bejn żewġ oġġetti tista’ teħtieġ dejta minn żewġ kontijiet Azure Cosmos DB kompletament differenti f’reġjuni differenti.
Għal klijenti bi ħtiġijiet ta’ queries aktar kumplessi, nipprovdu viżwalizzazzjoni sekondarja offline ta’ Habitat esposta permezz ta’ Rockset. Nużaw change data capture (CDC) biex nistrimjaw l-bidliet mill-ħażna online lejn istanzi iżolati ta’ Rockset kważi f’ħin reali. Kull tim tal-klijent huwa responsabbli għall-iskalar tal-istanza Rockset tiegħu skont il-ħtiġijiet ta’ queries kumplessi.
Din il-provvista ta’ Rockset iżżid ix-xkiel għall-klijenti, iżda bħalissa nqisuha l-kompromess it-tajjeb: queries sempliċi awtomatikament, b’alternattiva għal min jeħtieġ queries kumplessi. Dan id-disinn jiżola l-ħażna online tagħna minn workloads analitiċi u ta’ tfittxija b’qari intensiv.
Il-posponiment tal-kitba mill-ġdid ta’ Python għal sena ħalliena niffukaw fuq sfidi aktar urġenti u importanti waqt it-tkabbir rapidu tagħna. Hekk kif il-pjattaforma timmatura u t-tkabbir ikompli jaċċellera u billi s-servizz kien it-tieni l-akbar f’OpenAI skont l-għadd ta’ cores (u r-raba’ għall-preżenza ta’ Envoy), kien fl-aħħar wasal iż-żmien li nħallu lil Python warajna. Fl-aqwa tagħha, Python għenitna naqdu aktar minn 20 miljun talba kull sekonda.
Fit-tieni trimestru tal-2026, b’żewġ inġiniera biss, b'Codex u b'GPT‑5.5, stajna nerġgħu niktbu s-servizz kollu f’Rust. Dan is-servizz il-ġdid f’Rust issa jieħu ħsieb 95% tat-talbiet tal-produzzjoni; fil-ġimgħat li ġejjin se nneħħu Python għalkollox. Id-dejta tagħna turi li s-servizz Rust huwa 6 darbiet aktar effiċjenti fis-CPU u 15-il darba aktar effiċjenti fil-memorja mill-verżjoni Python, b’latenzi medji u estremi ferm aktar baxxi. Qed nippjanaw li naqsmu aktar tagħlimiet fi blog futur.
Is-servizz Python—u issa Rust—huwa aspett wieħed biss ta’ Habitat. Fit-tieni parti ta’ din is-sensiela dwar kif skalajna malajr il-ħażna online biex taqdi aktar minn biljun utent ta’ ChatGPT, se nitkellmu dwar is-saff tal-ħażna u kif Habitat jaqdi aktar minn 500 petabyte u 70 miljun talba kull sekonda.
Jekk tixtieq taħdem fuq sistemi OLTP fuq skala pijuniera u jinteressak dan it-tip ta’ inġinerija, ara dan ir-rwol miftuħ fit-tim tagħna.


