DBA bot Joe. Anatoly Stansler (Postgres.ai)

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Sidee horumariyaha dhabarka u fahmaa in waydiinta SQL ay si fiican uga shaqayn doonto "prod"? Shirkadaha waaweyn ama si degdeg ah u koraya, qof kastaa ma heli karo "alaabta". Iyo helitaanka, dhammaan codsiyada si xanuun la'aan ah looma hubin karo, iyo abuurista nuqul ka mid ah xogta waxay badanaa qaadataa saacado. Si loo xalliyo dhibaatooyinkan, waxaan abuurnay DBA macmal ah - Joe. Waxaa mar hore si guul leh looga hirgeliyay shirkado dhowr ah waxayna caawisay in ka badan dhowr iyo toban horumariye.

Video:

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Salaamu calaykum! Magacaygu waa Anatoly Stansler. Waxaan u shaqeeyaa shirkad postgres.ai. Waxaa naga go'an inaan dardargelino geeddi-socodka horumarinta anagoo ka saarayna dib-u-dhacyada la xiriira shaqada Postgres ee horumariyeyaasha, DBA-yada iyo QA-yada.

Waxaan leenahay macaamiil aad u fiican, maantana qayb ka mid ah warbixinta ayaa lagu soo bandhigi doonaa kiisas aan la kulannay markii aan la shaqeynay iyaga. Waxaan ka hadli doonaa sidii aan uga caawinay inay xaliyaan dhibaatooyin aad u daran.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Marka aynu horumarinayno oo aynu samaynayno hayaanka culus ee culus, waxaynu iswayddiinnaa su'aasha ah: "Tahriibkani ma kici doonaa?". Waxaan isticmaalnaa dib u eegis, waxaan isticmaalnaa aqoonta asxaabta khibrada badan leh, khabiirada DBA. Waxayna sheegi karaan inay duuli doonto iyo inkale.

Laakiin waxaa laga yaabaa inay fiicnaan lahayd haddii aan nafteena ku tijaabin karno nuqullo cabbir buuxa ah. Oo maanta waxaan ka hadli doonaa oo kaliya waxa hababka imtixaanada hadda yihiin iyo sida loo samayn karo si ka wanaagsan iyo qalabkee. Waxaan sidoo kale ka hadli doonaa faa'iidooyinka iyo khasaarooyinka hababka noocaas ah, iyo waxa aan halkan ku hagaajin karno.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Yaa waligiis si toos ah tusmeeyayaasha u sameeyay ama sameeyay wax isbedel ah? xoogaa xoogaa ah. Oo yay tani u horseeday xaqiiqda ah in xogta luntay ama ay jirto waqti-dhimis? Markaa waad garanaysaa xanuunkan. Allaa mahad leh waxaa jira gurmadyo.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Habka ugu horreeya waa tijaabinta prod. Ama, marka horumariye ku fadhiisto mashiinka maxalliga ah, wuxuu leeyahay xogta tijaabada, waxaa jira nooc ka mid ah xulashada xaddidan. Oo waxaan u soo rognay si aan u kicino, waxaanan helnaa xaaladdan.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Way xanuunaysaa, waa qaali. Waxay u badan tahay inay fiican tahay inaan la yeelin.

Oo waa maxay habka ugu wanaagsan ee loo sameeyo?

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Aan qaadano diyaarinta oo aan doorano qayb ka mid ah prod halkaas. Ama sida ugu fiican, aan soo qaadanno faa'iido dhab ah, dhammaan xogta. Ka dib markii aan u soo saarno gudaha, waxaan sidoo kale hubin doonaa diyaarinta.

Tani waxay noo ogolaan doontaa inaan ka saarno qaar ka mid ah khaladaadka, ie. ka hortagga inay ku jiraan prod.

Waa maxay dhibaatooyinka?

  • Dhibaatadu waa in aan la wadaagno bandhigan asxaabta. Iyo inta badan waxay dhacdaa inaad sameyso nooc ka mid ah isbeddelka, bam - oo ma jiraan wax xog ah, shaqadu waxay hoos u dhigtaa qulqulka. Diyaarintu waxay ahayd terabyte-badan. Oo waa inaad wakhti dheer sugtaa inuu mar kale kaco. Waxaana go'aansanay in aan soo gaba-gabeyno berrito. Taasi waa, waxaan leenahay horumar.
  • Iyo, dabcan, waxaan leenahay asxaab badan oo halkaas ka shaqeeya, kooxo badan. Waana in gacanta lagu sameeyaa. Tanina waa dhib.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Oo waxaa habboon in la yiraahdo waxaan leenahay hal isku day, hal tallaal, haddii aan rabno inaan wax ka beddelno kaydka xogta, taabo xogta, beddel qaabdhismeedka. Hadday wax khaldameen, haday khalad ka dhaceen tahriibka, si degdeg ah dib ugu noqon mayno.

Tani way ka fiican tahay qaabkii hore, laakiin weli waxaa jirta suurtogalnimo sare oo ah in nooc ka mid ah qaladku uu aado wax soo saarka.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Maxaa naga diidaya inaan siinno horumariye kasta kursi tijaabo ah, nuqul buuxa? Waxaan filayaa inay iska caddahay waxa jidka ku jira.

Yaa haysta kayd xogeed ka weyn terabyte? In ka badan kala badh qolka.

Way caddahay in mashiinada lagu hayo horumariye kasta, marka ay jirto wax soo saar aad u weyn, ay aad qaali u yihiin, ka sokow, waxay qaadataa waqti dheer.

