OpenAI

23 ta’ Ottubru 2026

Inġinerija

Inkabbru malajr il-ħażna online għal aktar minn biljun utent ta’ ChatGPT (Parti II)

Kif ottimizzajna Azure Cosmos DB fil-pjattaforma tal-ħażna tal-applikazzjonijiet tagħna, Habitat, biex nimmaniġġjaw tkabbir bla preċedent.

Minn Jon Lee, Hrachya Hakobyan u Chaomin Yu, Membri tal-Persunal Tekniku

Qed jillowdja…

Il-prodotti kollha ta’ OpenAI jeħtieġu aċċess rapidu u affidabbli għad-dejta, ipprovdut mill-pjattaforma tal-ħażna tagħna, Habitat. Din trid twieġeb f’millisekondi lil aktar minn biljun utent f’40 reġjun ġeografiku. L-infrastruttura tagħna ffaċċjat sfida straordinarja: tappoġġja tkabbir enormi u każijiet ta’ użu ġodda filwaqt li tkompli ttejjeb l-affidabbiltà, il-prestazzjoni u r-ritmu tal-iżvilupp tal-prodotti. Biex negħlbu dik l-isfida, kellna nerġgħu nevalwaw kif kienet iddisinjata u operata l-pjattaforma tagħna tal-ħażna online. Konna kontinwament niżnu l-kompromessi, b’din is-sekwenza: l-ewwel insiru affidabbli biżżejjed għat-traffiku tal-prodotti l-aktar kritiku għall-operat, imbagħad veloċi biżżejjed għall-utenti madwar id-dinja, u fl-aħħar noperaw b’ħila fuq skala enormi.

Din is-serje f’żewġ partijiet tispjega kif żviluppajna Habitat minn librerija sempliċi tal-klijent u database għal pjattaforma tal-ħażna distribwita globalment li sservi aktar minn 500 petabyte ta’ dejta. L-Ewwel Parti ffukat fuq l-evoluzzjoni ta’ Habitat minn klijent Python għal servizz. Kopriet ukoll it-tekniki li ppermettewlna nwasslu servizz ibbażat fuq Python ferm lil hinn minn dak li ħafna jqisu prattiku.

F’dan l-artiklu, it-Tieni Parti, nispjegaw kif kabbarna l-iskala tal-komponent tal-ħażna sottostanti: Azure Cosmos DB. Permezz ta’ kollaborazzjoni mill-qrib mat-tim ta’ Azure, wasalna għal approċċ vijabbli b’diversi inkwilini u kontenituri ġestiti flimkien, bi prestazzjoni eċċellenti tal-qari fuq skala globali enormi.

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)

Klijenti

Pjattaforma tal-ħażna online

Riżorsi tal-ħażna

  • ChatGPT
  • API
  • Codex
  • Servizzi interni
  • U aktar

Habitat

  • CachingCaches
  • Politiki tal-ACLAwtorizzazzjoni
  • Tqegħid u residenza tad-dejtaResidenza tad-dejta
  • KriptaġġSigurtà tad-dejta
  • IżolamentMulti-tenancy
  • Limitazzjoni tar-rataIffurmar tat-talbiet
  • RoutingTfittxija fl-iskemi · Residenza tad-dejta
  • Azure Cosmos DBĦażna online
  • NanobaseĦażna online
  • ValkeyCaches
  • Ħażna ta’ blobsRiżorsi tal-ħażna
Servizzi CDCQbid tal-Bidliet fid-Dejta
  • Databricks
  • Rockset
  • Kafka
  • U aktar

Nagħmlu l-ambjenti b’diversi inkwilini affidabbli fuq skala kbira

Hekk kif jikbru l-kumpaniji, it-timijiet tal-infrastruttura spiss jgħaddu minn sistemi b’inkwilin wieħed għal sistemi b’diversi inkwilini. F’ambjent b’inkwilin wieħed, kull tim responsabbli għal parti tal-prodott iżomm is-sistema tiegħu. Dan inaqqas il-firxa tal-impatt tal-ħsarat, jagħmilha faċli li jiġu definiti r-responsabbiltajiet u jiżola x-xogħlijiet. Hekk kif jikbru t-timijiet u l-partijiet tal-prodott, dan isir għali biex jitħaddem. Ambjent b’inkwilin wieħed jagħmel lil kull tim tal-prodotti responsabbli għall-ippjanar tal-kapaċità u spiss iwassal għall-proviżjoni ta’ ħafna aktar riżorsi milli jkun hemm bżonn.

Min-naħa l-oħra, ambjent b’diversi inkwilini jagħti l-kontroll lil tim ċentralizzat tad-databases, b’għarfien u esperjenza aħjar fil-proviżjoni tar-riżorsi. Iżda ambjent b’diversi inkwilini joħloq il-problemi tiegħu stess, bħal dawk tal-ġirien li jfixklu, fejn inkwilin wieħed jikkonsma sehem kbir mhux tas-soltu mir-riżorsi għad-detriment tal-oħrajn.

F’Habitat, kellna niżnu dawn il-kompromessi kollha biex niddisinjaw sistema tal-ħażna affidabbli u effiċjenti fuq skala kbira. Illum, Habitat hija saff ta’ database b’diversi inkwilini għal ħafna prodotti ta’ OpenAI. Iżda għaddejna minn ċiklu: minn kontenitur wieħed ta’ Azure Cosmos DB b’diversi inkwilini, għall-proviżjoni ta’ kontenituri sottostanti b’inkwilin wieħed, u lura għal kontenitur b’diversi inkwilini bħala l-għażla prestabbilita. Għadna fil-bidu nett tal-vjaġġ tagħna b’diversi inkwilini f’Habitat: nappoġġjaw ħafna każijiet ta’ użu, iżda stajna nipposponu l-investiment f’dan il-qasam billi nużaw il-komponenti bażiċi integrati ta’ Azure Cosmos DB kull fejn possibbli.

