Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Mararka qaar mustaqbalka fog, ka saarida tooska ah ee xogta aan loo baahnayn waxay noqon doontaa mid ka mid ah hawlaha muhiimka ah ee DBMS [1]. Dhanka kale, annaga lafteena waxaan u baahanahay inaan ka taxadarno tirtirka ama u wareejinta xogta aan loo baahnayn nidaamyada kaydinta qaaliga ah. Aynu nidhaahno waxaad go'aansatey inaad tirtirto dhowr milyan oo saf. Hawl fudud oo fudud, gaar ahaan haddii xaaladda la og yahay oo ay jirto tilmaame ku habboon. "KA KA TIRTIR Miisaska 1 HALKEE col1 = :qiimaha" - maxaa ka fudud, sax?

Video:

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

  • Waxaan ku jiray guddiga barnaamijka Highload tan iyo sannadkii ugu horreeyay, i.e. tan iyo 2007.

  • Oo waxaan la joogay Postgres ilaa 2005. Waxa loo adeegsaday mashaariic badan.

  • Koox leh RuPostges sidoo kale ilaa 2007.

  • Waxaan ku koray 2100+ ka qaybgalayaasha Meetup. Waa labaad ee adduunka marka laga reebo New York, oo ay la wareegtay San Francisco muddo dheer.

  • Waxaan California ku noolaa dhowr sano. Waxaan wax badan la macaamilaa shirkadaha Maraykanka, oo ay ku jiraan kuwa waaweyn. Waa isticmaalayaasha firfircoon ee Postgres. Oo waxaa jira dhammaan noocyada waxyaabaha xiisaha leh.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/ waa shirkaddayda. Waxaan ku jirnaa shaqada otomaatigga ah ee hawlaha baabi'inaya hoos u dhaca horumarka.

Haddii aad wax samaynayso, ka dib mararka qaarkood waxaa jira nooc ka mid ah furayaasha agagaarka Postgres. Aynu nidhaahno waxaad u baahan tahay inaad sugto maamulaha si uu kuugu diyaariyo istaajin tijaabo ah, ama waxaad u baahan tahay inaad sugto DBA inay kuugu soo jawaabto. Oo waxaan ka helnaa caqabadahaas oo kale horumarinta, tijaabinta iyo habka maamulka waxaanan isku daynaa inaan baabi'inno iyadoo la kaashanayo automation iyo habab cusub.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf

Waxaan dhawaan joogay VLDB ee Los Angeles. Kani waa shirkii ugu weynaa ee xog ururinta Oo waxaa jiray warbixin in mustaqbalka DBMS ma kaydin doono oo kaliya, laakiin sidoo kale si toos ah u tirtiri doonaa xogta. Tani waa mowduuc cusub.

Waxaa jira xog badan oo dheeraad ah oo ku saabsan adduunka zettabytes - taasi waa 1 petabytes. Oo hadda waxaa horeyba loo qiyaasay in aan haysano in ka badan 000 zettabytes oo xog ah oo lagu kaydiyo adduunka. Waxaana jira in badan oo ka mid ah.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

https://vldb2019.github.io/files/VLDB19-keynote-2-slides.pdf

Maxaase lagu sameeyaa? Sida cad waxay u baahan tahay in meesha laga saaro. Waa kan isku xirka warbixintan xiisaha badan. Laakiin ilaa hadda tan laguma hirgelin DBMS.

Kuwa lacag tirin kara waxay rabaan laba shay. Waxay rabaan inaan tirtirno, markaa farsamo ahaan waa inaan awoodnaa inaan sameyno.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Waxa aan u sheegi doono xiga waa xaalad aan la taaban karin oo ay ku jiraan xaalado badan oo dhab ah, tusaale ahaan nooc ka mid ah waxa dhab ahaantii igu dhacay aniga iyo xogta macluumaadka ku hareeraysan marar badan, sannado badan. Rakes ayaa meel walba yaal qof walbana wuu ku tallaabsadaa mar walba.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Aan nidhaahno waxaan leenahay saldhig ama dhowr saldhig oo soo koraya. Diiwaanada qaarna sida cad waa qashin. Tusaale ahaan, isticmaaluhu wuxuu bilaabay inuu wax ku sameeyo halkaas, laakiin ma uusan dhammeynin. Muddo ka dib waxaan ognahay in tan aan dhammayn aan la kaydin karin. Taasi waa, waxaan jeclaan lahayn inaan nadiifinno qaar ka mid ah walxaha qashinka si loo badbaadiyo booska, horumarinta waxqabadka, iwm.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Guud ahaan, hawshu waa in si otomaatig ah loo tirtiro waxyaabaha gaarka ah, khadadka gaarka ah ee shaxda qaarkood.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Waxaanan leenahay codsi noocaas ah, oo aan maanta ka hadli doono, kaas oo ah qaadista qashinka.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Waxaan waydiisanay horumariye khibrad leh inuu sameeyo. Codsigan wuu qaatay, isaga laftiisa ayuu u hubiyay - wax walba way shaqeeyaan. Lagu tijaabiyay diyaarinta - wax walba waa fiican yihiin. La soo saaray - wax walba way shaqeeyaan. Hal mar maalintii ayaanu wadnaa - wax walba waa fiican yihiin.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Keydka kaydku wuu koraa oo wuu koraa. DELETE maalmeedku wuxuu bilaabaa inuu si tartiib tartiib ah u shaqeeyo.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Markaa waxaan fahamsanahay in aan hadda haysanno shirkad suuqgeyn ah oo taraafikadana ay dhowr jeer ka weynaan doonto, markaa waxaan go'aansanay inaan si ku-meel-gaar ah u hakiyo waxyaabaha aan loo baahnayn. Oo iska ilow inaad soo noqoto.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Dhawr bilood ka dib way xasuusteen. Horumariyahaasna wuu ka tagay ama ku mashquulsan yahay shay kale, wuxuu faray mid kale inuu soo celiyo.

