Isiqulatho[Fihla][Bonisa]
Ukutya kwe-Instagram liqonga lokwabelana kunye nokunxibelelana nabantu kunye nezinto ezibalulekileyo kuwe. Xa uvula i-Instagram okanye uhlaziya ukutya kwakho, iifoto kunye neevidiyo esicinga ukuba uya kuba nomdla kuzo ziya kuvela phezulu.
Ukutya kweendaba yingqokelela yezinto eziqulathe umbhalo, imifanekiso, okanye iividiyo ezenziwe ngamanye amaziko akwisistim ekujoliswe kuyo ukuba uzifunde. Ihlala itshintsha, ngelixa eminye imibutho isenza izithuba ezintsha.
Kule post, siza kujonga ngokusondeleyo kuyilo lwenkqubo ye-Instagram feed. Ngoko, masiqale.
1. Izidingo
Imfuneko yokusebenza
- Isondlo seendaba somsebenzisi sidalwa kwizithuba ezivela kwamanye amaqumrhu akwinkqubo elandelwa ngumsebenzisi okanye anomdla kuyo.
- Umbhalo, imifanekiso, kunye neevidiyo zinokufumaneka zonke kwizithuba.
- Isondlo seendaba somsebenzisi kufuneka sihlaziywe ngokuxhonywa okutsha okwenziwe ngabanye.
Umlinganiselo ongasebenziyo
- Ukwenziwa kokutya kweendaba kufuneka kwenzeke ngexesha lokwenyani. Umsebenzisi wokugqibela kufuneka abe nemizuzwana eyi-12 kuphela yokulibaziseka.
- Ukufaka isithuba esitsha: Kufuneka kuthathe akukho ngaphezu kwemizuzwana emi-5 ukuba isithuba esitsha sivele kwisicelo seendaba emva kokuba singeniswe kwinkqubo.
2. Uqikelelo lwesakhono
- Ukusukela ngoMatshi ka-2021, abantu behlabathi ngabantu abazibhiliyoni ezisi-7.8. Ibonisa ukuba i-21% yabemi behlabathi yi-Facebook DAU (uMsebenzisi oSebenzayo weDaily) kunye ne-32% yi-Facebook MAU (uMsebenzisi oSebenza ngeNyanga) (uMsebenzisi oSebenza ngeNyanga). Iyamangalisa loo nto.
- Masenze ngathi le nkqubo siyakhayo ine-1 bhiliyoni ye-DAU yokwenza izinto zibe lula.
- Cinga ukuba umntu ulandela abantu abangama-500 okanye amashishini kuFacebook. Iqela okanye iphepha linokuqwalaselwa njengento ekhoyo.
ITrafikhi eqikelelweyo
Cinga ukuba umsebenzisi omnye ukhuphela ukutya kweendaba amaxesha ali-10 ngosuku ngalunye ngokomndilili. Ke imalunga ne-116K QPS kunye nezicelo eziyi-1e10 suku ngalunye.
Uqikelelo loGcino
Cinga ukuba sigcina izithuba ze-500 ezivela kwi-feed yeendaba zomsebenzisi ngamnye kwimemori kwi-avareji yokubuyisela ngokukhawuleza, kwaye isithuba ngasinye si-1KB ngobukhulu. Ke i-500 KB ngomsebenzisi ngamnye, i-500 TB yazo zonke ii-DAUs, kunye neekhompyuter ezingama-5000 ezine-100 GB RAM inye.
3. APIs for Systems
userId (GUID): umsebenzisi oneendaba ezithathwayo.
Le mihlaba ilandelayo iyafumaneka kwiparameter yokhetho olukhethiweyo:
- emva kwePostId (GUID): fumana iindaba ezivela kwisithuba esilandela le. Ukuba ayichazwanga, fumana ezona zithuba zamva nje.
- ukubala (inani): elona nani liphezulu lezithuba esinokuthi isicelo ngasinye sibuyiswe. Indawo yangasemva imisela inani elimiselweyo ukuba akukho nalinye elinikiweyo.
- ngaphandleIimpendulo (boolean): ithintela iimpendulo ekufakweni kweendaba.
- I-JSON ibuyile iqulethe uluhlu lwezinto zeendaba.
4. Ukuyila iDatabase
Amaziko
- umsebenzisi
- i-entityId, igama, inkcazo, kunye nesitampu sexesha zonke ziyimfuneko.
- Le mihlaba ilandelayo iyafuneka: PostId, isihloko, umbhalo, authorId, kunye nesitampu sexesha.
- isitampu sexesha, url, kunye ne-mediaId
ubudlelwane
- Abanye abasebenzisi okanye amaqumrhu angalandelwa ngumsebenzisi. (m:n)
- Umbhali-Post: Bobabini abasebenzisi kunye nemibutho inokudala izithuba. Cinga ukuba ngabasebenzisi kuphela abanokudala iiPosti ngenxa yokulula. (1:n; authorId iyalungiselelwa).
- Isithuba ngasinye sikhatshwa luhlobo oluthile lwemidiya. (1:n)
5. Uyilo olukwiNqanaba eliphezulu
Architecture
Workflows
Imveliso yokutya
Xa uJay ecela ukusasazwa kweendaba, inkqubo iya kwenza oku kulandelayo:
- Fumana izazisi zabo bonke abantu kunye nezinto ezilandelwa nguJay.
- Izithuba ezidityanisiweyo: unikwe ezo ID, fumana ezona zithuba zamva nje, zidumileyo, nezifanelekileyo.
- Beka izithuba ngokokufaneleka kwazo kunye nexesha.
- I-Cache: gcina ukutya okudaliweyo kwaye uthumele i-Jay izithuba eziphezulu ze-20.
- Xa uJay egqibile ukufunda izithuba ze-20 zokuqala, esinye isicelo sithunyelwa ukufumana izithuba ze-20 ezilandelayo.
Ukuhanjiswa kwesondlo
Cinga ukuba uJay ulandela uAayush kwaye u-Aayush uthumela nantoni na entsha. Ukutya kweendaba zikaJay kuya kufuneka kuhlaziywe yinkqubo:
- Fumana izazisi zabalandeli baka-Aayush.
- Yongeza amanqaku amatsha: Yongeza isithuba sika-Aayush kwindawo yokondla iindaba zabalandeli be-ID.
- Beka izithuba ngokokufaneleka kwazo kunye nexesha.
- Hlaziya i-cache yesithuba somgangatho.
- Abalandeli kufuneka baziswe xa izithuba ezitsha zipapashwa.
amacandelo
Uqhagamshelwano lwabasebenzisi lugcinwa ziiseva zewebhu.
Iinkqubo ezichazwe ngasentla zenziwa ngumncedisi wesicelo.
I-Cache kunye nedathabheyisi:
- Umsebenzisi wesiseko sedatha/iqumrhu
- Isiseko sedatha yobudlelwane (isithuba)
- Umfanekiso/uphawu lwevidiyo: Aayush storge
- Imetadata yonxibelelwano lwedatha
Iinkonzo ezenzelwe wena:
- Imveliso yokutya
- Isaziso sokutya
6. Uyilo oluneenkcukacha
Isizukulwana sokutya
Fan-out ukufunda uphumezo olungekho ngqiqweni:
Iingxaki kolu phumezo lungenamsebenzi ziquka:
- Abasebenzisi abanenani elikhulu labahlobo/abalandeli baya kuqaphela ukucotha okubalulekileyo kuba kufuneka sihluze, sidibanise, kwaye sibeke inani elikhulu lokuposa.
- Xa umsebenzisi elayisha iphepha lakhe, sakha umda wexesha. Oku kunokuba buvila kwaye ube ne-latency eninzi.
- Uhlaziyo ngalunye lwemeko luya kubangela uhlaziyo lwesondlo kubo bonke abalandeli kuhlaziyo oluphilayo. Oku kunokubangela ulibaziseko olumandla kwiNkonzo yethu yesiZukulwana seNdaba.
Sinako ukuvelisa kwangaphambili ubalo-maxesha kwaye silugcine kwinkumbulo ukwandisa ukusebenza kakuhle.
Imveliso ngaphandle kweintanethi (Fan-out bhala)
Sinokuba neeseva ezinikezelweyo ezihlala zisenza kwaye zigcina iindaba zabasebenzisi kwinkumbulo. Sinokuzisa nje iindaba ezivela kwindawo eyenziwe kwangaphambili, egciniweyo nanini na xa umsebenzisi efuna.
Zingaphi izinto zokutya ekufuneka zigcinwe kwinkumbulo yomsebenzisi?
Lungisa ngokusekwe kwindlela oyisebenzisa ngayo.
Ngaba kufuneka senze i-newsfeed kubo bonke abasebenzisi (kwaye siyigcine kwinkumbulo)?
- Kubantu abangangeni rhoqo.
- I-caching esekwe kwi-LRU yindlela elula.
- Isisombululo esingcono kukufumanisa indlela abasebenzisi abangena ngayo. Kunini? Zeziphi iintsuku zeveki uthetha ngazo?
Ukupapashwa kwesondlo
IFanout yinkqubo yokuthumela isithuba kubo bonke abalandeli bakho.
Fanout read(tsala)
Xa ucela ukutya kweendaba, inkqubo ifumana isicelo sokufunda. IFanout Read ithumela isicelo esifundwe kubo bonke abalandeli bakho, ibacela ukuba bafunde umxholo wabo.
eziluncedo:
- Inkqubo yokubhala ayibizi.
- Xa ufunda idata, kulula ukusebenzisa iindlela ezahlukeneyo zokuhlanganisa.
bendlela:
- Kumntu onabalandeli abaninzi, umsebenzi wokufunda ubiza kakhulu.
- Abasebenzisi abayi kubona idatha entsha de bayitsale.
- Xa sitsalela ukulanda ezona zithuba zamva nje rhoqo, kunzima ukufumana i-cadence yokutsala eyiyo, kwaye uninzi lwezicelo zokutsalwa ziya kubuyisela impendulo engenanto, ukumosha izixhobo.
Fanout bhala(tyhala)
Isicelo sokubhala senziwa kwisistim xa uthumela isithuba esitsha. Isicelo sokubhala sithunyelwa kubo bonke abalandeli bakho ukuhlaziya iindaba zabo besebenzisa i-fanout bhala.
ngalinye
- Inkqubo yokufunda ayibizi.
Con
- Kumsebenzisi onezigidi zabalandeli, i bhala inkqubo ibiza kakhulu.
Inqanaba lokuFundisa
Endaweni yoku-odola nje ukutya ngokulandelelanayo, ii-algorithms zanamhlanje zokongezelela zizama ukuqinisekisa ukuba izinto ezinokubaluleka okukhulu zibekwe phambili.
- Khetha izinto ezinokukunceda wenze isigqibo ngokufaneleka kwento yokondla, njengenani lokuthandwa, izimvo, kunye nezabelo, ixesha into leyo yagqityelwa ngayo ukuhlaziywa ukuba inqaku liqulethe iifoto okanye iividiyo, njalo njalo.
- Bala amanqaku ngokusekelwe kwiimpawu.
- Sebenzisa amanqaku ukurekisha izithuba.
Cwangcisa ii-KPI njengokugcinwa komsebenzisi, ingeniso yentengiso, njalo njalo ukuze ubone ukuba isebenza kangakanani na inkqubo yethu yokuhlela.
isiphelo
Ngaphandle kwento yokuba i-Instagram okanye ishishini lomzali uFacebook liqumrhu elikhulu, linokuqonda okungcono uyilo lwenkqubo.
Ndizame konke okusemandleni am ukukunika isishwankathelo esikwinqanaba eliphezulu le-Instagram feed.
Ndiyathemba ukuba ibiluncedo kwaye uya kuyisebenzisa kakuhle.
Shiya iMpendulo