Introduzzjoni sempliċi għall-kontenituri ta’ Azure Cosmos DB

Qabel nispjegaw il-vjaġġ tagħna b’Azure Cosmos DB, ftit kuntest bażiku:

  • Kont ta’ Azure Cosmos DB jiddefinixxi sett ta’ kontenituri u politika ta’ replikazzjoni

  • Kull kontenitur jiġi pprovdut b’ċertu ammont ta’ throughput f’unitajiet ta’ talbiet kull sekonda (RU/s)

  • Id-dejta f’kull kontenitur tinħażen bil-metodu tipiku ta’ tqassim f’shards skont kjavi speċifikata ta’ partizzjoni loġika, b’limiti dokumentati għall-ħażna u t-throughput għal kull kjavi

  • Azure Cosmos DB iqassam il-kjavijiet tal-partizzjonijiet loġiċi fuq għadd iżgħar ta’ partizzjonijiet fiżiċi sottostanti. Dawn jinqasmu f’aktar partizzjonijiet fiżiċi meta l-ħażna taqbeż limitu jew meta l-kontenitur jeħtieġ aktar partizzjonijiet fiżiċi biex isostni t-throughput ipprovdut

Fażi I: Niddependu fuq il-komponenti bażiċi ta’ Azure Cosmos DB

Oriġinarjament konna nħallu tgħaddi kwalunkwe tagħbija mill-klijenti, u niddependu fuq il-limitu ddikjarat ta’ 10K RU/s għal kull kjavi ta’ partizzjoni loġika biex irażżan it-talbiet żejda. Fil-bidu konna nużaw ukoll kontenitur prestabbilit wieħed biss ta’ Azure Cosmos DB f’kull kont. Dan kien jaħdem sew biżżejjed, iżda ħoloq problemi għal diversi raġunijiet:

Limiti tal-kjavijiet tal-partizzjonijiet loġiċi

Minħabba għażliet bikrin fl-API, ħallejna lill-klijenti jagħżlu direttament il-kjavi tal-partizzjoni loġika. B’riżultat ta’ dan, għandna kolliżjonijiet frekwenti fuq kjavijiet ta’ partizzjoni użati ħafna, bħal user_id jew workspace_id, bejn każijiet differenti ta’ użu tal-prodotti. Billi dawn il-każijiet ta’ użu kienu jaqsmu l-limiti ta’ Azure Cosmos DB fuq l-istess kjavijiet ta’ partizzjonijiet loġiċi, id-disinn kien jirrestrinġi t-throughput ġenerali għal utent partikolari.

Problema komuni li ffaċċjajna meta konna qed inkabbru l-iskala ta’ Postgres, qabel għaddejna għal Habitat u Azure Cosmos DB, kienet li ħafna talbiet minn organizzazzjoni jew kjavi b’tagħbija intensa ħafna — inkwilin wieħed li jiġġenera tagħbija għolja b’mod sproporzjonat — setgħu jwaqqfu d-database kollha. Sar sforz kollettiv sostanzjali biex dawk il-kjavijiet jinżammu fil-cache u jiddaħħlu leases meta d-dejta ma tinstabx fil-cache, sabiex it-tagħbija li tirriżulta ma tgħabbix iżżejjed id-database sottostanti.

Figure 02a · Logical partition key limits

Different clients, the same partition key

Cosmos DB containerPhysical partitionPK: user-id-28104CapacityMemory / dreaming : capacity usedMemory / dreaming : capacity usedMemory / dreaming : capacity usedMemory / dreaming : capacity usedMemory / dreaming : capacity usedMemory / dreaming : capacity usedMemory / dreaming : capacity usedMemory / dreaming : capacity usedMemory / dreaming : capacity usedMemory / dreaming : capacity usedConversationsSuccess rateResponses returned in this animation loop—AuthSuccess rateResponses returned in this animation loop—Memory / dreamingSuccess rateResponses returned in this animation loop—

Ġirien li jfixklu

Filwaqt li l-limiti dokumentati tad-daqs tad-dejta u tat-throughput japplikaw għall-kjavijiet tal-partizzjonijiet loġiċi, il-limiti fil-fatt jiġu infurzati fil-partizzjoni fiżika. Fil-prattika, dan ifisser li l-partizzjonijiet loġiċi ma jistgħux jilħqu 10,000 RU/s. Minflok, jaqsmu l-limiti tal-partizzjoni fiżika ma’ kull kjavi oħra ta’ partizzjoni loġika li tinsab fl-istess partizzjoni fiżika.

Dan ippermetta lil ġirien li jfixklu jaffettwaw ħafna kjavijiet ta’ partizzjonijiet loġiċi mhux relatati, b'xogħlijiet li joperaw fuq dejta għal funzjonijiet speċjalizzati tal-prodotti jfixklu l-proċessi essenzjali tad-dħul u r-reġistrazzjoni.

Figure 02b · Noisy neighbors

Different users, the same physical partition