Waxa uu eegay dev, marka uu diyaarinayo - wax walba waa OK. Dabcan, waxaad weli u baahan tahay inaad nadiifiso waxa soo ururay. Wuxuu hubiyay wax walba inay shaqeeyaan.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Maxaa dhacaya marka xiga? Markaa wax walba way inagu burburayaan. Wuu hoos u dhacayaa si mar uun wax walba u dhacaan. Qof kastaa wuu naxay, qofna ma fahmayo waxa dhacaya. Dabadeedna waxaa soo baxday in arrintu ku jirtay DELETE-kan.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Waxbaa qaldamay? Halkan waxaa ah liiska waxa khaldami karayey. Kuwan keebaa ugu muhiimsan?

  • Tusaale ahaan, ma jirin dib u eegis, i.e. khabiirka DBA ma uusan eegin. Waxa uu isla markiiba dhibaatada ku heli lahaa indho khibrad leh, ka sokow, wuxuu heli karaa faa'iido, halkaas oo dhowr milyan oo sadar ah ay ku urureen.

  • Malaha waxay hubiyeen wax khaldan.

  • Waxaa laga yaabaa in qalabku uu duugoobay oo aad u baahan tahay inaad cusboonaysiiso saldhiggan.

  • Ama wax baa ka khaldan kaydka xogta laftiisa, waxaanan u baahanahay inaan ka guurno Postgres una guurno MySQL.

  • Mise waxaa laga yaabaa inay wax ka khaldan yihiin qalliinka.

  • Waxaa laga yaabaa inay jiraan khaladaad qaar ka mid ah abaabulka shaqada oo aad u baahan tahay inaad qof cayriso oo aad shaqaalayso dadka ugu fiican?

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Ma jirin hubin DBA ah. Haddii ay jirto DBA, wuxuu arki lahaa dhowr milyan oo xariiq oo xitaa iyada oo aan wax tijaabo ah la samayn ayaa odhan lahaa: "Ma sameeyaan taas." Ka soo qaad haddii koodkan uu ku yaallo GitLab, GitHub oo uu jiri lahaa habka dib u eegis kood mana aysan ahayn in ogolaanshaha DBA la'aanteed hawlgalkani uu ku dhici doono prod, ka dibna sida cad DBA waxay odhan lahayd: "Tani lama samayn karo. ”

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Oo wuxuu dhihi lahaa inaad dhibaato kala kulmi doonto diskka IO oo dhammaan geeddi-socodyadu way waalan doonaan, waxaa laga yaabaa inay jiraan quful, iyo sidoo kale waxaad xannibi doontaa autovacuum dhowr daqiiqo, markaa tani ma fiicna.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

http://bit.ly/nancy-hl2018-2

Qaladka labaad - waxay hubiyeen meel qaldan. Waxaan aragnay ka dib xaqiiqda ah in xog badan oo junk ah ay ku ururtay prod, laakiin horumariyahu ma uusan ururin xogta xogtan, qofna ma abuurin qashinkan inta lagu jiro diyaarinta. Sidaa darteed, waxaa jiray 1 xariiq oo si degdeg ah u shaqeeyay.

Waxaan fahamsanahay in imtixaanadayadu ay daciif yihiin, taas oo ah, habka la dhisay ma qabto dhibaatooyin. Tijaabo DB ku filan lama samayn

Tijaabo ku habboon ayaa la doorbidayaa in lagu sameeyo isla qalab. Mar walba suurtagal maaha in tan lagu sameeyo isla qalab, laakiin aad bay muhiim u tahay inay noqoto nuqul buuxa oo kaydka xogta ah. Tani waa waxa aan ku wacdiyey dhowr sano hadda. Sannad ka horna waan ka hadlay arrintan, dhammaan waxaad ka daawan kartaa YouTube.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Ma laga yaabaa in qalabkayagu xun yahay? Haddaad eegto, dabadeed latency ayaa booday. Waxaan aragnay in ka faa'iidaysigu yahay 100%. Dabcan, haddii kuwani yihiin darawallada casriga ah ee NVMe, markaa waxay u badan tahay inay aad noogu fududaan lahayd. Waxaana laga yaabaa inaynaan ka jiifsan.

Haddii aad leedahay daruuro, markaa kor u qaadista ayaa si fudud halkaas loogu sameeyaa. Ku soo koobid cusub oo ku saabsan qalabka cusub bedel. Wax walbana waa wanaagsan yihiin. Aad u fudud.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Suurtagal ma tahay in si uun loo taabto saxanadaha yaryar? Oo halkan, annagoo kaashanayna DBA, waxaan u dhex galnay mowduuc gaar ah oo la yiraahdo hagaajinta isbaarada. Waxaa noo soo baxday in aan lahayn isbaaro toosin.

Waa maxay isbaaradu? Waxay ku jirtaa DBMS kasta. Marka aad haysatid xogta ku jirta xusuusta oo isbedelaysa, isla markiiba laguma qorin saxanka. Macluumaadka ay xogtu beddeshay waxaa marka hore lagu qoraa log-ka hore. Marmarka qaarkood, DBMS waxay go'aansatey in la joogo waqtigii lagu tuuri lahaa boggaga dhabta ah diskka, si haddii aan ku guuldareysano, aan sameyn karno REDO yar. Waa sida toyga oo kale. Haddii nala dilo, waxaan ciyaarta ka bilaabaynaa isbaarada ugu dambeysa. Oo dhammaan DBMS way hirgeliyaan.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Dejinta Postgres ayaa dib u dhacay. Waxaa loogu talagalay 10-15 sano jir mugga xogta iyo wax kala iibsiga. Isbaaraduna maaha mid ka reeban.

Waa kan macluumaadka laga helay warbixintayada hubinta Postgres, i.e. hubinta caafimaadka tooska ah. Oo halkan waxaa ku yaal qaar ka mid ah kaydka kaydka ee dhowr terabytes. Waxaana si wanaagsan loo arki karaa in ku dhawaad ​​90% kiisaska lagu qasbay isbaarooyinka.

Waxa loola jeedaa? Waxaa jira laba habayn. Isbaaradu waxay ku iman kartaa wakhti go'an, tusaale ahaan, 10 daqiiqo. Ama waxa ay iman kartaa marka xog badan la buuxiyo.

Oo sida caadiga ah max_wal_saze waxaa loo dejiyay 1 gigabyte. Dhab ahaantii, tani run ahaantii waxay ku dhacdaa Postgres ka dib 300-400 megabyte. Waxaad beddeshay xog badan oo isbaaradaadu way dhacdaa.

Oo haddaan cidina toosin, oo adeegii bato, oo ay shirkaddu lacag badan soo gasho, wax kala iibsi badan baa ka dhaca, markaas isbaaradu waxay timaadaa hal mar daqiiqad, marna 30-kii ilbiriqsi, marna way is-kortaa. Tani aad ayay u xun tahay.

Oo waxaan u baahannahay inaan hubinno inay si yar u timaaddo. Taasi waa, waxaan kor u qaadi karnaa max_wal_size. Waxayna iman doontaa in ka yar si joogto ah.

Laakiin waxaan soo saarnay hab dhan oo ah sida loo sameeyo si sax ah, taas oo ah, sida loo sameeyo go'aan ku saabsan doorashada goobaha, si cad oo ku salaysan xog gaar ah.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Sidaa awgeed, waxaanu samaynaynaa laba tijaabo oo taxane ah oo ku saabsan xog-ururinta.

Taxanaha hore - waxaan bedelnaa max_wal_size. Waxaana wadnaa hawlgal ballaaran. Marka hore, waxaan ku sameyneynaa goobta caadiga ah ee 1 gigabyte. Oo waxaanu samaynaa Tirtir ballaadhan oo malaayiin badan oo khad ah.

Waad arki kartaa sida ay noogu adag tahay. Waxaan aragnaa in diskka IO uu aad u xun yahay. Waxaan eegnaa inta WAL ee aan soo saarnay, sababtoo ah tani aad bay muhiim u tahay. Bal aan eegno inta jeer ee isbaaradu dhacday. Waxaana aragnaa inaysan wanaagsanayn.

