Maxay tahay sababta aad ugu baahan tahay ku celcelinta isku midka ah?

Salaamu caleykum Vladislav Rodin ayaa la xiriira. Hadda waxaan dhigaa koorsooyin ku saabsan Software Architecture iyo Software Architecture-ka-sarreeya ee OTUS. Iyadoo la filayo bilowga socodka koorsada cusub "Naqshadeeye load sare" Waxaan go'aansaday in aan qoro gabal gaaban oo asal ah oo aan rabo in aan kula wadaago.

Maxay tahay sababta aad ugu baahan tahay ku celcelinta isku midka ah?

Horudhac

Sababtoo ah xaqiiqda ah in HDD ay sameyn karto kaliya qiyaastii 400-700 hawlgal ilbiriqsi (taas oo aan la barbar dhigi karin rps-ka caadiga ah ee nidaamka culeyska sareeyo), xogta diskka caadiga ah waa cirifka dhismaha. Sidaa darteed, waxaa lagama maarmaan ah in fiiro gaar ah loo yeesho qaababka miisaanka ee kaydintan.

Waqtigan xaadirka ah, waxaa jira 2 qaab oo xog-ururin ah: ku-noqosho iyo qaybin. Sharding waxay kuu ogolaanaysaa inaad cabirto hawlgalka qorista, iyo, natiijadu, dhimayso rps qoraalkiiba server ee kutladaada. Ku celcelinta waxay kuu ogolaanaysaa inaad samayso wax la mid ah, laakiin la akhriyo. Waa qaabkan qodobkan u go'ay.

Ku celcelinta

Haddii aad eegto ku celcelinta heer aad u sarreeya, waa shay fudud: waxaad lahayd hal server, xog ayaa ku jirtay, ka dibna server-kani ma sii adkeysan karo culeyska akhriska xogtan. Waxaad ku darsataa dhowr serfer oo dheeraad ah, waxaad isku dhejisaa xogta dhammaan server-yada, isticmaaluhuna wuxuu wax ka akhriyi karaa server kasta oo kutladaada ah.

Inkastoo ay muuqato fududaanteeda, waxaa jira dhawr ikhtiyaar oo lagu kala saari karo hirgelinta kala duwan ee qorshahan:

  • Doorarka kooxda (sayid-sayid ama sayid-addoon)
  • Walaxda loo soo diray (ku-saleysan, bayaan ku saleysan ama isku qasan)
  • Marka loo eego habka isku xidhka noodhka

Maanta waxaan ka hadli doonaa qodobka 3.

Sidee u dhacaa wax kala iibsiga?

Mawduucan si toos ah ulama xidhiidho ku celcelinta, maqaal gooni ah ayaa lagu qori karaa, laakiin maadaama akhrin dheeraad ah aanu faa'iido lahayn iyada oo aan la fahmin habka wax kala iibsiga, aan ku xasuusiyo waxyaabaha aasaasiga ah. Ballanqaadka wax kala iibsiga wuxuu u dhacaa 3 marxaladood:

  1. Gelida wax kala iibsiga ee diiwaanka xogta
  2. Isticmaalka macaamil ganacsi ee matoorka xogta.
  3. U soo celinta xaqiijinta macmiilka in macaamilka si guul leh loo adeegsaday.

Xogta kala duwan, algorithm-kani wuxuu yeelan karaa nuances: tusaale ahaan, mashiinka InnoDB ee xogta MySQL waxaa jira 2 log: mid loogu talagalay dib-u-celinta (log binary), iyo kan kale ee ilaalinta ACID (ka-noqoshada / dib-u-celinta), halka ku jira PostgreSQL waxaa jira hal log oo qabta labada hawlood (qor hore u qor = WAL). Laakiin waxa kor lagu soo bandhigay ayaa si sax ah u ah fikradda guud, taas oo u oggolaanaysa nuances noocaas ah in aan la tixgelin.

Isku celcelinta isku xidhan (synchronous)

Aynu ku darno macquulka ah si aan ugu celcelino isbeddelada la helay algorithm-ka macaamil ganacsi:

  1. Gelida wax kala iibsiga ee diiwaanka xogta
  2. Isticmaalka macaamil ganacsi ee matoorka xogta.
  3. U diraya xogta dhammaan nuqullada.
  4. Helitaanka xaqiijinta dhammaan nuqullada in wax kala iibsiga lagu dhammeeyay iyaga.
  5. U soo celinta xaqiijinta macmiilka in macaamilka si guul leh loo adeegsaday.

Habkan waxaan ku helnaa dhowr khasaare:

  • macmiilku waxa uu sugayaa in isbeddelada lagu dabaqo dhammaan nuqullada.
  • Marka tirada qanjirada kooxdu ay korodho, waxaan hoos u dhigaynaa suurtagalnimada in hawlgalka qorista uu guuleysto.

Haddii wax walba ay ku sii cad yihiin qodobka 1aad, markaa sababaha qodobka 2aad ayaa mudan in la sharaxo. Haddii inta lagu guda jiro ku celcelinta isku midka ah aynaan jawaab ka helin ugu yaraan hal nood, waxaan dib u soo celineynaa wax kala iibsiga. Markaa, adoo kordhinaya tirada qanjidhada kutlada, waxaad kordhinaysaa suurtogalnimada in hawlgalka qorista uu fashilmo.