Cosmos DB containerPhysical partitionPKs: user-id-28104, user-id-10384Conversations user-id-28104: capacity usedConversations user-id-28104: capacity usedConversations user-id-28104: capacity usedConversations user-id-28104: capacity usedConversations user-id-28104: capacity usedConversations user-id-28104: capacity usedConversations user-id-28104: capacity usedConversations user-id-28104: capacity usedConversations user-id-28104: capacity usedConversations user-id-28104: capacity usedConversationsuser-id-28104Success rateResponses returned in this animation loop—Conversationsuser-id-10384Success rateResponses returned in this animation loop—

Partizzjonijiet dgħajfa

Il-limitu tat-throughput ta’ partizzjoni fiżika partikolari jvarja wkoll, skont it-throughput totali allokat lill-kontenitur ta’ Azure Cosmos DB. It-throughput ipprovdut għall-kontenitur jitqassam bejn wieħed u ieħor indaqs bejn il-partizzjonijiet fiżiċi tiegħu.

Hekk kif jikber il-volum tad-dejta, il-partizzjonijiet fiżiċi jinqasmu, u jiżdied l-għadd totali ta’ partizzjonijiet filwaqt li t-throughput totali pprovdut jibqa’ l-istess. B’riżultat ta’ dan, il-limitu effettiv tat-throughput għal kull partizzjoni jonqos hekk kif jikber id-daqs tad-dejta.

Fil-każijiet tagħna li jeħtieġu l-aktar ħażna, b’dejta simili għal blobs, dan joħloq tip ta’ ħsara fejn iż-żieda fil-ħażna waħedha tnaqqas il-kapaċità tat-throughput għax-xogħlijiet attivi, anke jekk ir-rati tat-talbiet u l-użu jibqgħu stabbli.

Figure 02C · Weak partitions

The limit falls below demand

A partition splits when it reaches its storage limit. Each child receives half the throughput capacity.

Before split: 10K RU/s capacity

After split: 5K RU/s capacity × 2 partitions

RU/s05K6K10K200200429

Fażi II: Nippruvaw l-iżolament tax-xogħlijiet u ambjenti b’inkwilin wieħed

Kontenituri separati jgħinu jsolvu parzjalment dawn il-limiti tal-kjavijiet tal-partizzjoni u l-problemi tal-ġirien li jfixklu. Meta jintużaw kontenituri separati, kull wieħed jista’ jingħata l-partizzjonijiet fiżiċi indipendenti tiegħu. B’hekk, ix-xogħlijiet differenti f’dak il-kontenitur biss jistgħu jfixklu lil xulxin jew jużaw kjavijiet tal-partizzjoni li jikkoinċidu. Min-naħa l-oħra, il-proviżjoni ta’ kontenituri ġodda ġġib magħha piż addizzjonali: kull kontenitur jeħtieġ ippjanar individwali tal-kapaċità. Għalhekk irridu noħolqu kontenituri biss fejn ikun jagħmel sens li nisseparaw servizz jew każ ta’ użu.

Bdejna nużaw kontenituri separati ta’ Azure Cosmos DB għall-aktar każijiet ta’ użu ġodda kritiċi li kienu jeħtieġu iżolament b’saħħtu. Flimkien ma’ skript biex jimmaniġġja l-partizzjonijiet dgħajfa billi jissinkronizza t-throughput totali pprovdut għal kull kontenitur mal-għadd ta’ partizzjonijiet fiżiċi tiegħu, dan ippermettielna nevitaw kważi l-problemi kollha li konna qed niffaċċjaw.

Madankollu, billi bdejna b’kontenitur prestabbilit, sfortunatament ħafna każijiet ta’ użu kritiċi antiki baqgħu mwaħħlin fih sakemm ma ssirx migrazzjoni tad-dejta. Biex nipproteġu s-servizzi kritiċi li kienu għadhom jiddependu fuq dejta fil-kontenitur prestabbilit kondiviż, spiss konna nagħtu parir lit-timijiet biex joħolqu kontenituri separati għal servizzi ġodda jew funzjonijiet ewlenin tal-prodotti. Hekk kif kibret l-iskala tagħna, żdiedet il-pressjoni fuq il-kontenitur prestabbilit u żdiedu wkoll l-inċidenti fl-ambjent ta’ produzzjoni. Bdejna nipprovdu kontenituri għal kull servizz ġdid jew funzjoni kbira tal-prodott, sempliċement biex nipproteġu l-kontenitur prestabbilit minn aktar tagħbija.

Dan ħelisna minn ħafna interruzzjonijiet tas-sit kollu, u llimita l-firxa tal-impatt għal tnaqqis fil-kwalità ta’ funzjoni jew servizz. Madankollu, maż-żmien il-piż tal-proviżjoni ta’ kontenituri ġodda beda jinħass:

Nuqqas ta’ tkabbir aggregat stabbli

Fil-kontenitur prestabbilit kondiviż l-antik, każ ta’ użu ġdid li jitla’ minn 0 QPS għal miljun QPS x’aktarx ma kienx ibiddel b’mod sinifikanti l-użu aggregat totali. F’kontenitur iżolat, iżda, każ ta’ użu ġdid li jitla’ minn 0 għal miljun QPS jista’ jfisser tagħbija 1,000 darba akbar mil-livell bażi dovut biss għall-ittestjar intern tal-prodott.