Marka xigta waxaanu kordhinaa max_wal_size. Waxaan ku celinaynaa. Waan kordhineynaa, waan ku celineynaa. Iyo marar badan. Mabda 'ahaan, 10 dhibcood ayaa wanaagsan, halka 1, 2, 4, 8 gigabytes. Oo waxaan eegnaa hab-dhaqanka nidaam gaar ah. Way caddahay in halkan qalabku uu ahaado sida prod. Waa inaad haysataa saxanno isku mid ah, isla qaddarka xusuusta, iyo isla dejinta Postgres.

Oo habkan waxaan ku beddelan doonaa nidaamka our, oo waxaan ognahay sida DBMS u dhaqmi doonaa haddii ay dhacdo in tiro xun la tirtiro, sida ay u isbaaro.

Isbaarada Ruushku waa isbaaro.

Tusaale: Tirtir dhowr milyan oo saf oo tusmo ah, safafku waa "la firdhiyey" boggaga oo dhan.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Waa kan tusaale Tani waa saldhig. Iyo goobta caadiga ah ee 1 gigabyte ee max_wal_size, aad bay u caddahay in saxanadahayadu ay tagaan shelf si loo duubo. Sawirkani waa calaamad caadi ah oo ah bukaanka aadka u xanuunsan, taas oo ah, wuxuu dareemay xumaan. Oo waxaa jiray hal hawlgal, waxa jiray kaliya DELETE oo dhowr milyan oo xariiq ah.

Haddii qaliinka noocan oo kale ah loo ogolaado prod, markaa waanu iska jiifsanaynaa, sababtoo ah waxaa cad in hal DELETE uu nagu dilayo shelf.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Dheeraad ah, halka 16 gigabytes, way caddahay in ilkuhu mar hore tageen. Ilkaha ayaa horayba u fiicnaaday, taas oo ah, waxaan garaacaynaa saqafka, laakiin ma xuma. Halkaas waxaa ka jirtay xoogaa xorriyad ah. Dhanka midig waxaa ku yaal diiwaanka. Iyo tirada hawlgallada - garaafka labaad. Waxayna caddahay in aan horeba u neefsanayno si fudud marka 16 gigabytes.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Iyo halka 64 gigabytes laga arki karo in ay si buuxda u fiicnaatay. Horeba ilkaha ayaa loogu dhawaaqaa, waxaa jira fursado badan oo lagu badbaadin karo hawlgallada kale oo wax lagu sameeyo diskka.

Waa maxay sababta sidaas?

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

In yar ayaan tafaasiisha u dhex muquuran doonaa, balse mawduucan, sida loo sameeyo isbaarada, waxa ay ka dhalan kartaa warbixin dhan, sidaa awgeed wax badan ma rari doono, balse waxa aan wax yar ka sheegi doonaa dhibaatooyinka jira.

Haddii isbaaradu ay marar badan dhacdo, oo aan u cusbooneysiinno khadadkayaga si aan isdaba-joog ah, laakiin waxaan ku heleynaa index, taas oo wanaagsan, sababtoo ah ma tirtirno miiska oo dhan, ka dibna waxaa dhici karta in marka hore aan taabano bogga ugu horreeya, ka dibna kunth. ka dibna ku laabtay kii hore . Oo haddii inta u dhaxaysa booqashooyinkan bogga ugu horreeya, isbaarada ayaa horeyba ugu keydisay diskka, ka dibna waxay badbaadin doontaa mar kale, sababtoo ah waxaan helnay wasakh mar labaad.

Waxaanan ku qasbi doonaa isbaarada si loo badbaadiyo marar badan. Sidee loo samayn lahaa hawlgallo aan xad lahayn.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Laakiin intaas kuma koobna. Bogaggu waa 8 kilobytes gudaha Postgres iyo 4 kilobytes gudaha Linux. Oo waxaa jira dejin_bog_buuxa_qoraal ah. Waxaa loo sahlay si caadi ah. Tanina waa sax, sababtoo ah haddii aan daminno, markaa waxaa jirta khatar ah in bogga badhkiis kaliya la badbaadin doono haddii uu burburo.

Dabeecadda qoraalka WAL ee log-gudbinta hore waa sida marka aan haysanno isbaaro oo aan beddelno bogga markii ugu horreysay, dhammaan bogga, ie, dhammaan 8 kilobytes, waxay galaan log hore, inkastoo aan bedelnay oo keliya line, kaas oo miisaankiisu yahay 100 bytes. Oo waa inaan qorno bogga oo dhan.

Isbeddellada xiga waxaa jiri doona tuple gaar ah oo keliya, laakiin marka ugu horreysa waxaan qoreynaa wax walba.

Iyo, si waafaqsan, haddii isbaaradu ay mar kale dhacday, markaa waa inaan wax walba ka bilownaa mar labaad oo riixo bogga oo dhan. Isbaarooyinka soo noqnoqda, marka aan ku dhex marno isla bogag, full_page_writes = on waxay noqon doontaa in ka badan inta ay noqon karto, ie. waxaan soo saareynaa WAL badan. Wax badan ayaa loo diraa nuqullo, kaydka, saxanka.

Oo, sidaas awgeed, waxaanu haynaa laba dib-u-celin.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Haddii aan kordhino max_wal_size, waxaa soo baxday in aan u fududeyno isbaarada iyo wal-qoraalka labadaba. Taasina waa wax weyn.

Aan gelinno terabyte oo aan la noolaanno. Maxaa ka xun? Tani waa mid xun, sababtoo ah haddii ay dhacdo, waxaan fuuli doonaa saacado badan, sababtoo ah isbaaradu waxay ahayd wakhti hore oo wax badan oo hore u bedelay. Oo waxaan u baahanahay inaan samayno waxaas oo dhan REDO. Oo sidaas daraaddeed waxaan samaynaa taxanaha labaad ee tijaabooyinka.

Waxaan sameynaa hawlgal oo aan aragno marka isbaaradu dhammaato, waxaan dileynaa -9 Postgres si ulakac ah.

Ka dib markaa waxaan dib u bilaabaynaa mar kale, oo arag inta ay ku kici doonto qalabkan, i.e. inta ay dib u soo celin doonto xaaladan xun.

Laba jeer ayaan ogaan doonaa in xaaladdu ay xun tahay. Ugu horrayn, intaan isbaaradu dhammaanba waanu shilnay, markaa wax badan ayaa naga dhiman. Marka labaadna, waxaa nala sameeyay qalliin ballaaran. Haddii isbaaradu ay ahaan lahayd waqti go'an, markaas, waxay u badan tahay, in ka yar WAL ay dhalin lahayd tan iyo isbaaradii u dambaysay. Yacni, waa laba guuldarrayste.