Ma sugi karnaa xaqiijinta kaliya boqolkiiba qaar ka mid ah noodhka, tusaale ahaan, laga bilaabo 51% (kooram)? Haa, waan awoodnaa, laakiin nooca caadiga ah, xaqiijinta dhammaan qanjidhada ayaa loo baahan yahay, sababtoo ah tani waa sida aan u hubin karno joogteynta xogta dhamaystiran ee kutlada, taas oo ah faa'iido aan shaki lahayn ee noocaan oo kale ah.

Ku celcelinta Asynchronous (asynchronous).

Aynu wax ka beddelno algorithm-yadii hore. Waxaan u diri doonaa xogta nuqullada "mararka qaarkood ka dib", iyo "mararka qaarkood ka dib" isbeddelada ayaa lagu dabaqi doonaa nuqullada:

  1. Gelida wax kala iibsiga ee diiwaanka xogta
  2. Isticmaalka macaamil ganacsi ee matoorka xogta.
  3. U soo celinta xaqiijinta macmiilka in macaamilka si guul leh loo adeegsaday.
  4. U dirida xogta nuqul ka mid ah oo ku dabaqida isbeddelada iyaga.

Habkani wuxuu keenayaa xaqiiqda ah in kooxdu ay si dhakhso ah u shaqeyso, sababtoo ah ma ilaalinayno macmiilka sugidda xogta si ay u gaarto nuqullada iyo xitaa la go'aamiyo.

Laakiin xaalada ku shubista xogta nuqul ka mid ah "mararka qaarkood ka dib" waxay u horseedi kartaa luminta macaamil ganacsi, iyo luminta macaamil ganacsi oo uu xaqiijiyay isticmaaluhu, sababtoo ah haddii xogta aysan haysan waqti lagu soo celiyo, caddaynta macmiilka oo ku saabsan guusha hawlgalka ayaa loo diray, iyo noodhka ay isbeddeladu yimaaddeen HDD, waxaan luminay macaamilka, taas oo keeni karta cawaaqib xun.

Ku celcelinta Semisync

Ugu dambeyntii waxaan helnaa ku celcelinta semi-synchronous. Ku celcelinta noocaan ah aad looma yaqaan ama aad u caan ah, laakiin waa mid xiiso weyn leh sababtoo ah waxay isku dari kartaa faa'iidooyinka isku celcelinta isku midka ah iyo kuwa isku midka ah labadaba.

Aan isku dayno inaan isku darno 2dii hab ee hore. Ma sii hayn doono macmiilka muddo dheer, laakiin waxaan u baahan doonaa in xogta lagu celiyo:

  1. Gelida wax kala iibsiga ee diiwaanka xogta
  2. Isticmaalka macaamil ganacsi ee matoorka xogta.
  3. U diraya xogta nuqullo
  4. Helitaanka xaqiijinta nuqulka ah in isbeddellada la helay (waxaa lagu dabaqi doonaa "mararka qaarkood ka dib").
  5. U soo celinta xaqiijinta macmiilka in macaamilka si guul leh loo adeegsaday.

Fadlan la soco in algorithm-kan, luminta wax kala iibsiga uu dhaco kaliya haddii qanjidhada hesha isbeddellada iyo noodhka nuqulku ay guuldarraystaan. Suurtagalnimada fashilka noocan oo kale ah ayaa loo arkaa mid hooseeya, khatarahaasna waa la aqbalayaa.

Laakin habkan waxaa jiri kara khatar suurtagal ah in la akhriyo khayaali. Aynu qiyaasno xaaladdan soo socota: tallaabada 4, kama aannu helin xaqiijin wax nuqul ah. Waa in aan dib u soo ceshano macaamilkan oo aynaan u soo celin caddayn macmiilka. Tan iyo markii xogta lagu dabaqay tallaabada 2, waxaa jira farqi wakhti ah oo u dhexeeya dhammaadka tallaabada 2 iyo dib u noqoshada macaamilka, inta lagu jiro macaamilada isbar-bar-dhigga ah waxay arki karaan isbeddelada aan ahayn inay ku jiraan kaydka.

Ku celcelinta semisync-yar ee lumay

Haddii aad wax yar ka fikirto, kaliya waxaad bedeli kartaa tillaabooyinka algorithm-ka oo aad hagaajin kartaa dhibaatada akhrinta fantatomka ee dhacdadan:

  1. Gelida wax kala iibsiga ee diiwaanka xogta
  2. Diraya xogta koobiga
  3. Helitaanka xaqiijinta nuqulka ah in isbeddellada la helay (waxaa lagu dabaqi doonaa "mararka qaarkood ka dib").
  4. Isticmaalka macaamil ganacsi ee matoorka xogta.
  5. U soo celinta xaqiijinta macmiilka in macaamilka si guul leh loo adeegsaday.

Hadda waxaan sameynaa isbedel kaliya haddii la soo koobay.

gunaanad

Sida had iyo jeer, ma jiraan wax xal ah oo ku habboon, waxaa jira xalal go'an, kuwaas oo mid kastaa leeyahay faa'iidooyin iyo faa'iido darrooyin u gaar ah oo ku habboon xallinta dhibaatooyinka kala duwan. Tani gabi ahaanba waa run marka la dooranayo habka la isku waafajinayo xogta kaydka la soo koobay. Qaabka faa'iidooyinka ee ku-noqoshada badh-isku-dhafka ah ay leedahay si ku filan oo adag oo xiiso leh in loo tixgelin karo mid mudan in fiiro gaar ah loo yeesho, inkastoo ay yar tahay.

Waa intaas. ku arag koorsada!

Source: www.habr.com

Add a comment