B’kontenituri dedikati, it-timijiet issa kellhom jiftakru jipprovdu minn qabel it-throughput mistenni għall-kontenituri tagħhom meta jniedu l-prodotti. It-timijiet tal-prodotti spiss kienu jtellgħu l-funzjonijiet tagħhom fil-produzzjoni u jinsew iżidu l-kapaċità minn qabel. F’jum it-tnedija konna nispiċċaw fil-kmamar ta’ rispons għal inċidenti SEV, nippruvaw inżidu l-kapaċità tal-kontenituri fl-aħħar minuta.

Dan huwa benefiċċju ewlieni tat-taħlit tax-xogħlijiet f’sistemi b’diversi inkwilini li nitilfu bi skambju għal iżolament aħjar b’din l-istrateġija tal-kontenituri.

Figure 03 · Lack of stable aggregate growth

The same workload, different headroom

1K RU/s during load testing → 1M RU/s at launch

Shared container

100M RU/s capacity · 80% utilized

Load test

1K20M=

0.005%

of headroom

Launch

1M20M=

5%

of headroom

New dedicated container

10K RU/s capacity · no other workloads

Load test

1K10K=

10%

of headroom

Launch

1M10K=

10,000%

of headroom

Ippjanar tal-kapaċità

Maż-żmien, il-monitoraġġ tal-użu tal-kontenituri dedikati beda jeħtieġ ukoll għarfien profond tal-prodott biex inkunu nafu meta t-traffiku kien se jinbidel jew jikber.

Nistgħu nipprovdu skript bażiku tas-saff ta’ kontroll biex iżid it-throughput ipprovdut għal kull kontenitur skont ix-xejriet tat-tkabbir. Iżda mingħajr tkabbir aggregat stabbli, l-aġġustament korrett tal-kapaċità kien jinvolvi essenzjalment kull tim tal-prodotti f’OpenAI fl-ippjanar tal-kapaċità.

Dan ma setax ilaħħaq mat-tkabbir organizzattiv, għax id-diliġenza ta’ kull tim responsabbli għal servizz fil-proviżjoni ta’ Azure Cosmos DB kienet tvarja ħafna.

Fażi III: Ambjenti b’diversi inkwilini bħala regola, bil-kapaċità li nċaqilqu d-dejta

Hekk kif kibret l-organizzazzjoni, sar diffiċli li nimmaniġġjaw dawk il-problemi operattivi fuq skala akbar. In-nuqqas ta’ tim ċentrali wieħed għall-ippjanar wassal biex ħafna timijiet jippjanaw ħażin. Għalhekk spiċċajna nerġgħu nimxu lejn soluzzjoni b’diversi inkwilini, u ħdimna mill-qrib mat-tim ta’ Azure biex insolvu l-problemi oriġinali tagħna permezz ta’ disinn b’riżorsi kondiviżi bejn l-inkwilini:

Limitazzjoni għall-kjavijiet bl-akbar tagħbija

Il-limitazzjoni tar-rata l-ewwel għall-kjavijiet bl-akbar tagħbija tipprevjeni lill-ġirien li jfixklu milli jikkonsmaw it-throughput kollu disponibbli għal partizzjoni fiżika partikolari. Dan inaqqas l-effett tal-ġirien li jfixklu, fejn kjavi waħda b’tagħbija intensa tista’ taffettwa s-sit kollu.

Kwalità tas-Servizz (QoS)

Bl-istess mod, il-QoS li tikklassifika t-talbiet f’livelli tipprevjeni xogħlijiet offline, bħal inserzjonijiet bl-ingrossa jew estrazzjonijiet tad-dejta, milli jużaw it-throughput kollu ta’ partizzjoni fiżika partikolari. Meta t-talbiet għal dawn ix-xogħlijiet jingħataw prijorità aktar baxxa, ir-rata tagħhom tiġi limitata l-ewwel. B’hekk ma tiġix limitata r-rata tat-talbiet interattivi bi prijorità ogħla li jaqdu lill-utenti finali.

Modalità serverless

Azure Cosmos DB diġà kellu modalità serverless li kienet issolvi l-problema tal-partizzjonijiet dgħajfa li kellna fil-modalità b’kapaċità pprovduta. Madankollu, kellha żvantaġġ kbir: kienet iżżid il-kapaċità skont l-użu tal-ħażna biss, u tillimita l-użu tal-RU għal 5K RU/s għal kull partizzjoni fiżika. Dan kien isolvi l-problema tal-partizzjonijiet dgħajfa, iżda ma kienx iħallina nkabbru l-każijiet ta’ użu li jikkonsmaw ħafna RU.

It-tim ta’ Azure Cosmos DB bena għalina modalità serverless ġdida u mtejba li ppermettiet lil kull partizzjoni fiżika tilħaq 10K RU/s. Din introduċiet ukoll qsim ibbażat fuq l-użu tal-RU, minbarra dak ibbażat fuq l-użu tal-ħażna, u għalhekk ma kellniex nibqgħu nissorveljaw u nkabbru l-kontenituri manwalment.

B’dawn il-bidliet stajna nerġgħu nużaw kontenitur kondiviż wieħed. Dan issimplifika ħafna l-ippjanar tal-kapaċità bil-quddiem u kontinwu għat-timijiet tal-prodotti, filwaqt li żamm l-iżolament bejn ix-xogħlijiet. Fix-xhur minn dak iż-żmien ’l hawn ma kellna ebda inċident ta’ proviżjoni jew ta’ ġirien li jfixklu, minkejja li l-iżvilupp tal-prodotti aċċellera.

Affidabbiltà aħjar b’servizzi ġestiti flimkien