Xaaladdan oo kale waxaan ku cabbirnaa cabbirrada kala duwan ee max_wal_size waxaanan fahamsanahay in haddii max_wal_size uu yahay 64 gigabytes, markaa laba jeer kiis ugu xumaa waxaan fuuli doonnaa 10 daqiiqo. Oo waxaynu ka fikirnaa inay nagu habboon tahay iyo in kale. Tani waa su'aal ganacsi. Waxaan u baahanahay inaan tusno sawirkan kuwa mas'uulka ka ah go'aamada ganacsiga oo aan weydiino, "Intee in le'eg ayaan jiifsan karnaa ugu badnaan haddii ay dhibaato dhacdo? Miyaynu ku jiifsan karnaa xaalada ugu xun 3-5 daqiiqo? Adigana go'aan qaada.

Oo halkan waa qodob xiiso leh. Waxaan haynaa dhowr warbixin oo ku saabsan Patroni shirka. Waxaana laga yaabaa inaad isticmaalayso. Kani waa autofailover ee Postgres. GitLab iyo Data Egret ayaa ka hadlay tan.

Oo haddii aad leedahay autofailover ku yimaado 30 ilbiriqsi, markaas ma laga yaabaa inaan jiifsan karno 10 daqiiqo? Sababtoo ah waxaan u wareegi doonaa nuqulka bartan, wax walbana way fiicnaan doonaan. Tani waa hal dhibic. Ma garanayo jawaab cad. Kaliya waxaan dareemayaa in mawduucani uusan ahayn oo kaliya ku dhawaad ​​ka soo kabashada shilka.

Haddii aan dib u soo kabasho dheer helno ka dib guuldarada, markaa waxaan ku dhibtoon doonnaa xaalado kale oo badan. Tusaale ahaan, tijaabooyin isku mid ah, marka aan samayno wax iyo mararka qaarkood waa inaan sugno 10 daqiiqo.

Weli aad uma fogaan, xitaa haddii aan leenahay autofailover. Sida caadiga ah, qiimaha sida 64, 100 gigabytes waa qiimo wanaagsan. Mararka qaarkood xitaa way mudan tahay in la doorto wax yar. Guud ahaan, kani waa cilmi khiyaano ah.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Si aad u samayso soo noqnoqosho, tusaale ahaan, max_wal_size =1, 8, waxaad u baahan tahay inaad marar badan ku celiso hawlgalka tirada badan. Adigaa sameeyay. Oo isla saldhigga waxaad dooneysaa inaad mar kale sameyso, laakiin mar hore ayaad tirtirtay wax walba. Maxaa la sameeyaa?

Mar dambe ayaan ka hadli doonaa xalkeena, waxa aan samayno si aan ugu soo noqnoqonno xaaladahan oo kale. Tanina waa habka ugu saxsan.

Laakiin kiiskan, waxaan ahayn nasiib. Haddi, sida ay halkan ku qoran tahay "BILAAB, DELETE, ROLLBACK", ka dib waxaan ku celin karnaa TIIRTII. Taasi waa, haddii aan laftigeena tirtirnay, markaa waan ku celin karnaa. Jir ahaanna xogtu waxay ku jiifsan doontaa isla meel. Xataa wax barar ah kuma heleysid. Waxaad ku celcelin kartaa DELETE-yadan oo kale.

Tirtiriddan leh ROLLBACK waxay ku habboon tahay hagaajinta isbaarada, xitaa haddii aadan haysan shaybaar xogeed si habboon loo geeyey.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Waxaan samaynay saxan leh hal tiir "i". Postgres waxay leedahay tiirar utility. Waa kuwo aan la arki karin ilaa si gaar ah loo waydiiyo. Kuwani waa: ctid, xmid, xmax.

Ctid waa ciwaan jireed. Eber bogga, tuple ugu horreeya ee bogga.

Waxaa la arki karaa in ROOLBACK ka dib tuple uu ku haray isla meeshii. Taasi waa, waxaan isku dayi karnaa mar kale, waxay u dhaqmi doontaa si la mid ah. Tani waa waxa ugu weyn.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Xmax waa wakhtiga dhimashada tuple. Waa la shaabadeeyay, laakiin Postgres waxay og tahay in wax kala iibsiga dib loo rogay, markaa dhib ma laha haddii ay tahay 0 ama ay tahay macaamil ganacsi oo duuban. Tani waxay soo jeedinaysaa in ay suurtogal tahay in lagu cel-celiyo DELETE oo la hubiyo hawlaha ugu badan ee habdhaqanka nidaamka. Waxaad u samayn kartaa shaybaadhka xogta ee masaakiinta.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Tani waxay ku saabsan tahay barnaamijyada. Ku saabsan DBA, sidoo kale, waxay had iyo jeer ku canaanan barnaamij-sameeyaha tan: "Maxaad u samaynaysaan hawlgallo dheer oo adag?". Tani waa mawduuc gebi ahaanba ka duwan. Maamul baa jiri jiray, hadda horumar baa iman doona.

Sida iska cad, innagu ma aanaan jabin. Way caddahay. Suurtagal ma aha in aan la jebin tirtirka noocaas ah ee taallo malaayiin xariiqyo ah qaybo. Waxaa la sameyn doonaa 20 daqiiqo, wax walbana way jiifsan doonaan. Laakiin, nasiib daro, xitaa horumariyayaal khibrad leh ayaa sameeya khaladaad, xitaa shirkado aad u waaweyn.

Maxay muhiim u tahay in la jabiyo?

  • Haddii aan aragno in saxanku adag yahay, markaa aynu hoos u dhigno. Oo haddii nala jabo, markaas waxaan ku dari karnaa hakad, waxaan hoos u dhigi karnaa cuncunka.

  • Oo innagu ma xannibi doono kuwa kale muddo dheer. Xaaladaha qaarkood dhib ma laha, haddii aad tirtirayso qashinka dhabta ah ee aan cidna ka shaqaynayn, markaa waxay u badan tahay inaadan xannibin qofna marka laga reebo shaqada autovacuum, sababtoo ah waxay sugi doontaa in macaamilku dhammeeyo. Laakiin haddii aad ka saarto wax qof kale codsan karo, markaas waa la xannibi doonaa, waxaa jiri doona nooc ka mid ah falcelinta silsiladda. Wax kala iibsiga dheer waa in laga fogaadaa mareegaha internetka iyo codsiyada moobiilka.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/products/joe/

Tani waa mid xiiso leh. Waxaan inta badan arkaa in horumariyayaashu ay ku weydiiyaan: "Xajmiga baakadkee ayaan dooranayaa?".

Way caddahay in xajmiga xidhmooyinku weyn yahay, ay yareeyaan wax kala iibsiga, ie, dheeraadka dheeraadka ah ee macaamilada. Laakiin isla mar ahaantaana, wakhtiga ayaa kordhiya wax kala iibsiga.

Waxaan leeyahay sharci aad u fudud: qaado inta aad awooddo, laakiin ha dhaafin kuwa la fulin karo ilbiriqsigiiba.

Waa maxay sababta ilbiriqsi? Sharaxaadku waa mid aad u fudud oo qof walba fahmi karo, xitaa dadka aan farsamada ahayn. Waxaan aragnaa falcelin. Aynu qaadano 50 millise seconds. Haddii ay wax isbedeleen, markaas ishayagu way ka falcelin doontaa. Haddii ay ka yar tahay, markaas aad u adag. Haddii wax ka jawaabaan 100 millise seconds ka dib, tusaale ahaan, waxaad gujisay jiirka, oo ay kuugu jawaabtay 100 millise seconds ka dib, waxaad durba dareemaysaa daahitaankan yar. Ilbiriqsi hore ayaa loo arkay inuu yahay biriiga.

