IShopify ithuthele ukugcinwa kwempahla ku-MySQL
IShopify yahamisa uhlelo lwayo lokugcinwa kwempahla oluvela ku-Redis yaya ku-database ye-MySQL eyayivele ibambe irekhodi lempahla.
IShopify yahamisa uhlelo lwayo lokugcinwa kwempahla oluvela ku-Redis yaya ku-database ye-MySQL eyayivele ibambe irekhodi lempahla. Indawo ekhawulelwe yamalaini amayunithi angakhiyiwe ngamanye avumela ukukhokhelwa okusebenzisanayo ukuthi kusebenzise i-SKIP LOCKED ukukhetha amayunithi ahlukene afanelekile. Uhlelo futhi luxhomeke emikhawulweni yokuthengiselana, ukuhlelwa kwezikhiye eziyinhloko, imithetho yokugcwalisa kanye nokuqaphela isikhathi sokubamba uxhumano kuyo yonke inqubo yokukhokha.
Funda uhlelo olubhaliwe (isiNgisi) ↗
Lokho okuhlanganiswa yile vidiyo
- Imodeli endala ye-Redis yokubala ubuningi iphatha ukusebenzisana, kodwa ukuhlanzwa kokugcinwa kanye nokuvuselelwa kwerekhodi le-MySQL bekungenakwabelana ngomsebenzi owodwa wendawo.
- Esikhundleni salokho kusebenzisa umugqa owodwa weyunithi ngayinye etholakalayo endaweni egciniwe ekhawulelwe ku-1,000 ngento/indawo ngayinye. Indawo engenalutho ingadala ukugcwaliswa ngesikhathi esifanayo ngezicelo ezincintisanayo ezilinde ngemuva kokukhiya kokugcwalisa.
- I-primary key ehlanganisiwe i-(shop_id, inventory_item_id, inventory_group_id, id). IShopify yehlise izindleko zokukhiya kuphrothoyiphu yayo futhi yasebenzisa i-READ COMMITTED ukugwema izikhiye zegebe ezazivimbela ukugcwalisa.
- Ukugcina kususa imigqa yendawo ngaphambi kokufaka amarekhodi okugcina. Ukugunyaza kukhulula izikhiye zedathabhesi ngenkathi ukubamba okugciniwe kuqhubeka ngemuva kwenkokhelo; inkokhelo ephumelelayo ifuna irekhodi futhi isusa ukugcinwa kumsebenzi owodwa kamuva.
- I-MySQL ibhala i-SKIP LOCKED njengokubukwa okungahambisani okushiya imigqa ekhiyiwe. Ayisunguli ukubalwa okuphelele kwempahla noma ukuthathwa okulinganayo kwesikhathi, isebenza kuphela ezingeni lamalaini futhi ayiphephile ekukopisheni okusekelwe kumisho.
- Isibonelo somthombo sihlanganisa i-expires_at, kodwa iShopify ayibhalisi i-algorithm yokuhlanzwa kokuphela kwe-MySQL. Igatsha lokukhululwa/lokuphelelwa kwesikhathi levidiyo liyisidingo sencazelo yempilo.
- Isikhathi sokubamba uxhumano kwezinye ikhodi yokukhokha kwakuyibhodlela lokugcina lokungena. IShopify ibhale ngokuyimfihlo zombili izinhlelo, yaqhathanisa imiphumela futhi yashintsha kancane kancane nge-Redis kill-switch fallback.
Umbhalo obhaliwe ohunyushwe
Kuhunyushwe kusuka ekulandiseni kokuqala kwesiNgisi. Umsindo namazwibela atholakalayo alawulwa yi-YouTube.
Kungani kufanele kuthuthelwe ukugcinwa ku-MySQL?
0:00 Ukuphuma kudinga i-Redis ukuze ihlale ishesha. IShopify ithuthele ukugcinwa kwempahla ku-MySQL isebenzisa umugqa owodwa weyunithi ngayinye endaweni ekhawulelwe. Kungani ukhethe i-MySQL? Ungazeqa kanjani izikhiye ngokuphepha? Lena i-Daily Diff, ngaphansi kwehood. Futhi kungani imibuzo esheshayo ishayisa isilingi? IShopify iyi-platform yezentengiselwano yokuthengisa ku-inthanethi nasebusweni. I-Redis iyisitolo sedatha esingaphakathi kwememori.
0:21 I-MySQL iyi-database ehlobene, futhi iShopify yayivele igcina irekhodi layo lempahla lapho. Ukugcinwa kubamba isitoko isikhashana ngenkathi umthengi ekhokha.
Kungani izitolo ezimbili zaziyingozi?
0:29 Imodeli yabo ye-Redis yehlisa i-counter yento. Ukufaka i-oda elikhokhelwe kwakusho ukubuyekeza irekhodi le-MySQL nokuhlanza i-Redis. Lezo zinto ezihlukile zingashiya isitoko sithengiswe kabili noma singatholakali lapho kufanele sithengiseke. Imodeli endala nayo yayingenakho ukuqonda kwendawo. Okufaka esikhundleni kufanele kukhethe isitoko endaweni ethile engagcwalisa i-oda. Indawo yokugcina impahla ekontinentini elingalungile yenza ukufakwa okuhle kakhulu kwe-database kanye nesiThembiso sokulethwa esibi kakhulu. Imizamo yangaphambili ye-MySQL yasebenzisa umugqa wobuningi, ngakho izitolo eziqhudelanayo zazilayini ku
Yini eba yiyunithi engakhiyiwe?
0:56 sikhiye esifanayo. Cabanga ngentambo ye-velvet ezungeze iseli lesipredishithi. Ukwengeza abasebenzi abengeziwe kumane nje kwenza ulayini ube mude. IShopify yashintsha into engakhiyiwe. Iyunithi ngayinye etholakalayo ithola umugqa wayo. Ukukhiya kufundwa kunezela amayunithi angenye inqubo yokuthengiselana ibamba futhi ikhetha amanye afanelekile amayunithi. Abasebenzi abahlukile bangathola imigqa ehlukile, ngenxa yokuthi i-hot counter ihlala ingaphandle kwendlela yabo.
Kwenzekani lapho indawo ingenalutho?
1:15 Lelo qembu likhawulelwe emigqeni eyinkulungwane ngento ngayinye nendawo. Ukugcwaliswa kudonsa kurekhodi. Uma lingenalutho, indawo yokugcina indlela igcwalisa ngokulandelana, ngezicelo ezincintisanayo zilinde ngemuva kokukhiya kokugcwalisa. Indawo engenalutho ayisho indawo yokugcina impahla engenalutho. Ukugcina kususa imigqa yendawo ekhethiwe, bese kufaka amarekhodi okugcina ku ukuthengiselana. Ukugunyaza kukhulula izikhiye zedathabhesi.
1:35 Ukubuyisela emuva kwenza izinguquko zingasebenzi. Ukugcinwa kusinda ekucutshungulweni kwenkokhelo njengesimo esigciniwe. Inkokhelo ephumelelayo ifuna irekhodi futhi isusa ukugcinwa ngendlela efanayo. Izikhiye zedathabhesi azikaze zidinge ukubuka ifomu lokukhokha. Isikhiye sabo esiyinhloko siqala ngesitolo, into, iqembu, bese kuba ubunikazi beyunithi. Ukufanisa ukubheka kwehla ukukhiya kwe-index kuphrothoyiphu yabo. Baphinde basebenzise ukufunda okuqinisekisiwe ukugwema izikhiye zegebe ezazivimba indawo
1:57 ukugcwalisa, kanye nohlelo lwetafula olungaguquki ukuvimbela ukulinda okuyisiyingi. Isibonelo esishicilelwe sirekhoda isikhathi sokuphelelwa yisikhathi. Izinkokhelo ezishiyiwe zidinga isitoko esikhishwe ekugcineni, noma inqola yokuthenga iba umhlali. Okuthunyelwe kweShopify kushiya leyo algorithm yokuhlanzwa ingachaziwe, ngakho lo mfanekiso ukhombisa isidingo sempilo. Nansi inkinga.
Yini i-SKIP LOCKED eyishiyayo?
2:14 I-Skip locked ayifaki imigqa ekhiyiwe, ngakho incwadi isibiza umphumela wayo ngokuthi awuhambisani ukubukwa. Ayihlinzeki ngokubalwa okuphelele kwempahla noma ukuthathwa okulinganayo kwesikhathi. Gcina isinqumo sokutholakala nemithetho yokugcwalisa ezungeze sona.
Ukuphi kwakuyisilingi sangempela?
2:26 Futhi leso siphakamiso? Enye ikhodi yokukhokha yayibambe izixhumanisi zedathabhesi isikhathi eside kakhulu. IShopify yamaka abafonayo futhi yalinganisa isikhathi sokubamba uxhumano, yabe seyihlanza indlela yokukhokha futhi yabuyekeza ukusebenza okufanayo kwezintambo. Imibuzo esheshayo isengakwazi ukulinda ngaphandle kombuzo.
Kungani ngingathumela lolu hlelo?
2:38 Babhale ngokuyimfihlo zombili izinhlelo nge-Redis eneziqinisekiso, baqhathanisa imiphumela, bese beshintsha kancane kancane nge-kill switch. Isinqumo sami SHIP IT. Ngingathumela umkhawulo wokuthengiselana okwabelwana ngawo kanye nalokho kukhishwa okungabuyiselwa emuva, ngayo yonke indlela yokukhokha ihlonyiswe. Unombuzo mayelana nalokhu? Faka kumazwana. Futhi lokho yilokho okuhlukile kwanamuhla.
2:54 NginguNiko ovela ku-Axrisi. Hlanganisa ngokuzibopha.
Imithombo
- We replaced Redis with MySQL for inventory reservations—and it scaledShopify Engineering — Emilie Noel
- Simplified reservation SQL embedded in Shopify's articleShopify Engineering / CourtneySymons on GitHub Gist
- MySQL 8.0 — Locking ReadsOracle / MySQL Reference Manual
- MySQL 8.0 — Transaction Isolation LevelsOracle / MySQL Reference Manual
- What Is Shopify and How Does It Work?Shopify
- Redis quick startsRedis documentation
- What is MySQL?Oracle / MySQL Reference Manual