Meta l-kumpaniji jilħqu l-iskala ta’ OpenAI, is-servizzi ġestiti jsiru inqas “ġestiti”. Ħafna xogħlijiet ma jibqgħux jaqgħu fix-xejriet normali tal-infrastruttura tal-fornitur tal-cloud. Hekk kif OpenAI saret waħda mill-akbar utenti ta’ Azure Cosmos DB, it-tħaddim tiegħu b’suċċess kien jeħtieġ approċċ differenti: testijiet u dashboards kondiviżi, kanali diretti bejn l-inġiniera, u responsabbiltà konġunta għat-tipi ta’ ħsarat li jidhru biss fl-iskala tagħna. Illum, l-akbar kont tagħna ta’ Azure Cosmos DB jaħżen għexieren ta’ petabytes ta’ dejta u jaqdi aktar minn 20M QPS. Sa fejn nafu aħna, aħna l-unika kumpanija li tuża Azure Cosmos DB fuq din l-iskala.

Lejn tmiem l-2024, interruzzjoni reġjonali tas-servizz għamlitha ċara għaliex din il-kollaborazzjoni kienet meħtieġa. Dakinhar, qtugħ tad-dawl laqat ir-reġjun primarju ta’ Azure għal wieħed mill-akbar kontijiet tagħna ta’ Azure Cosmos DB. Waqt il-qlib għal reġjun ta’ riżerva li segwa, indunajna li l-akbar kontijiet tagħna kienu jieħdu diversi sigħat biex jaqilbu għal reġjun sekondarju. La t-tim tagħna u lanqas dak ta’ Azure Cosmos DB ma kienu ttestjaw dan fl-iskala tagħna.

Madwar xahar wara, waqt li konna qed nerġgħu naqilbu dawk il-kontijiet għar-reġjun oriġinali, ikkawżajna interruzzjoni serja oħra tas-servizz. Mewġa f’daqqa ta’ konnessjonijiet lejn ir-reġjun oriġinali għabbiet iżżejjed il-gateway ta’ Azure Cosmos DB ta’ dak ir-reġjun. Partikolarità fil-mod kif il-klijent ta’ Azure Cosmos DB fil-modalità gateway kien jimmaniġġja l-qlib għal riżerva wasslet biex il-klijenti kollha jistabbilixxu konnessjonijiet u jibagħtu talbiet minnufih lir-reġjun oriġinali, minkejja li parti biss mill-partizzjonijiet fiżiċi kienet irritornat f’dak ir-reġjun.

F’kull waqfa tas-servizz, kemm OpenAI kif ukoll Azure segwew il-proċessi tagħhom ta’ ġestjoni tal-inċidenti, identifikaw diversi kawżi ewlenin u implimentaw soluzzjonijiet. Iżda dawn l-interruzzjonijiet kienu sintomi ta’ problema sistemika akbar fil-mod kif it-tim tagħna u dak ta’ Azure Cosmos DB kienu jaħdmu u jittestjaw. Fil-bidu, l-użu ta’ servizzi ġestiti ppermettielna nimxu malajr u niffukaw fuq l-għanijiet tan-negozju. Fuq skala kbira, is-servizzi ġestiti jsiru inqas ġestiti u jeħtieġu integrazzjoni profonda mal-fornitur tas-servizz fil-livelli kollha, mid-disinn sal-operat.

Illum, it-timijiet tal-inġinerija ta’ Habitat u Azure jissorveljaw flimkien kull saff ta’ Habitat, mis-saffi tas-servizz tagħna sas-saffi tal-ħażna fiżika ta’ Azure Cosmos DB. Inħaddmu u nittestjaw il-bidliet fuq kont ta’ Azure Cosmos DB tal-istess daqs bħal wieħed ta’ produzzjoni, iżda li mhux fil-produzzjoni. Nittestjaw u ntejbu l-SDKs flimkien u nistabbilixxu l-aħjar prattiki biex inkabbru u niddimensjonaw il-kontijiet tagħna ta’ Azure Cosmos DB. L-inġiniera tagħna jistgħu jikkomunikaw direttament ma’ xulxin permezz ta’ Teams, u saħansitra għamilna disponibbli modi biex nibagħtu twissijiet urġenti direttament lil xulxin mingħajr ma ngħaddu mil-livelli ta’ appoġġ.

Matul l-aħħar sena sar ħafna xogħol konġunt biex titjieb l-iskalabbiltà tas-saff ta’ kontroll u tal-gateway ta’ Azure Cosmos DB. Żidna protezzjoni mit-tagħbija u caching ta’ diversi tipi ta’ metadejta ta’ Azure Cosmos DB fil-gateway tagħhom biex nipproteġu l-partizzjoni tal-metadejta; naqqasna l-pressjoni mill-flotta tagħna ta’ proċessi Python ta’ habitat-service permezz ta’ pools ta’ konnessjonijiet u aktar użu mill-ġdid tal-konnessjonijiet; qegħidna x-xogħlijiet fl-istess post fejn possibbli; u iżolajna x-xogħlijiet kritiċi minn dawk offline permezz ta’ VPCs differenti.

Dan il-livell ta’ inġinerija konġunta kien kruċjali għall-istabbiltà ta’ Azure Cosmos DB tagħna fl-aħħar sena. Kwalunkwe sistema kbira jew kritika biżżejjed teħtieġ dan it-tip ta’ ħidma f’tim: jitneħħew l-ostakli bejn min hu responsabbli għal xiex u ssir ħidma lil hinn mill-konfini organizzattivi.

Titjib fil-prestazzjoni fuq skala globali