Waxaan leenahay macaamiis kuwaas oo ogaaday in ay aad muhiim u tahay in la tijaabiyo dhammaan isbeddelada koobiyada buuxa, laakiin xogtooda ayaa ka yar terabyte, mana jiraan wax agab ah oo lagu hayo kursiga tijaabada ee horumariye kasta. Sidaa darteed, waa inay ku soo dejiyaan qashinka gudaha mashiinkooda oo ay tijaabiyaan habkan. Waxay qaadataa waqti badan.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Xitaa haddii aad ku sameyso gudaha kaabayaasha, ka dibna soo dejinta hal terabyte ee xogta saacaddiiba waa mid aad u wanaagsan. Laakiin waxay isticmaalaan qashin-qubka macquulka ah, waxay ka soo dejiyaan gudaha daruuraha. Iyaga, xawaaruhu wuxuu ku saabsan yahay 200 gigabytes saacaddii. Waxayna weli wakhti qaadanaysaa in laga soo jeesto qashinka macquulka ah, la rogo tusmooyinka, iwm.

Laakiin waxay adeegsadaan habkan sababtoo ah waxay u oggolaanaysaa inay ku ilaashadaan badeecada la isku halayn karo.

Maxaan ka qaban karnaa halkan? Aynu ka dhigno kuraasta tijaabada raqiis oo aan siino horumariye kasta kursigiisa imtixaanka.

Tanina waa suurtogal.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Habkan, marka aan samayno kloon khafiif ah horumariye kasta, waxaan ku wadaagi karnaa hal mashiin. Tusaale ahaan, haddii aad haysato kayd xogeed oo 10TB ah oo aad rabto inaad siiso 10 horumariye, uma baahnid inaad haysato XNUMX x XNUMXTB database. Waxa aad u baahan tahay hal mashiin si aad nuqullo khafiif ah oo go'doonsan ugu samayso horumariye kasta adoo isticmaalaya hal mishiin. Waxaan kuu sheegi doonaa sida ay u shaqeyso wax yar ka dib.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Tusaalaha dhabta ah:

  • DB - 4,5 terabytes.

  • Waxaan ku heli karnaa nuqullo madaxbannaan 30 ilbiriqsi gudahood.

Uma baahnid inaad sugto istaajin imtixaan oo waxay kuxirantahay inta uu le'eg yahay. Waxaad ku heli kartaa ilbiriqsiyo gudahood. Waxay noqon doontaa deegaan go'doonsan, laakiin xogta wadaaga.

Tani waa wax weyn. Halkan waxaan kaga hadlaynaa sixirka iyo koonka is barbar socda.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Xaaladeena, tani waxay shaqeysaa iyadoo la adeegsanayo nidaamka OpenZFS.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

OpenZFS waa nidaam faylal ah oo koobi ku qoran oo taageera sawir-qaadista iyo xirmooyinka ka baxsan sanduuqa. Waa mid la isku halayn karo oo la qiyaasi karo. Aad bay u fududahay in la maareeyo. Dhab ahaantii waxaa loo diri karaa laba kooxood.

Waxaa jira doorashooyin kale:

  • lvm,

  • Kaydinta (tusaale ahaan, Kaydinta saafiga ah).

Database Lab-ka aan ka hadlayo waa modular. Waxaa lagu hirgelin karaa iyadoo la adeegsanayo xulashooyinkan. Laakiin hadda, waxaan diiradda saarnay OpenZFS, sababtoo ah waxaa jiray dhibaatooyin LVM gaar ah.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Sidee u shaqeysaa? Halkii aan dib u qori lahayn xogta mar kasta oo aan beddelno, waxaan ku keydineynaa innagoo si fudud u calaamadeynayna in xogtan cusub ay ka timid waqti cusub, sawir cusub.

Iyo mustaqbalka, markaan rabno inaan dib u soo laabano ama aan rabno inaan samayno kloone cusub oo ka mid ah nooc duug ah, waxaan dhahnaa kaliya: "OK, na sii xogtan blocks ee sidan oo kale ah."

Isticmaaluhuna wuxuu la shaqayn doonaa xogtan oo kale. Isagu si tartiib tartiib ah ayuu u beddeli doonaa, oo u samayn doonaa muuqaalkiisa.

Waana laan doonaa. Horumariye kasta oo kiiskeena ku jira wuxuu heli doonaa fursad uu ku yeesho clone u gaar ah oo uu wax ka beddelo, xogta la wadaago ayaa la wadaagi doonaa qof kasta.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Si aad u geyso nidaamkan guriga, waxaad u baahan tahay inaad xalliso laba dhibaato:

  • Midda koowaad waa isha xogta, halka aad ka soo qaadi doonto. Waxaad samayn kartaa ku celcelin wax soo saar. Waxaad horeyba u isticmaali kartaa kaydka aad habaysay, waxaan rajeynayaa. WAL-E, WAL-G ama Barman. Xitaa haddii aad isticmaalayso nooc ka mid ah xalalka Cloud sida RDS ama Cloud SQL, markaa waxaad isticmaali kartaa qashinka macquulka ah. Laakiin waxaan wali kugula talineynaa inaad isticmaasho kaydinta, sababtoo ah habkan waxaad sidoo kale ilaalin doontaa qaabdhismeedka jireed ee faylasha, taas oo kuu ogolaan doonta inaad xitaa ku dhowaato qiyaasaha aad ku arki lahayd wax soo saarka si aad u qabato dhibaatooyinkaas jira.

  • Midda labaad waa meesha aad rabto inaad ku martigeliso Database Lab. Waxay noqon kartaa Cloud, waxay noqon kartaa goobta. Waa muhiim in halkan lagu sheego in ZFS ay taageerto isku-buufinta xogta. Waxayna si fiican u qabataa.