Sidaas awgeed, haddii aan u jebinno hawlgalladayada ballaaran 10-ilbiriqsi, markaa waxaan haysanaa khatar ah inaan qof xannibno. Oo waxay shaqayn doontaa dhowr ilbiriqsi, dadkuna waxay mar hore ogaan doonaan. Sidaa darteed, waxaan doorbidayaa inaanan samayn wax ka badan ilbiriqsi. Laakin isla mar ahaantaana, si aad u yar ha u jebin, sababtoo ah wax kala iibsiga dulsaarka ayaa noqon doona mid la dareemo. Saldhiggu wuu adkaan doonaa, dhibaatooyin kale oo kala duwana way iman karaan.

Waxaan dooraneynaa cabbirka xirmada. Xaalad kasta, waxaan u samayn karnaa si ka duwan. Si toos ah ayaa loo samayn karaa Oo waxaan ku qanacsanahay waxtarka habaynta hal baako. Taasi waa, waxaanu samaynaa DELETE ee hal xidhmo ama UPDATE.

Dhanka kale, wax walba oo aan ka hadlayo maaha oo kaliya in la tirtiro. Sidaad qiyaastay, kuwani waa hawlo badan oo xog ah.

Waxaana aragnaa in qorshuhu yahay mid aad u wanaagsan. Waxaad arki kartaa sawirka tusaha, index kaliya scan ayaa ka sii fiican. Oo waxaan haynaa tiro yar oo xog ah oo ku lug leh. Oo wax ka yar ilbiriqsi buuxiya. Sare.

Welina waxaan u baahanahay in aan hubinno in aysan jirin wax hoos u dhac ah. Waxay dhacdaa in xirmooyinka ugu horreeya ay si dhakhso ah u shaqeeyaan, ka dibna way ka sii darayaan, ka sii daraan oo ka sii daraan. Nidaamku waa sidaas oo aad u baahan tahay inaad tijaabiso wax badan. Tani waa dhab ahaan waxa shaybaarada keydka macluumaadka loogu talagalay.

Welina waa in aan wax diyaarinaa si ay noogu ogolaato in aan si sax ah u raacno wax soo saarka. Tusaale ahaan, waxaan ku qori karnaa wakhtiga log, waxaan ku qori karnaa meesha aan hadda joogno iyo cidda aan hadda tirtirnay. Waxayna tani noo ogolaanaysaa inaan fahanno waxa dhacaya hadhow. Oo haddii ay wax qaldamaan, dhaqso u raadi dhibaatada.

Haddii aan u baahanahay inaan hubino hufnaanta codsiyada oo aan u baahanahay inaan ku celcelino marar badan, markaa waxaa jira wax la mid ah bot. Isagu waa diyaar. Waxa isticmaala daraasiin horumariyayaal ah maalin kasta. Oo isagu wuu yaqaan sida loo bixiyo xogta terabyte ee weyn haddii la codsado 30 ilbiriqsi, nuqul adiga kuu gaar ah. Waxaadna meeshaas wax ka tirtiri kartaa oo aad odhan kartaa RESET, oo mar kale tirtir. Waxaad ku tijaabin kartaa habkan. waxan u arkaa mustaqbal. Anaguna waanu samaynayna.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

https://docs.gitlab.com/ee/development/background_migrations.html

Waa maxay xeeladaha qaybinta? Waxaan arkaa 3 xeelado qaybin oo kala duwan oo horumariyayaashii xirmada ay isticmaalayaan.

Midka hore waa mid aad u fudud. Waxaan haynaa aqoonsi nambareed. Aynu u kala qaadno wakhtiyo kala duwan oo aynu ku shaqayno. Dhinaca hoose waa caddahay. Qaybta koowaad, waxaa laga yaabaa inaan haysano 100 xariiq oo qashinka dhabta ah, 5ta labaad ama maahan gabi ahaanba, ama dhammaan 1ka xariiq ayaa noqon doona qashinka. Shaqo aad u sinnayn, laakiin way fududahay in la jabiyo. Waxay qaateen aqoonsigii ugu badnaa oo ay jejebiyeen. Tani waa hab nacasnimo ah.

Xeeladda labaad waa hab dheeli tiran. Waxaa loo adeegsaday Gitlab. Miiska ayay qaateen oo sawireen. Waxaan helnay soohdimaha xirmooyinka aqoonsiga si xirmo kastaa u haysto 10 oo diiwaan. Oo safka geli. Kadibna waanu farsamaynaynaa. Waxaad tan ku samayn kartaa dhowr qaybood.

Istaraatiijiyada koowaad, sidoo kale, habka, waxaad tan ku samayn kartaa dhowr qaybood. Ma adka.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

https://medium.com/@samokhvalov/how-partial-indexes-affect-update-performance-in-postgres-d05e0052abc

Laakiin waxaa jira hab qaboojiye iyo hab ka wanaagsan. Tani waa xeeladdii saddexaad. Marka ay suurtagal tahay, way fiicantahay in la doorto. Waxaan tan ku sameyneynaa iyada oo ku saleysan tilmaame gaar ah. Xaaladdan oo kale, waxay u badan tahay inay noqon doonto tusmo iyadoo loo eegayo xaaladda qashinka iyo aqoonsigayada. Waxaan ku dari doonaa aqoonsiga si uu u noqdo index kaliya iskaanka si aynaan u tagin tuubada.

Guud ahaan, iskaanka index kaliya ayaa ka dhakhso badan sawirka index.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Waxaan si degdeg ah u helnaa aqoonsiyadayada aan rabno inaan tirtirno. BATCH_SIZE hore ayaan u dooranaa Oo kaliya ma helno iyaga, waxaan ku helnaa hab gaar ah oo isla markiiba la jabsado. Laakiin waanu u qufulnaa si hadday mar hore u xidhnaayeen, aynaan u xidhin, ee u dhaqaaq oo kuwa ku xiga soo qaad. Tan waxaa loogu talagalay boodboodka cusub ee xiran. Muuqaalkan aadka u sarreeya ee Postgres wuxuu noo ogolaanayaa inaan ka shaqeyno dhowr taxane haddii aan rabno. Waa suurtogal in hal durdur ah. Oo halkan waxaa jira CTE - tani waa hal codsi. Waxaanan leenahay tirtirid dhab ah oo ka socda dabaqa labaad ee CTE-gan - returning *. Waad soo celin kartaa id, laakiin way fiicantahay *haddii aanad xog badan ku hayn khad kasta.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Maxaynu ugu baahanahay? Tani waa waxa aan u baahanahay inaan dib uga warbixinno. Waxaan hadda tirtirnay khadadka badan oo run ahaantii. Waxaanan ku leenahay xuduud aqoonsi ama mid sidan oo kale loo sameeyay. Waxaad samayn kartaa min, max. Wax kale ayaa la samayn karaa. Waxaad wax badan ka buuxin kartaa halkan. Waxayna aad ugu habboon tahay la socodka.