Kif semmejna fl-Ewwel Parti, il-filosofija ewlenija tagħna hi: agħmilha taħdem, agħmilha veloċi, agħmilha rħisa. L-ewwel l-affidabbiltà, imbagħad il-prestazzjoni, u mbagħad l-effiċjenza. Habitat kienet saret infrastruttura kritika għal OpenAI, għalhekk l-ewwel prijorità kienet li nagħmluha affidabbli. Hekk kif is-sistema stabbilizzat fl-2025 u OpenAI espandiet globalment, il-latenza saret l-ostaklu li jmiss għall-utenti u għat-timijiet tal-prodotti.

Il-kapaċità tal-komputazzjoni u tal-ħażna spiss kienu jinsabu f’reġjuni differenti, u għalhekk it-talbiet bejn ir-reġjuni kienu inevitabbli.

Figure 04 · Improving performance at a global scale

Global traffic

Compute and storage capacity were often located in different regions, making cross-region requests unavoidable.

ComputeStorageIllustrative routes · Longer journeys take more time

Il-postijiet ġeografiċi tal-komputazzjoni u l-ħażna huma għal skopijiet illustrattivi biss.

Il-latenza kienet tvarja ħafna skont fejn kienet tinħażen id-dejta u fejn kienet tiġi pproċessata t-talba. Biex it-talbiet ta’ Habitat jaħdmu b’effiċjenza, l-iżviluppaturi tal-prodotti kienu jiddependu fuq caching addizzjonali fuq in-naħa tal-klijent, raggruppament tat-talbiet, tnaqqis tal-qari u l-kitba fid-database, u tneħħija tax-xogħol mill-mogħdija kritika kull fejn possibbli. Għalkemm dan wassal għal xi disinji interessanti ta’ prodotti aktar reżiljenti għall-problemi tad-database, għamel ukoll il-prodotti aktar kumplessi u naqqas ir-ritmu tat-titjib tagħhom. Għalhekk ma ntlaħaqx l-għan ta’ Habitat: li tħeġġeġ żvilupp rapidu tal-prodotti mingħajr il-ħtieġa li wieħed jifhem id-database.

Dan kien wieħed mill-punti ewlenin ta’ ħidmitna fl-2026, u żviluppajna strateġija b’diversi saffi biex nottimizzaw il-prestazzjoni tal-qari, li jirrappreżenta aktar minn 90% tat-talbiet ta’ Habitat:

Naħżnu d-dejta qrib l-utenti meta l-kapaċità tippermetti

Għandna għadd ta’ kontijiet ta’ Azure Cosmos DB f’reġjuni differenti ta’ Azure madwar id-dinja għall-utenti b’rekwiżiti ta’ residenza tad-dejta. Anke għall-utenti mingħajr rekwiżiti stretti ta’ residenza tad-dejta, it-tqegħid tad-dejta qrib tagħhom itejjeb l-esperjenza tagħhom billi jnaqqas il-latenza.

Fil-prattika, ma nistgħux nagħmlu dan b’mod mifrux lil hinn mill-każijiet ta’ residenza tad-dejta, għax it-tqegħid huwa limitat mill-kapaċità fiżika tal-cloud. Minħabba d-daqs tas-settijiet tad-dejta tagħna, ħafna reġjuni ma jifilħux għall-ħażna enormi meħtieġa għas-sehem proporzjonali tagħhom tat-traffiku tal-utenti.

F’reġjuni b’kapaċità limitata ta’ ċentri tad-dejta, elettriku jew tkessiħ, xi drabi jkollna nagħżlu direttament: nirriżervaw kapaċità għall-ħażna fl-istess post u nnaqqsu l-latenza ta’ Habitat, jew nużaw dik il-kapaċità għal aktar komputazzjoni biex naqdu t-talbiet u nibagħtu t-talbiet għall-ħażna aktar ’il bogħod.

Għalhekk, id-deċiżjonijiet dwar it-tqegħid spiss jinvolvu kompromess għall-prodott bejn: A) l-ottimizzazzjoni tal-latenza għal prodotti u gruppi ta’ utenti differenti, u B) il-kapaċità totali tal-ħażna u tal-komputazzjoni.

Nirreplikaw b’mod mifrux biss l-iżgħar settijiet tad-dejta u dawk l-aktar sensittivi għal-latenza

Għax-xogħlijiet fejn il-latenza hi l-aktar kritika, bħall-metadejta tal-awtentikazzjoni meħtieġa għal kull talba, innaqqsu l-RTT bejn il-komputazzjoni u Habitat permezz ta’ kontijiet ta’ Azure Cosmos DB replikati b’mod estensiv f’ħafna reġjuni sekondarji. Xi kontijiet jiġu replikati fl-40 reġjun kollha ta’ Azure fejn naqdu t-traffiku; oħrajn jiġu replikati f’mill-inqas reġjun wieħed għal kull kontinent.

Kellna nibnu saff ta’ ċaqliq u direzzjoni tad-dejta f’Habitat, trasparenti għall-klijenti, qabel ma xtaqna, biex inkunu nistgħu nċaqilqu settijiet tad-dejta bejn kontijiet b’topoloġiji ta’ replikazzjoni differenti.

Madankollu, anke dan l-approċċ fl-aħħar mill-aħħar huwa ristrett mill-kapaċità, u għalhekk limitat għal ftit settijiet tad-dejta magħżula bir-reqqa.

Niddependu fuq caching integrat għall-bqija