Bal qiyaas in mid kasta oo noocan oo kale ah, iyada oo ku xidhan hawlgallada aan ku samayno saldhigga, nooc ka mid ah dev ayaa kori doona. Tan, dev wuxuu sidoo kale u baahan doonaa meel bannaan. Laakiin xaqiiqda ah in aan qaadanay saldhigga 4,5 terabytes, ZFS waxay ku cadaadin doontaa 3,5 terabytes. Tani way kala duwanaan kartaa iyadoo ku xiran goobaha. Oo waxaan weli haysanaa boos dev.

Nidaamkan oo kale waxaa loo isticmaali karaa xaalado kala duwan.

  • Kuwani waa horumariyeyaal, DBA-yada ansixinta weydiinta, ee hagaajinta

  • Tan waxaa loo isticmaali karaa imtixaanka QA si loo tijaabiyo hayaanka gaarka ah ka hor inta aanaan u gudbin wax soo saarka. Waxaan sidoo kale kor u qaadi karnaa deegaanno gaar ah oo loogu talagalay QA oo leh xog dhab ah, halkaas oo ay ku tijaabin karaan shaqeyn cusub. Waxayna qaadan doontaa ilbiriqsiyo halkii ay ka ahaan lahayd saacado sugitaan, iyo laga yaabee maalmo xaalado kale oo aan nuqullo khafiif ah la isticmaalin.

  • Iyo kiis kale. Haddii shirkadu aysan lahayn nidaam falanqeyn ah oo la dejiyay, markaa waxaan go'doomin karnaa clone khafiif ah oo ka mid ah saldhigga alaabta oo aan siino su'aalo dheer ama tilmaamo gaar ah oo loo isticmaali karo falanqaynta.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Habkan:

  1. Itimaalka hooseeya ee khaladaadka "prod", sababtoo ah waxaan tijaabinay dhammaan isbeddelada xogta cabbirka buuxa.

  2. Waxaan leenahay dhaqan imtixaan, sababtoo ah hadda uma baahnid inaad saacado sugto istaagidaada.

  3. Oo ma jiro wax caqabad ah, ma jiro sugitaan inta u dhaxaysa imtixaanada. Dhab ahaantii waad tagi kartaa oo hubin kartaa. Wayna fiicnaan doontaa sidaan oo kale marka aynu dardargelino horumarka.

  • Waxaa yaraan doona dib-u-soo-nooleynta. Kutaanno yar ayaa ku dambayn doona faa'iido. Wax yar ka dib ayaanu dib u soo saari doonaa.

  • Waxaan dib u celin karnaa isbeddelada aan laga laaban karin. Tani maaha habka caadiga ah.

  1. Tani waa faa'iido sababtoo ah waxaan wadaagnaa agabyada kuraasta imtixaanka.

Durba way wanaagsan tahay, laakiin maxaa kale oo la dardargelin karaa?

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Thanks to nidaamka noocan oo kale ah, waxaan si weyn u yarayn karnaa marinka gelitaanka imtixaankan oo kale.

Hadda waxa jira goobaabin xun oo ay tahay horumariyuhu inuu noqdo khabiir si uu u helo xogta dhabta ah ee buuxda. Waa in lagu aaminaa galaangalkan oo kale.

Laakiin sida loo koro haddii aysan jirin. Laakiin ka waran haddii aad haysato xog aad u yar oo tijaabo ah oo keliya? Markaa ma heli doontid waayo-aragnimo dhab ah.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Sidee looga baxaa goobadan? Sida interface-kii ugu horreeyay, oo ku habboon horumariyeyaasha heer kasta, waxaan doorannay Slack bot. Laakiin waxay noqon kartaa interface kasta oo kale.

Maxaa kuu ogolaanaya inaad sameyso? Waxaad qaadan kartaa su'aal gaar ah oo u diri kartaa kanaal gaar ah oo loogu talagalay kaydinta xogta. Waxaan si toos ah u diri doonaa clone khafiif ah ilbiriqsiyo gudahood. Aan socodsiino codsigan. Waxaan ururinnaa cabbirada iyo talooyinka. Aan muujino muuqaal. Kadibna clone-kan ayaa sii ahaan doona si waydiintan si uun loo wanaajiyo, loogu daro tusmooyin, iwm.

Iyo sidoo kale Slack waxay ina siinaysaa fursado iskaashi oo ka baxsan sanduuqa. Maadaama kani yahay kanaal kaliya, waxaad ka bilaabi kartaa inaad ka hadasho codsigan isla markaaba mawduuca codsigan oo kale, ku dheji asxaabtaada, DBA-yada gudaha shirkadda.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Laakiin waxaa jira, dabcan, dhibaatooyin. Sababtoo ah tani waa adduunka dhabta ah, waxaana isticmaaleynaa server-ka martigelinaya clones badan hal mar, waa inaan ku cadaadinnaa qadarka xusuusta iyo awoodda CPU ee ay heli karaan clones.

Laakin si baaritaanadani ay u noqdaan kuwo macquul ah, waxaad u baahan tahay inaad si uun u xalliso dhibaatadan.

Way caddahay in qodobka muhiimka ahi yahay xog isku mid ah. Laakiin mar hore ayaan haysanaa. Oo waxaan rabnaa in aan gaarno qaabeynta isku mid ah. Oo waxaan ku siin karnaa habayn isku mid ah sida.

Way fiicnaan lahayd in la haysto qalab la mid ah kan wax soo saarka, laakiin way ka duwanaan kartaa.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Aynu xasuusanno sida Postgres ay ula shaqeyso xusuusta. Waxaan haynaa laba kayd. Mid ka socda nidaamka faylka iyo hal Postgres oo u dhashay, ie. Cache Buffer la wadaago.

Waxaa muhiim ah in la ogaado in Cache Buffer la wadaago la qoondeeyay marka Postgres bilaabmo, iyadoo ku xiran hadba inta aad ku qeexday qaabeynta.