Waxaa jira hal qoraal oo kale oo ku saabsan tusmada. Haddii aan go'aansanno in aan u baahanahay index gaar ah hawshan, markaa waxaan u baahannahay inaan hubinno in aysan ku dhicin tuples updates. Taasi waa, Postgres waxay leedahay tirokoobyadaas. Tan waxaa lagu arki karaa pg_stat_user_tables miiskaaga. Waxaad arki kartaa in cusbooneysiinta kulul la isticmaalay iyo in kale.

Waxaa jira xaalado marka tusmadaada cusub ay si fudud u gooyn karto. Oo waxaad haysaa dhammaan cusbooneysiinta kale ee horeba u shaqaynaysay, hoos u dhig. Ma aha oo kaliya sababtoo ah index-ka ayaa soo muuqday (tusaale kastaa wuxuu hoos u dhigayaa cusbooneysiinta wax yar, laakiin wax yar), laakiin halkan weli way burburinaysaa. Oo waa wax aan suurtagal ahayn in la sameeyo hagaajin gaar ah miiskan. Tani waxay dhacdaa mararka qaarkood. Tani waa khiyaano badan oo dad yar ay xasuustaan. rafcaankanna way fududahay in lagu tallaabsado. Mararka qaarkood waxaa dhacda in aad u baahan tahay in aad hesho hab dhinaca kale ah oo aad weli samayn la'aan this index cusub, ama samayn index kale, ama si kale, tusaale ahaan, waxaad isticmaali kartaa habka labaad.

Laakiin tani waa istaraatiijiyadda ugu wanaagsan, sida loo qaybiyo dufcadaha oo loo toogto dufcadaha hal codsi, tirtir wax yar, iwm.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Wax kala iibsi dheer https://gitlab.com/snippets/1890447

Autovacuum xannibay - https://gitlab.com/snippets/1889668

arrinta xannibidda - https://gitlab.com/snippets/1890428

Qaladka #5 waa mid weyn. Nikolai oo ka socda Okmeter ayaa ka hadlay la socodka Postgres. Ideal Postgres la socodka, nasiib daro, ma jiro. Qaar waa ka dhow yihiin, qaarna waa ka sii fog yihiin. Okmeter wuxuu ku dhow yahay inuu ahaado mid qumman, laakiin wax badan ayaa maqan oo u baahan in lagu daro. Waxaad u baahan tahay inaad tan u diyaargarowdo.

Tusaale ahaan, tuple dhintay ayaa sida ugu wanaagsan loola socdo. Haddii aad haysatid waxyaabo badan oo dhintay miiska, markaa wax baa khaldan. Way fiican tahay in hadda laga falceliyo, haddii kale waxaa dhici karta in hoos loo dhigo, oo waan jiifsan karnaa. Way dhacdaa.

Haddii ay jirto IO weyn, markaa way caddahay in tani aysan fiicnayn.

Wax kala iibsiga dheer sidoo kale. Wax kala iibsiga dheer waa in aan loo ogolaan OLTP. Oo halkan waxaa ku yaal xiriiriye jajab kaas oo kuu ogolaanaya inaad qaadato jajabkan oo aad horeyba u sameyso xoogaa raad-raac ganacsi dheer ah.

Waa maxay sababta wax kala iibsiga dheer u xun yahay? Sababtoo ah dhammaan qufullada ayaa la sii deyn doonaa kaliya dhamaadka. Qof walbana waanu isku dirnaa. Intaa waxaa dheer, waxaan ka xannibnaa autovacuum dhammaan miisaska. Waxba ma fiicna. Xataa haddii aad heeganka kulul ku leedahay nuqulka, weli way xun tahay. Guud ahaan, meelna kama roon tahay in laga fogaado macaamil ganacsi dheer.

Haddii aan haysano miisas badan oo aan la nadiifin, markaa waxaan u baahanahay inaan helno feejignaan. Halkan xaaladdan oo kale waa suurtogal. Waxaan si dadban u saameyn karnaa shaqada autovacuum. Tani waa qayb ka mid ah Avito, oo aan wax yar hagaajiyay. Oo waxay u soo baxday inay noqoto qalab xiiso leh si loo arko waxa aan ku hayno autovacuum. Tusaale ahaan, miisaska qaarkood ayaa halkaa ku sugaya mana sugi doonaan waqtigooda. Waxaad sidoo kale u baahan tahay inaad geliso la socodka oo aad leedahay digniin.

Oo arrimaha blocks. Kaynta geedaha goglan. Waxaan jeclahay inaan qof wax ka qaato oo aan hagaajiyo. Halkan waxaan ka soo qaatay CTE qabow oo soo noqnoqonaya Xogta Egret oo muujinaysa kaynta geedaha qufulka ah. Tani waa qalab lagu ogaanayo oo wanaagsan. Oo ku salaysan, waxaad sidoo kale dhisi kartaa la socodka. Laakiin tan waa in si taxadar leh loo sameeyaa. Waxaad u baahan tahay inaad sameyso bayaan yar oo waqti-gis ah naftaada. Oo lock_time-out waa la jecel yahay.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Mararka qaarkood khaladaadkaas oo dhan waxay ku dhacaan wadar ahaan.

Fikradayda, qaladka ugu weyn ee halkan waa urur. Waa urur, sababtoo ah farsamadu ma jiidan. Kani waa lambarka 2 - waxay ku hubiyeen meel khaldan.

Waxaan hubinay meel khaldan, sababtoo ah ma aanan haysanin wax soo saarka, taas oo ay fududahay in la hubiyo. Horumariyuhu waxa laga yaabaa in aanu heli karin wax soo saar gabi ahaanba.

Oo waannu hubinnay halkaas. Haddaynu halkaa iska hubin lahayn, waanu arki lahayn. Horumariyuhu wuxuu arkay dhammaan xitaa iyada oo aan lahayn DBA haddii uu ku hubiyay jawi wanaagsan, halkaas oo ay jirto xog isku mid ah iyo meel isku mid ah. Dulmigaas oo dhan wuu arki lahaa wuuna ceeboobi lahaa.

Wax badan oo ku saabsan autovacuum Ka dib markii aanu samaynay xaaqid baaxad leh oo dhawr milyan ah, waxaan wali u baahanahay inaan samayno REPACK. Tani waxay si gaar ah muhiim ugu tahay tusmooyinka. Waxay dareemi doonaan xumaan ka dib markii aan nadiifinay wax kasta oo halkaas ku yaal.