Ix-xogħlijiet ta’ Habitat jinvolvu l-aktar qari, b’applikazzjonijiet li kontinwament jiġbru settings, stat u proprjetajiet oħra. Ammont sproporzjonat tat-traffiku ġej minn sett relattivament żgħir ta’ tipi li jiġu aċċessati ta’ spiss. Dan jagħmel is-sistema partikolarment adattata għall-caching distribwit. Filwaqt li l-caching itejjeb il-prestazzjoni f’infrastruttura b’reġjun wieħed, il-benefiċċji jiżdiedu meta naħdmu bejn reġjuni, fejn jista’ “jaħbi” l-latenza bejniethom.

Integrajna saff distribwit ta’ caching tat-tip lookaside f’Habitat. Dan jaħżen kopja tal-oġġetti u r-rabtiet li ġew aċċessati dan l-aħħar f’servers Valkey fl-infrastruttura tagħna, qrib fejn jiġu pproċessati t-talbiet tal-utenti. Tipikament, dawn il-caches jużaw TTL li jibbilanċja r-rata ta’ sejbiet fil-cache ma’ kemm id-dejta tibqa’ skaduta. TTLs qosra jnaqqsu l-iskadenza tad-dejta iżda jnaqqsu wkoll il-benefiċċji tal-caching, għax l-oġġetti jiskadu malajr mill-cache u jridu jerġgħu jinġabru aktar spiss. TTLs itwal itejbu r-rata ta’ sejbiet, iżda jservu dejta skaduta għal aktar żmien, u dan iwassal għal esperjenzi ħżiena għall-utenti u mġiba imprevedibbli tal-prodott.

Approċċ ieħor hu li jitwettqu operazzjonijiet espliċiti ta’ invalidazzjoni meta l-applikazzjoni tkun qed tikteb fl-istess dejta sottostanti. Dan iżomm id-dejta fil-cache ferm aktar aġġornata, iżda jista’ jkun diffiċli li jiġi implimentat sew. Jibqa’ wkoll suġġett għal għadd ta’ każijiet eċċezzjonali, bħal ħsarat parzjali, li jħallu l-cache skadut. Implimentazzjonijiet f’diversi reġjuni jaggravaw dawn il-problemi: in-networks bejn ir-reġjuni huma inqas affidabbli, u jistgħu jinħolqu tiġrijiet bejn l-aġġornamenti tal-cache u r-replikazzjoni tal-ħażna sottostanti. Iż-żieda ta’ TTLs tistabbilixxi limitu massimu ta’ żmien għal dejta skaduta, iżda xorta tinvolvi l-istess kompromess tat-TTL imsemmi hawn fuq.

Adottajna approċċ aktar avvanzat għall-invalidazzjoni, fuq il-passi ta’ sistemi bħal TAO ta’ Meta. Il-cache integrat ta’ Habitat jiddependi fuq il-qbid tal-bidliet fid-dejta (CDC) permezz tal-feed tal-bidliet ta’ Azure Cosmos DB biex ixerred l-invalidazzjonijiet globalment f’sekondi. B’hekk jikseb rata għolja ta’ sejbiet fil-cache u jżomm l-iskadenza tad-dejta baxxa. Servizz fl-infrastruttura tagħna jaqra dan il-feed tal-bidliet u jinvalida l-caches lokali meta tiġi aġġornata d-dejta sottostanti. Għalhekk, id-darba li jmiss li tinqara d-dejta ma tinstabx fil-cache, u dan jimtela bl-aħħar verżjoni tagħha.

Innaqqsu l-piż addizzjonali tal-proxy b’Rust

Naqqasna wkoll b’mod sinifikanti l-latenza billi neħħejna piż addizzjonali fis-servizz Habitat innifsu: ktibna l-kodiċi mill-ġdid f’Rust, li jagħti prestazzjoni aħjar mill-Python oriġinali.

Flimkien, dawn il-bidliet naqqsu l-p50 ġenerali tal-qari globali tagħna minn madwar 120 ms għal madwar 10 ms, titjib ta’ 12-il darba minn meta bdejna niffukaw fuq il-prestazzjoni aktar kmieni din is-sena.

Figure 05 · Improving performance at a global scale

p50 latency for reads

Three major design changes improved read latency

roughly 120 ms → roughly 10 ms

12x improvement

Milliseconds020406080100120140160Ħin123
  1. critical data replicated into nearby geos
  2. in-region caching launched
  3. rust rewrite launched

Għalkemm il-caching naqqas ħafna l-latenza medjana, l-aktar talbiet bil-mod għadhom jeħtieġu dejta mhux fil-cache mill-ħażna sottostanti, spiss minn reġjuni mbiegħda. Hekk kif issir disponibbli aktar kapaċità u ntejbu l-effiċjenza tal-ħażna, qed nippjanaw li nindirizzaw sfida aktar fundamentali: inqiegħdu d-dejta qrib fejn se tiġi aċċessata sa mill-bidu.

Skalar tal-qbid tal-bidliet fid-dejta