Cache labaadna waxay isticmaashaa dhammaan boosaska la heli karo.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Oo markaan ka samayno dhowr clone hal mashiin, waxay soo baxday inaan si tartiib tartiib ah u buuxinno xusuusta. Iyo si wanaagsan, Cache Buffer La Wadaago waa 25% wadarta tirada xusuusta ee laga heli karo mashiinka.

Oo waxay soo baxday in haddii aanaan beddelin halbeeggan, markaa waxaan awood u yeelan doonnaa inaan ku shaqeyno 4 jeer oo keliya hal mashiin, taas oo ah, 4 ka mid ah klonyadan khafiifka ah ee wadarta. Tani, dabcan, waa mid xun, sababtoo ah waxaan rabnaa inaan haysanno wax badan oo iyaga ka mid ah.

Laakiin dhanka kale, Buffer Cache waxaa loo isticmaalaa in lagu fuliyo su'aalaha tusmooyinka, taas oo ah, qorshuhu wuxuu ku xiran yahay inta ay le'eg yihiin kaydkayaga. Oo haddii aan kaliya qaadanno halbeeggan oo aan yareyno, markaa qorshayaashayadu wax badan ayay beddeli karaan.

Tusaale ahaan, haddii aan ku hayno kayd weyn oo ku saabsan prod, markaa Postgres waxay doorbidi doontaa inay isticmaasho index. Haddii kale, markaa waxaa jiri doona SeqScan. Maxaase dantu noqon lahayd haddii qorshayaashayadu isku mid noqon waayaan?

Laakiin halkan waxaan ku nimid gabagabada in xaqiiqda qorshaha Postgres uusan ku xirneyn cabbirka gaarka ah ee lagu qeexay Buffer Shared ee qorshaha, waxay kuxirantahay waxtarka_cache_size.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Effective_cache_size waa qiyaasta qiyaasta kaydka ee noo diyaar ah, tusaale ahaan wadarta kaydka Buffer Cache iyo nidaamka faylka. Tan waxaa dejiyay qaabaynta Xusuustanna lama qoondayn.

Iyada oo ay ugu wacan tahay cabbirkan, waxaan ku khiyaanayn karnaa Postgres, annaga oo leh runtii waxaan haynaa xog badan oo la heli karo, xitaa haddii aanaan haysan xogtan. Sidaas awgeed, qorshayaashu waxay si buuxda ula jaan qaadi doonaan wax soo saarka.

Laakiin tani waxay saamayn kartaa wakhtiga. Su'aalahana waxaan ku wanaajinaa waqtiga, laakiin waxaa muhiim ah in waqtigu ku xiran yahay arrimo badan:

  • Waxay kuxirantahay rarka hadda saaran prod.

  • Waxay kuxirantahay sifooyinka mashiinka laftiisa.

Tanina waa halbeeg aan toos ahayn, laakiin dhab ahaantii waxaan si sax ah u wanaajin karnaa qaddarka xogta ay weydiintan akhrin doonto si natiijada loo helo.

Oo haddii aad rabto in wakhtigu u dhawaado waxa aan ku arki doono prod, markaa waxaan u baahanahay inaan qaadno qalabka ugu la midka ah iyo, suurtogalnimada, xitaa in ka badan si dhammaan clones ay ku habboon yihiin. Laakiin tani waa tanaasul, tusaale ahaan, waxaad heli doontaa isla qorshooyin isku mid ah, waxaad arki doontaa inta xog ee su'aal gaar ah la akhrin doono waxaadna awoodi doontaa inaad soo gabagabeyso inay su'aashani wanaagsan tahay (ama haajirtay) ama ay xun tahay, waxay weli u baahan tahay in la hagaajiyo. .

Aynu eegno sida Joe si gaar ah loo hagaajiyay.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Aynu codsi ka soo qaadanno nidaam dhab ah. Xaaladdan, kaydku waa 1 terabyte. Oo waxaan rabnaa inaan tirino tirada qoraallada cusub ee lahaa in ka badan 10 likes.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Waxaan fariin u qoraynaa kanaalka, clone ayaa nala geeyay. Oo waxaan arki doonaa in codsiga noocan oo kale ah uu ku dhammaan doono 2,5 daqiiqo. Tani waa waxa ugu horreeya ee aan ogaanno.

B Joe wuxuu ku tusi doonaa talooyin toos ah oo ku salaysan qorshaha iyo cabbirada.

Waxaan arki doonaa in weydiintu ay socodsiiso xog aad u badan si loo helo tiro yar oo saf ah. Iyo nooc ka mid ah tusmaynta gaarka ah ayaa loo baahan yahay, tan iyo markii aan ogaanay inay jiraan safyo badan oo la sifeeyay su'aasha.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Aynu si qoto dheer u eegno waxa dhacay. Runtii, waxaan aragnaa inaan akhrinay ku dhawaad ​​hal iyo bar gigabytes oo xog ah oo laga helay kaydka faylka ama xitaa diskka. Tanina ma fiicna, sababtoo ah waxaan helnay 142 xariiq oo kaliya.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Oo, waxay u ekaan kartaa, inaan halkan ku hayno index scan oo ay ahayd inaan si dhakhso ah u shaqeyno, laakiin maadaama aan shaandheynay khadadka badan (waxay ahayd inaan tirino), weydiintu si tartiib tartiib ah ayey u shaqeysay.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Oo tani waxay ku dhacday qorshaha sababtoo ah xaqiiqda ah in shuruudaha weydiinta iyo shuruudaha tusaha qayb ahaan aysan ku habboonayn.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Aan isku dayno inaan tusmada ka dhigno mid sax ah oo aan aragno sida fulinta weydiintu isu beddesho intaas ka dib.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Abuuritaanka tusaha waxay qaadatay waqti dheer, laakiin hadda waxaan hubineynaa weydiinta oo aragnaa in waqtiga halkii 2,5 daqiiqo uu yahay kaliya 156 millise seconds, taas oo ku filan. Waxaana akhrinay kaliya 6 megabyte oo xog ah.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Oo hadda waxaan isticmaalnaa index kaliya scan.