Oo haddii aad rabto inaad soo celiso shaqada nadiifinta maalinlaha ah, markaa waxaan kugula talin lahaa inaad sameyso marar badan, laakiin ka yar. Waxay noqon kartaa hal mar daqiiqadii ama xitaa in ka badan in yar. Oo waxaad u baahan tahay inaad la socoto laba shay: in shaygu aanu khalad lahayn oo aanu dib u dhac ku iman. Xeeladda aan tusay ayaa tan xallin doonta.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Waxa aan samayno waa il furan. Waxaa lagu dhajiyay GitLab Oo waxaan u samaynay si ay dadku u hubiyaan xitaa DBA la'aan. Waxaan sameyneynaa shaybaarka keydka xogta, taas oo ah, waxaan ugu yeernaa qaybta saldhigga ah ee Joe hadda ku shaqeynayo. Oo waxaad qabsan kartaa nuqul ka mid ah wax soo saarka. Hadda waxaa jira hirgelinta Joe for slack, waxaad halkaas ku odhan kartaa: "u sharax sida codsiga iyo caynkaas ah" oo isla markiiba hel natiijada nuqulkaaga xogta. Xitaa halkaas ayaad ku tirtiri kartaa, qofna ma dareemi doono.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Aynu nidhaahno waxaad haysataa 10 terabytes, waxaanu samaynaa shaybaadhka xogta sidoo kale 10 terabytes. Iyo xogta 10 terabyte ee isku mar ah, 10 horumariye ayaa isku mar shaqayn kara. Qof kastaa wuu samayn karaa wuxuu rabo. Waa tirtiri karaa, tuuri karaa, iwm. Taasi waa khiyaali. Berri ayaan ka hadli doonaa arrintan.

Gacaliye tirtir Nikolay Samokhvalov (Postgres.ai)

Tan waxaa lagu magacaabaa bixinta khafiif ah. Tani waa bixinta daahsoon. Tani waa nooc ka mid ah khiyaali oo si weyn meesha uga saaraysa dib u dhaca horumarka, tijaabinta oo ka dhigaysa adduunka meel ka wanaagsan arrintan. Taasi waa, kaliya waxay kuu ogolaaneysaa inaad iska ilaaliso dhibaatooyinka hawlgallada ballaaran.

Tusaale: 5 terabyte database, oo ku helaya koobi in ka yar 30 ilbiriqsi. Oo xataa kuma xidhna cabbirka, yacni, dhib ma laha inta terabytes.

Maanta waad tagi kartaa postgres.ai oo qod qalabkeena. Waad iska diiwaan gelin kartaa si aad u aragto waxa jira. Waxaad ku rakibi kartaa bot-kan. Waa bilaash Qor.

Su'aalahaada

Inta badan xaaladaha dhabta ah waxay soo baxdaa in xogta ku jirta miiska ay aad uga yar tahay waxa loo baahan yahay in la tirtiro. Taasi waa, xaaladdan oo kale, inta badan way fududahay in la hirgeliyo habkan oo kale, marka ay fududahay in la abuuro shay cusub, nuqul ka mid ah oo kaliya xogta lagama maarmaanka ah ee halkaas, oo ku dheji miiska hore. Way caddahay in hab barnaamijeed loo baahan yahay xilligan, inta aad beddeli doonto. Sidee habkani yahay?

Tani waa hab aad u wanaagsan iyo hawl aad u wanaagsan. Waxay aad ula mid tahay waxa pg_repack sameeyo, waxay la mid tahay waxa aad samaynayso marka aad samaynayso aqoonsiga 4 bytes. Nidaamyo badan ayaa tan sameeyay dhowr sano ka hor, oo kaliya taarikada ayaa koray, waxayna u baahan yihiin in loo beddelo 8 bytes.

Hawshani aad bay u adagtahay. Waanu samaynay. Waana inaad aad uga taxadartaa. Waxaa jira quful, iwm. Laakiin waa la sameeyaa. Taasi waa, habka caadiga ah waa in la raaco pg_repack. Waxaad ku dhawaaqaysaa summadan. Kahor intaadan bilaabin inaad ku dhejiso xogta sawir-qaadista, waxaad sidoo kale ku dhawaaqdaa hal saxan oo la soconaysa dhammaan isbeddellada. Waxaa jira khiyaamo laga yaabo inaadan xitaa la socon isbeddellada qaarkood. Waxaa jira khiyaamo Kadibna waxaad ku beddeshaa adigoo rogrogaya isbeddelada. Hakin gaaban ayaa jiri doona marka aan qof walba xidhno, laakiin guud ahaan tan ayaa la sameeyaa.

Haddii aad eegto pg_repack on GitHub, markaa halkaas, markii ay jirtay hawl lagu beddelayo aqoonsiga int 4 ilaa int 8, ka dib waxaa jiray fikrad ah in la isticmaalo pg_repack laftiisa. Tani sidoo kale waa suurtagal, laakiin waa xoogaa jabsi, laakiin sidoo kale way u shaqeyn doontaa tan. Waxaad soo faragelin kartaa kicinta uu pg_repack isticmaalo oo aad halkaas ku tidhaahdo: "Uma baahnid xogtan", tusaale ahaan waxaanu wareejinaa kaliya waxa aan u baahanahay. Dabadeedna wuu beddelaa oo waa kaas.

Habkan, waxaan wali helnaa nuqulka labaad ee miiska, kaas oo xogta horay loo calaamadeeyay oo si siman loo dhajiyay tusmooyinka quruxda badan.

Bloat ma joogo, waa hab wanaagsan. Laakiin waan ogahay in ay jiraan isku dayo lagu horumarinayo otomaatiga tan, ie. in la sameeyo xal caalami ah. Waxaan kula soo xiriiri karaa otomaatigan. Waxay ku qoran tahay Python, taas oo ah shay wanaagsan.

Wax yar ayaan ka imid adduunka MySQL, marka waxaan u imid inaan dhageysto. Waxaana isticmaalnaa habkan.

Laakiin waa haddii aan haysano 90%. Haddii aan haysano 5%, markaa aad uma fiicna in la isticmaalo.

Waad ku mahadsan tahay warbixinta! Haddii aysan jirin ilo lagu sameeyo nuqul dhammaystiran oo prod ah, ma jiraan wax algorithm ama qaacido lagu xisaabiyo culeyska ama cabbirka?

Su'aal wanaagsan. Ilaa hadda, waxaan awoodnaa inaan helno xog-ururinta terabyte-ka badan. Xitaa haddii qalabku aanu isku mid ahayn, tusaale ahaan, xusuusta yar, processor-ka yar iyo saxanadaha isku mid maaha, laakiin wali waan samaynaa. Haddii aysan jirin gabi ahaanba meelna, markaa waxaad u baahan tahay inaad ka fikirto. Aan ka fekero ilaa berri, waad timid, waan wada hadli doonaa, tani waa su'aal wanaagsan.

Waad ku mahadsan tahay warbixinta! Waxaad marka hore bilowday xaqiiqda ah in uu jiro Postgres qabow, kaas oo leh xaddidaadyo caynkaas ah iyo kuwan oo kale, laakiin waa soo koraya. Oo tan oo dhami waa gunti weyn. Waxaas oo dhami miyaanay ka hor imanayn horumarka Postgres laftiisa, kaas oo qaar ka mid ah DELETE dib-u-dhac ay ka soo muuqan doonaan ama wax kale oo ay tahay in lagu ilaaliyo heer hoose waxa aan isku dayeyno in aan ku dhajino qaar ka mid ah hababkayada qariibka ah halkan?