CDC affidabbli u skalabbli — li jwassal il-bidliet tad-database lis-sistemi li jiddependu fuqha — huwa komponent kritiku mhux biss għall-istrateġija tal-caching ta’ Habitat. Miljuni ta’ bidliet maqbuda kull sekonda, minn eluf ta’ kontenituri u miljuni ta’ partizzjonijiet, jgħaddu minn aktar minn mitt topic ta’ Kafka. Dawn iħaddmu wkoll indiċijiet sekondarji b’konsistenza eventwali, pipelines taċ-ċaqliq tad-dejta, analitika offline u funzjonijiet oħra tal-prodotti f’ħin reali. Hekk kif l-infrastruttura sottostanti tagħna kibret globalment, sar dejjem aktar kumpless li nsegwu l-bidliet fir-ringieli. Jekk klijent irid jirreġistra callback li jitħaddem kull meta jinbidlu ringieli tat-tip tiegħu, fost affarijiet oħra jrid l-ewwel jidentifika liema kontijiet u kontenituri ta’ Cosmos fihom id-dejta tiegħu, u liema istanza tas-servizz CDC fir-reġjuni rispettivi qed issegwi dawk il-kontenituri. Irid ukoll jaġġusta sew il-kapaċità tal-flotta ta’ workers tas-servizz CDC, ta’ Kafka u tal-konsumatur tiegħu. Il-pjattaforma CDC tagħna għandha l-għan li taħbi din il-kumplessità kollha mill-iżviluppaturi tal-prodotti. Minflok, toffri interfaċċa sempliċi fejn il-klijenti jirreġistraw funzjoni biex tissejjaħ fuq ir-ringieli mibdula tagħhom, u aħna nieħdu ħsieb l-infrastruttura u l-iskalar kollu.

Saff ta’ kontroll intern jiżgura kontinwament li jinqabdu l-bidliet tal-kontenituri kollha meħtieġa, jagħżel minn liema reġjuni ta’ Cosmos jaqra, u jqassam ix-xogħol b’mod effiċjenti bejn eluf ta’ workers f’diversi reġjuni ġeografiċi. L-użu ta’ reġjuni replika u qari tal-feed bi prijorità aktar baxxa jipproteġi t-traffiku ta’ Habitat sensittiv għal-latenza mix-xogħlijiet tal-qbid fl-isfond. Fi flotta daqshekk kbira, il-waqfien mhux mistenni tal-workers, il-problemi tal-kontenituri, l-iżbalji fil-ħażna tal-leases, il-konfigurazzjoni invalida u l-iżbalji fid-destinazzjoni jseħħu kontinwament. Saħħaħna ċ-ċiklu tal-ħajja tal-workers CDC u l-ġestjoni tal-leases, iżolajna l-iżbalji bejn il-flussi, u bnejna salvagwardji għall-bidliet fil-konfigurazzjoni u l-introduzzjoni ta’ verżjonijiet ġodda. Nużaw kjuwijiet għal messaġġi li ma jistgħux jitwasslu biex fallimenti permanenti fil-konsenja ma jimblukkawx il-bqija tal-kju. Nilqgħu għall-interruzzjonijiet reġjonali tas-servizz billi naqilbu l-qarrejja għal reġjuni alternattivi ta’ Cosmos. Fl-iskala tagħna, saħansitra kellna nbiddlu l-SDK tas-CDC ta’ Azure biex nagħmlu l-implimentazzjoni taċ-checkpoints aktar effiċjenti, billi niġbruhom fi gruppi fil-memorja u niktbuhom fil-ħażna b’mod perjodiku biss.

Għalkemm l-użu intern ta’ Azure Cosmos DB f’Habitat huwa kumpless, il-valur tagħha dejjem kien li taħbi d-dettalji tal-infrastruttura mill-iżviluppaturi tal-prodotti biex tħaffef l-iżvilupp. Il-pjattaforma CDC tagħna mhijiex differenti.

Ħarsa ’l quddiem

Tim żgħir seta’ jappoġġja pjattaforma tal-ħażna li kienet qed tikber malajr billi żamm l-API tal-ħażna limitata apposta, kompla jkabbar il-kapaċità tas-servizz Python u ta prijorità lill-isfidi tal-inġinerija l-aktar urġenti. L-ewwel iffukajna fuq l-affidabbiltà għat-traffiku tal-prodotti kritiku għall-operat, imbagħad fuq il-prestazzjoni tal-qari għall-utenti globali, u fl-aħħar fuq l-effiċjenza operattiva fuq skala kbira. Dan l-approċċ ippermetta tkabbir rapidu u każijiet ta’ użu ġodda, filwaqt li tejjeb l-affidabbiltà, il-prestazzjoni u r-ritmu tal-iżvilupp tal-prodotti.

Biex inkabbru Habitat u l-ħażna tal-konversazzjonijiet għall-biljun utent li jmiss, irridu nindirizzaw id-diffikultà li nirreplikaw id-dejta tagħna mal-infrastruttura kollha fuq skala saħansitra akbar. Biex nilqgħu għal dan minn qabel, qed nibnu internament sistema apposta ta’ ħażna online fuq skala ta’ exabytes, ottimizzata għat-tipi ta’ dejta voluminużi ta’ Habitat. Din is-sistema li qed tiġi żviluppata tgħaqqad il-qalba ta' RocksDB Cloud ta’ Rockset ma’ replikazzjoni bbażata fuq Raft. Timplimenta l-istess mudell tad-dokumenti bħal Azure Cosmos DB, iżda tuża ħażna diżaggregata u replikazzjoni fiżika biex tnaqqas il-kapaċità flash meħtieġa, bi skambju għal qps massimu aktar baxx.

Jekk tixtieq taħdem fuq proġetti bħal dawn tal-infrastruttura tad-dejta fuq skala li twessa’ l-limiti tat-teknoloġija, ara l-pożizzjonijiet tax-xogħol vakanti tagħna⁠.

Awtur

OpenAI