Sheeko kale oo muhiim ah ayaa ah in aan rabno in aan u soo bandhigno qorshaha qaab la fahmi karo. Waxaan hirgelinay sawir-qaadista anagoo adeegsanayna Sawirrada Flame.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Kani waa codsi ka duwan, ka daran. Oo waxaan ku dhisnaa Garaafyada Ololka iyadoo loo eegayo laba qaybood: tani waa tirada xogta ay noodhka gaarka ah ku tirinayso qorshaha iyo wakhtiga, i.e. wakhtiga fulinta ee noodhka.

Halkan waxaan ku barbardhigi karnaa noodhadhka gaarka ah midba midka kale. Wayna kala caddaan doontaa mid iyaga ka mid ah oo qaata wax ka badan ama ka yar, taas oo inta badan ay adag tahay in lagu sameeyo hababka kale ee wax u dhigista.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Dabcan, qof kastaa wuu ogyahay explain.depesz.com. Muuqaalka wanaagsan ee muuqaalkan ayaa ah in aan keydinno qorshaha qoraalka oo aan sidoo kale dhigno qaar ka mid ah cabbirrada aasaasiga ah miiska si aan u kala saarno.

Iyo horumarinta kuwaas oo aan weli u dhex gelin mawduucan sidoo kale waxay isticmaalaan explain.depesz.com, sababtoo ah way u fududahay iyaga inay ogaadaan cabbirada muhiimka ah iyo kuwa aan ahayn.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Waxaa jira hab cusub oo aragga - tani waa sharrax.dalibo.com. Waxay sameeyaan muuqaal geed, laakiin aad bay u adag tahay in la is barbar dhigo noodhka midba midka kale. Halkan waxaad si fiican u fahmi kartaa qaab-dhismeedka, si kastaba ha ahaatee, haddii uu jiro codsi weyn, markaa waxaad u baahan doontaa inaad dib u soo celiso, laakiin sidoo kale doorasho.

iskaashiga

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Iyo, sidaan idhi, Slack wuxuu na siinayaa fursad aan ku wada shaqayno. Tusaale ahaan, haddii aan la kulanno su'aal adag oo aan caddayn sida loo hagaajiyo, waxaan arrintan ku caddayn karnaa asxaabtayada mawduuca Slack.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Waxay noo muuqataa inay muhiim tahay in lagu tijaabiyo xogta cabbirka buuxa. Si tan loo sameeyo, waxaanu samaynay Qalabka Cusboonaysiinta Database Lab, kaas oo laga heli karo il furan. Waxaad sidoo kale isticmaali kartaa Joe bot. Waxaad hadda qaadan kartaa oo ka hirgelin kartaa meeshaada. Dhammaan hagaha ayaa laga heli karaa halkaas.

Waxa kale oo muhiim ah in la ogaado in xalka laftiisa aanu ahayn kacaan, sababtoo ah waxaa jira Delphix, laakiin waa xal ganacsi. Gebi ahaanba waa la xidhay, aad bay qaali u tahay. Waxaan si gaar ah ugu takhasusnay Postgres. Dhammaan kuwanu waa alaabooyin il furan. Nagu soo biir!

Waa halka aan ku dhamaanayo. Mahadsanid!

Su'aalahaada

Hello! Waad ku mahadsan tahay warbixinta! Aad u xiiso badan, gaar ahaan aniga, sababtoo ah waxaan xalliyay dhib isku mid ah waqti ka hor. Oo sidaas daraaddeed waxaan qabaa dhowr su'aalood. Waxaan rajeynayaa inaan heli doono ugu yaraan qayb ka mid ah.

Waxaan la yaabanahay sidaad u xisaabin lahayd goobta deegaankan? Tiknoolajiyadu waxay ka dhigan tahay in xaalado gaar ah, clones-kaagu ay kori karaan xajmiga ugu sarreeya. Ku dhawaad ​​​​hadalka, haddii aad haysatid 10 terabyte database iyo 10 clone, markaa way fududahay inaad ku ekaato xaalad uu mid kastaa miisaankiisu yahay XNUMX xog gaar ah. Sidee loo xisaabiyaa meeshan, taas oo ah, delta aad ka hadashay, oo ay ku noolaan doonaan clones?

Su'aal wanaagsan. Waa muhiim inaad la socoto clones gaar ah halkan. Oo haddii clone ay leedahay isbeddel aad u weyn, waxay bilaabataa inay koraan, ka dibna waxaan marka hore soo saari karnaa digniin ku saabsan tan isticmaalaha, ama isla markiiba joojin kara clone-kan si aynaan u helin xaalad fashilan.

Haa, waxaan qabaa su'aal buul ah. Taasi waa, sidee ayaad u hubinaysaa wareegga nolosha ee cutubyadan? Waxaan leenahay dhibaatadan iyo sheeko dhan oo gooni ah. Sidee tani u dhacdaa?

Waxaa jira xoogaa ttl ah oo loogu talagalay clone kasta. Asal ahaan, waxaan leenahay ttl go'an.

Ka warran, haddaysan sir ahayn?

1 saac, i.. shaqo la'aan - 1 saac. Haddii aan la isticmaalin, markaa waan garaacnaa. Laakiin halkan ma jiro wax la yaab leh, maadaama aan kor u qaadi karno clone ee ilbiriqsiyo. Oo haddii aad mar kale u baahan tahay, markaas fadlan.