Haddii aan ku nidhi SQL si loo tirtiro ama loo cusbooneysiiyo diiwaanno badan hal macaamil ganacsi, markaa sidee Postgres ugu qaybin kartaa halkaas? Jir ahaan ayaa nala xaddiday hawlgallada. Waxaan weli sameyn doonaa muddo dheer. Oo waanu xidhi doonaa wakhtigan, iwm.

Lagu sameeyay tusmooyin.

Waxaan u qaadan karaa in isla hagaajinta isbaarada ay si toos ah u socon karto. Maalin ayaa laga yaabaa. Laakin markaas ma fahmin su'aasha.

Su’aashu waxay tahay, ma jiraa vector-ka horu-marineed ee sidan iyo halkaa u socda, kaana is barbar socda? Kuwaas. Miyaanay weli ka fikirin?

Waxaan ka hadlay mabaadi'da hadda la isticmaali karo. Waxaa jira bot kale Nancy, tan waxaad samayn kartaa habayn isbaaro toos ah. Maalin ma noqon doontaa Postgres? Ma garanayo, weli lagama hadlin. Weli waan ka fognahay taas. Laakiin waxaa jira saynisyahano sameeya nidaamyo cusub. Oo waxay nagu rideen tusmooyin toos ah. Waxaa jira horumar. Tusaale ahaan, waxaad eegi kartaa hagaajinta otomaatiga ah. Waxay si toos ah u doorataa halbeegyada. Laakiin weli kuuma samayn doono isbaaro kuu samayn. Taasi waa, waxay soo qaadan doontaa waxqabadka, kaydinta qolofka, iwm.

Iyo hagaajinta isbaarada, waxaad samayn kartaa tan: haddii aad haysato kun rucubyo iyo qalab kala duwan, mashiinno farsamo oo kala duwan oo daruuraha ku jira, waxaad isticmaali kartaa bot-keena Nancy samee automation. Iyo max_wal_size si toos ah ayaa loo dooran doonaa iyadoo loo eegayo dejinta bartilmaameedkaaga. Laakiin ilaa hadda tani xitaa kuma dhowa xuddunta, nasiib darro.

Galab wanaagsan Waxaad ka hadashay khatarta ay leedahay wax kala iibsiga dheer. Waxaad sheegtay in autovacuum la xannibay haddii la tirtiro. Sidee kale ayay noo dhibaysaa? Sababtoo ah waxaan ka hadlaynaa wax badan oo ku saabsan xoraynta booska iyo awood u yeelashada isticmaalka. Maxaa kaloo naga maqan?

Autovacuum waxaa laga yaabaa inaysan ahayn dhibaatada ugu weyn halkan. Iyo xaqiiqda ah in macaamil ganacsi dheer uu xiri karo macaamilo kale, suurtogalnimadani waa khatar badan. Waa laga yaabaa ama lama kulmi karto. Haddii ay la kulantay, markaas aad bay u xumaan kartaa. Iyo autovacuum - tani sidoo kale waa dhibaato. Waxaa jira laba dhibaato oo ku saabsan wax kala iibsiga dheer ee OLTP: quful iyo autovacuum. Oo haddii aad hayso jawaab celin kulul oo heegan ah oo karti u leh nuqulka, markaa waxaad weli heli doontaa quful autovacuum ah sayidkiisa, waxay ka iman doontaa nuqulka. Laakiin ugu yaraan ma jiri doono qufullo. Oo waxaa jiri doona loks. Waxaan ka hadlaynaa isbeddelka xogta, markaa qufulku waa qodob muhiim ah halkan. Oo haddii tani ay dhan tahay muddo dheer, waqti dheer, ka dibna wax badan oo macaamil ganacsi ayaa xiran. Kuwa kale way xadi karaan. Oo geedo lok ah ayaa u muuqda. Waxaan bixiyay isku xirka goos gooska. Dhibaatadani waxay noqotaa mid si dhakhso ah loo ogaan karo marka loo eego dhibaatada autovacuum, taas oo kaliya oo urursan karta.

Waad ku mahadsan tahay warbixinta! Waxaad ku bilawday warbixintaada inaad si khaldan u tijaabisay. Waxaan sii wadnay fikraddayada ah inaan u baahannahay inaan qaadanno qalab isku mid ah, oo saldhigga si la mid ah. Aynu nidhaahno waxaan siinay horumariyaha saldhig. Waana u hogaansamay codsigii. Wuxuuna u muuqdaa mid fiican. Laakiin isagu ma hubin inuu nool yahay, laakiin si toos ah, tusaale ahaan, waxaanu haysanaa culeys ah 60-70%. Xitaa haddii aan isticmaalno hagaajintan, si fiican uma shaqeyso.

Lahaanshaha khabiir kooxda iyo adeegsiga khabiirada DBA kuwaas oo saadaalin kara waxa dhici doona culeyska asalka dhabta ah waa muhiim. Markii aan kaliya wadnay isbeddelladayada nadiifka ah, waxaan aragnaa sawirka. Laakiin hab aad u horumarsan, markii aan samaynay wax la mid ah mar kale, laakiin leh culeys la mid ah wax soo saarka. Aad bay u fiican tahay. Ilaa iyo markaas, waa in aad koraan. Waa sida qof weyn oo kale. Waxaan eegnay waxa aan haysano oo aan sidoo kale eegnay in aan haysanno kheyraad nagu filan iyo in kale. Taasi waa su'aal wanaagsan.

Markaan horeba u samaynayno xulashada qashinka oo waxaanu haysanaa, tusaale ahaan, calan la tirtiray

Tani waa waxa autovacuum si toos ah ugu sameeyo Postgres.

Oh, miyuu sameeyaa?

Autovacuum waa qashin ururiyaha.

Waad ku mahadsan tahay!

Waad ku mahadsan tahay warbixinta! Ma jirtaa ikhtiyaar ah in isla markiiba la naqshadeeyo kaydka xogta iyadoo la kala qaybinayo si ay dhammaan qashinka uga wasakhoobaan miiska weyn meel ilaa dhinac ah?

Dabcan leeyihiin.

Suurtagal ma tahay markaa in aan is ilaalino haddaynu xidhnay miis aan la isticmaalin?

Dabcan leeyihiin. Laakin waa su'aal digaag iyo ukun oo kale ah. Haddii aan dhammaanteen ogaanno waxa dhici doona mustaqbalka, markaa, dabcan, waxaan samayn doonaa wax kasta oo qabow. Laakiin ganacsigu wuu isbedelayaa, waxaa jira tiirar cusub, codsiyo cusub. Ka dibna - oops, waxaan rabnaa inaan ka saarno. Laakiin xaaladdan ku habboon, nolosha way dhacdaa, laakiin had iyo jeer maaha. Laakiin guud ahaan waa fikrad wanaagsan. Kaliya googooyo waana taas.

Source: www.habr.com

Add a comment