Waxaan sidoo kale xiiseynayaa doorashada tignoolajiyada, sababtoo ah, tusaale ahaan, waxaan isticmaalnaa habab dhowr ah oo isku mid ah hal sabab ama mid kale. Waa maxay sababta ZFS? Maxaad u isticmaali wayday LVM? Waxaad sheegtay inay jiraan dhibaatooyin LVM ah. Dhibaatadu maxay ahaayeen? Fikradayda, ikhtiyaarka ugu fiican waa kaydinta, marka la eego waxqabadka.

Waa maxay dhibaatada ugu weyn ee ZFS? Xaqiiqda ah inaad ku shaqeyso isla martigeliyaha, ie. dhammaan xaaladaha waxay ku noolaan doonaan isla OS isku mid ah. Iyo kiiska kaydinta, waxaad ku xidhi kartaa qalab kala duwan. Oo cidhiidhigu waa uun blocks kuwaas oo ku jira nidaamka kaydinta. Iyo su'aasha doorashada tignoolajiyada waa mid xiiso leh. Waa maxay sababta aan LVM?

Gaar ahaan, waxaan kaga hadli karnaa LVM marka la kulmayo. Ku saabsan kaydinta - waa qaali. Waxaan ka hirgelin karnaa nidaamka ZFS meel kasta. Waxaad ku dhejin kartaa mashiinkaaga. Waxaad si fudud u soo dejisan kartaa kaydka oo aad geyn kartaa. ZFS waxaa lagu rakibay ku dhawaad ​​meel walba haddii aan ka hadlayno Linux. Taasi waa, waxaan helnaa xal aad u dabacsan. ZFS lafteedu waxay bixisaa wax badan oo ka baxsan sanduuqa. Waxaad geli kartaa xogta ugu badan ee aad rabto, ku xidho tiro badan oo saxan ah, waxaa jira sawiro. Iyo, sida aan sheegay, way fududahay in la maamulo. Taasi waa, waxay u muuqataa mid aad u fiican in la isticmaalo. Waa la imtixaamay, waa sannado badan. Waxa uu leeyahay bulsho aad u ballaadhan oo koraysa. ZFS waa xal aad loogu kalsoon yahay.

Nikolai Samokhvalov: Ma ka faalloon karaa intaas? Magacaygu waa Nikolay, waxaan la shaqeynaa Anatoly. Waxaan oggolahay in kaydinta ay aad u fiican tahay. Qaar ka mid ah macaamiisheena ayaa haysta kaydinta saafiga ah iwm.

Anatoly si sax ah ayaa loo xusay in aan diirada saarno modularity. Iyo mustaqbalka, waxaad hirgelin kartaa hal interface - qaado sawir-qaadis, samee clone, burburiso clone. Dhammaantood way fududahay. Oo kaydinta waa qabow, haddii ay tahay.

Laakin ZFS waa u diyaar qof walba. DelPhix waa ku filan tahay, waxay leeyihiin 300 oo macaamiil ah. Kuwaas, hantida 100 waxay leedahay 50 macaamiil, ie. waxay ku wajahan yihiin NASA, iwm. Waa waqtigii qof kastaa heli lahaa tignoolajiyadan. Taasina waa sababta aan u leenahay isha furan ee Core. Waxaan leenahay qayb interface ah oo aan ahayn il furan. Tani waa madal aan ku tusi doono. Laakiin waxaan rabnaa in ay noqoto mid la heli karo qof walba. Waxaan rabnaa inaan sameyno kacdoon si ay dhammaan tijaabiyeyaashu u joojiyaan wax-ku-sheegga laptop-yada. Waa inaan qornaa SELECT oo isla markiiba aragnaa inay gaabis tahay. Jooji sugitaanka DBA inay kuu sheegaan waxa ku saabsan. Waa kan hadafka ugu weyn. Oo waxaan filayaa in aan dhammaanteen u iman doono tan. Waxaanan u samaynaa shaygan qof walba inuu haysto. Sidaa darteed ZFS, sababtoo ah waxaa laga heli doonaa meel kasta. Waad ku mahadsan tahay bulshada xallinta dhibaatooyinka iyo haysta shatiga il furan, iwm.*

Salaan! Waad ku mahadsan tahay warbixinta! Magacaygu waa Maxim. Arrima isku mid ah ayaanu ka qabanay. Iyaga ayaa iskood u go'aansaday. Sideed u wadaagaysaa kheyraadka inta u dhaxaysa clones-kan? Mid kastaa wuxuu samayn karaa wax u gaar ah wakhti kasta: mid baa tijaabiya hal shay, mid kale, qof ayaa dhisaya index, qof ayaa leh shaqo culus. Oo haddii aad wali u qaybin karto CPU, ka dibna IO, sidee u qaybin kartaa? Tani waa su'aasha ugu horeysa.

Su'aasha labaadna waxay ku saabsan tahay kala duwanaanshaha tarabuunka. Aynu nidhaahno waxaan ku haystaa ZFS halkan wax walbana waa qabow, laakiin macmiilka prod ma haysto ZFS, laakiin ext4, tusaale ahaan. Sidee xaaladdan?

Su'aalaha aad bay u fiican yihiin. Dhibaatadan waxaan xoogaa ku sheegay in aan wadaagno kheyraadka. Xalkuna waa kan. Bal qiyaas inaad tijaabinayso diyaarinta. Waxaad sidoo kale yeelan kartaa xaaladdan oo kale isla waqtigaas in qof bixiyo hal rar, qof kale. Natiijo ahaan, waxaad arkaysaa cabbirro aan la fahmi karin. Xataa dhib la mid ah waxay ku noqon kartaa prod. Markaad rabto inaad hubiso qaar ka mid ah codsiyada oo aad aragto in ay jirto dhibaato - si tartiib tartiib ah ayey u shaqeysaa, ka dibna dhab ahaantii dhibaatadu ma ahayn codsiga, laakiin xaqiiqda ah in ay jirto nooc ka mid ah culeyska barbar socda.

Haddaba, waxaa muhiim ah halkan in diiradda la saaro qorshaha uu noqon doono, tallaabooyinka aan ku qaadi doono qorshaha iyo inta xog ee aan arrintan u soo bandhigi doono. Xaqiiqda ah in saxanadahayada, tusaale ahaan, lagu dhejin doono wax, waxay si gaar ah u saameyn doontaa waqtiga. Laakiin waxaan ku qiyaasi karnaa sida loo raray codsigan iyadoo loo eegayo tirada xogta. Muhiim ma aha in isla mar ahaantaana ay jiri doonto nooc dil ah.

Waxaan qabaa laba su'aalood. Tani waa wax aad u qurux badan. Miyay jireen kiisas xogta wax soo saarku ay muhiim tahay, sida lambarada kaararka deynta? Wax diyaar ah ma jiraan mise waa hawl gooni ah? Iyo su'aasha labaad - ma jiraan wax sidan oo kale ah MySQL?

Ku saabsan xogta. Waanu samayn doonaa sed-bursi ilaa aan samayno. Laakiin haddii aad si sax ah u geyso Joe, haddii aadan siinin horumariyeyaasha, markaa ma jirto marin loo helo xogta. Waa maxay sababtu? Sababtoo ah Joe ma muujiyo xogta. Waxa kaliya oo ay tusinaysaa cabbirada, qorshayaasha waana taas. Tan waxaa loo sameeyay si ula kac ah, sababtoo ah tani waa mid ka mid ah shuruudaha macmiilkayaga. Waxay rabeen inay awood u yeeshaan inay hagaajiyaan iyaga oo aan qof walba siinin.

Ku saabsan MySQL. Nidaamkan waxaa loo isticmaali karaa wax kasta oo ku kaydiya state-ka diskka. Oo maadaama aanu samaynayno Postgres, waxaanu hadda samaynaynaa dhammaan otomaatiga Postgres marka hore. Waxaan rabnaa inaan si otomaatig ah uga helno xogta kaydka Waxaan u habeyneynaa Postgres si sax ah. Waxaan ognahay sida loo sameeyo qorshayaasha iswaafajiya, iwm.

Laakiin maadaama nidaamku yahay mid la dheerayn karo, waxa kale oo loo isticmaali karaa MySQL. Waxaana jira tusaalooyin noocaas ah. Yandex waxay leedahay shay la mid ah, laakiin meelna kuma daabacaan. Waxay ku isticmaalaan gudaha Yandex.Metrica. Oo waxaa jirta sheeko ku saabsan MySQL. Laakiin tignoolajiyada waa isku mid, ZFS.

Waad ku mahadsan tahay warbixinta! Waxaan kaloo qabaa dhowr su'aalood. Waxaad sheegtay in cloning loo isticmaali karo falanqaynta, tusaale ahaan in la dhiso tusmooyin dheeraad ah halkaas. Wax yar ma ka sheegi kartaa sida ay u shaqeyso?

Oo waxaan isla markiiba weydiin doonaa su'aasha labaad ee ku saabsan isku midka ah ee tarabuunka, isku midka ah qorshayaasha. Qorshuhu wuxuu kaloo ku xiran yahay tirakoobka ay soo aruurisay Postgres. Sideed u xalin kartaa dhibaatadan?

Marka loo eego falanqaynta, ma jiraan kiisas gaar ah, sababtoo ah weli ma aanan isticmaalin, laakiin waxaa jira fursad noocaas ah. Haddaynu ka hadlayno tusmooyin, bal qiyaas in waydiintu ay eryanayso miis ay ku jiraan boqollaal milyan oo rikoodh ah iyo tiir aan inta badan lagu tilmaamin prod. Oo waxaan rabnaa in aan xisaabin xoogaa xog ah halkaas. Haddii codsigan loo diro prod, markaa waxaa jirta suurtogalnimo in ay ku fududaan doonto prod, sababtoo ah codsiga waxaa laga baaraandegi doonaa hal daqiiqo.

Hagaag, aynu samayno clone dhuuban oo aan cabsi lahayn in la joojiyo dhowr daqiiqo. Oo si aan ugu raaxaysano akhrinta falanqaynta, waxaan ku dari doonaa tiirarka tiirarka aan xiisayno xogta.

Tusmada ayaa la abuuri doonaa mar kasta?

Waxaad samayn kartaa si aan u taabto xogta, samayno sawir-qaadis, ka dib waxaan ka soo kabsan doonaa sawirkan oo aan wadno codsiyo cusub. Taasi waa, waxaad samayn kartaa si aad kor ugu qaadi karto clones cusub oo leh tusmooyinka horeba ugu dhejisan.

Sida su'aasha ku saabsan tirakoobka, haddii aan ka soo celinno kaydka, haddii aan samayno ku celcelin, markaa tirakoobkayadu waxay noqon doonaan kuwo isku mid ah. Sababtoo ah waxaan haynaa dhammaan qaab dhismeedka xogta jirka, taas oo ah, waxaan keeni doonaa xogta sida ay tahay dhammaan cabbirada tirakoobka sidoo kale.

Waa tan dhib kale. Haddii aad isticmaasho xalka daruuriga ah, markaa kaliya qashinka macquulka ah ayaa laga heli karaa halkaas, sababtoo ah Google, Amazon ma ogola inaad qaadato nuqul jireed. Dhib baa jiri doonta.

Waad ku mahadsan tahay warbixinta. Waxaa jiray laba su'aalood oo wanaagsan halkan oo ku saabsan MySQL iyo wadaagista kheyraadka. Laakiin, dhab ahaantii, dhammaantood waxay hoos ugu soo dhacayaan xaqiiqda ah in tani aysan ahayn mawduuc gaar ah DBMS, laakiin nidaamka faylka guud ahaan. Iyo, si waafaqsan, arrimaha wadaagga kheyraadka waa in sidoo kale laga xalliyo halkaas, ma aha dhamaadka in ay tahay Postgres, laakiin nidaamka faylka, server-ka, tusaale ahaan.

Su'aashaydu way ka yara duwan tahay. Waxay ku dhowdahay kaydka xogta badan ee lakabyada badan, halkaas oo ay jiraan dhowr lakab. Tusaale ahaan, waxaanu dejinay muuqaal toban terabyte ah oo casriyeyn ah, waxaanu ku celcelinaynaa. Oo waxaanu si gaar ah u isticmaalnaa xalkan kaydinta xogta. Ku celcelinta ayaa socota, xogta waa la cusboonaysiinayaa Waxaa jira 100 shaqaale ah oo si barbar socda u shaqeeya, kuwaas oo si joogto ah u bilaabaya tallaaladan kala duwan. Maxaa la sameeyaa? Sida loo hubiyo in aysan jirin wax khilaaf ah, in ay bilaabeen mid ka mid ah, ka dibna nidaamka faylka ayaa isbeddelay, sawiradan oo dhanna way baxeen?

Ma tagi doonaan sababtoo ah waa sida ZFS u shaqeyso. Waxaan si gooni gooni ah ugu hayn karnaa hal dun oo nidaamka faylalka isbedela ee ku yimaada ku celcelinta awgeed. Oo ilaali clone-yada ay horumariyayaashu isticmaalaan noocyada hore ee xogta. Oo anaga way noo shaqeysaa, wax walba waa hagaagsan yihiin tan.

Waxay soo baxday in cusboonaysiinta ay u dhici doonto lakab dheeraad ah, iyo dhammaan sawirada cusubi waxay tagi doonaan mar hore, oo ku saleysan lakabkan, sax?

Laga soo bilaabo lakabyadii hore ee ka yimid ku celcelintii hore.

Lakabyadii hore way dhici doonaan, laakiin waxay tixraaci doonaan lakabkii hore, oo miyay sawirro cusub ka qaadi doonaan lakabka ugu dambeeya ee la helay cusbooneysiinta?

Guud ahaan, haa.

Markaa natiijadu waxay noqon doontaa ilaa berde lakabyo ah. Oo wakhti ka dib waxay u baahan doonaan in la cadaadiyo?

Haa wax walba waa sax. Waxaa jira daaqad qaar Waxaan haynaa sawiro todobaadle ah. Waxay kuxirantahay kheyraadka aad haysato. Haddii aad awood u leedahay inaad kaydiso xog badan, waxaad kaydin kartaa sawir-qaadista wakhti dheer. Iyagu iskood uma bixi doonaan. Ma jiri doono musuqmaasuq xog. Haddii sawir-qaadayaashu ay duugoobeen, sida ay noogu muuqato annaga, i.e. waxay kuxirantahay siyaasadda shirkadda, markaa waxaan si fudud u tirtiri karnaa iyaga oo xoreynaya meel bannaan.

Hello, waad ku mahadsan tahay warbixinta! Su'aal ku saabsan Joe. Waxaad sheegtay in macmiilku aanu doonayn inuu qof walba siiyo xogta. Si adag u hadalka, haddii qofku uu haysto natiijada Sharaxaada Falanqaynta, ka dib wuu arki karaa xogta.

Waa sidaas oo kale. Tusaale ahaan, waxaan ku qori karnaa: " HALKEE iimaylka ka dooro = taas". Taasi waa, ma arki doono xogta lafteeda, laakiin waxaan arki karnaa qaar ka mid ah calaamadaha aan tooska ahayn. Tani waa in la fahmo. Laakiin dhanka kale, waxaas oo dhan waa jira. Waxaan haynaa xisaab hubin, waxaanu gacanta ku haynaa asxaabta kale kuwaas oo sidoo kale arkaya waxa horumariyayaashu samaynayaan. Haddii qof isku dayo inuu sidan sameeyo, markaa hay'adda amniga ayaa u iman doonta oo ka shaqayn doonta arrintan.

Galab wanaagsan Waad ku mahadsan tahay warbixinta! Waxaan qabaa su'aal gaaban. Haddii shirkadu aysan isticmaalin Slack, ma jiraan wax ku xiraya hadda, mise suurtagal ma tahay in horumariyayaashu ay geeyaan tusaalooyin si ay ugu xiraan arjiga tijaabada database-yada?

Hadda waxaa jira isku xirka Slack, ie ma jiro farriin kale, laakiin runtii waxaan rabaa inaan taageero u sameeyo rususha kale. Maxaad qaban kartaa? Waxaad geyn kartaa DB Lab la'aanteed Joe la'aanteed, waxaad raaci kartaa caawinta API-ga REST ama caawinta goobtayada oo aad abuurto clones oo ku xidho PSQL. Laakiin tan waa la samayn karaa haddii aad diyaar u tahay inaad siiso horumariyeyaashaada inay helaan xogta, sababtoo ah mar dambe ma jiri doonto wax shaashad ah.

Uma baahni lakabkan, laakiin waxaan u baahanahay fursadan oo kale.

Markaa haa, waa la samayn karaa.

Source: www.habr.com

Add a comment