Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ngolunye usuku esikhathini esizayo esikude, ukususwa okuzenzakalelayo kwedatha engadingekile kuzoba omunye wemisebenzi ebalulekile ye-DBMS [1]. Okwamanje, thina ngokwethu sidinga ukunakekela ukususa noma ukuhambisa idatha engadingekile kumasistimu okugcina angabizi kakhulu. Ake sithi unquma ukususa imigqa eyizigidi ezimbalwa. Umsebenzi olula, ikakhulukazi uma isimo saziwa futhi kukhona inkomba efanelekile. "SULA KUTHEBULA1 LAPHO col1 = :value" - yini engaba lula, akunjalo?

Ividiyo:

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

  • Bengilokhu ngisekomitini lohlelo lwe-Highload kusukela ngonyaka wokuqala, okungukuthi kusukela ngo-2007.

  • Futhi ngibe ne-Postgres kusukela ngo-2005. Isetshenziswe kumaphrojekthi amaningi.

  • Iqembu liphinde laba neRuPostges kusukela ngo-2007.

  • Sikhule safinyelela kwabangu-2100+ ababambiqhaza ku-Meetup. Lena indawo yesibili emhlabeni ngemuva kweNew York, njengoba idlule iSan Francisco kudala.

  • Sengihlale eCalifornia iminyaka eminingana. Ngisebenza kakhulu nezinkampani zaseMelika, kuhlanganisa nezinkulu. Bangabasebenzisi be-Postgres abasebenzayo. Futhi zonke izinhlobo zezinto ezithakazelisayo zivela lapho.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/ – lena inkampani yami. Sisebhizinisini lokuzenzakalela imisebenzi esusa ukwehla kwentuthuko.

Uma wenza okuthile, kwesinye isikhathi kuba namaphutha azungeze i-Postgres. Ake sithi udinga ukulinda kuze kube yilapho umlawuli ekutholela ibhentshi lokuhlola, noma udinga ukulinda kuze kube yilapho i-DBA ikuphendula. Futhi sithola izingqinamba ezinjalo ekuthuthukisweni, ekuhloleni nasekulawuleni inqubo futhi sizame ukuziqeda sisebenzisa i-automation nezindlela ezintsha.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

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

Kade ngise-VLDB e-Los Angeles. Lena ingqungquthela yesizindalwazi esikhulu kunazo zonke. Futhi kwakukhona umbiko wokuthi esikhathini esizayo ama-DBMS ngeke agcine kuphela, kodwa futhi asuse idatha ngokuzenzakalelayo. Lesi isihloko esisha.

Kukhona idatha eyengeziwe emhlabeni. Ama-Zetabytes angama-petabytes angu-1. Futhi manje sekuvele kulinganiselwa ukuthi sinama-zettabytes angaphezu kwe-000 wedatha egcinwe emhlabeni. Futhi bayanda futhi bayanda.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

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

Futhi wenzeni ngakho? Kuyacaca ukuthi idinga ukususwa. Nasi isixhumanisi kulo mbiko othakazelisayo. Kodwa kuze kube manje lokhu akukenziwa ku-DBMS.

Abakwaziyo ukubala imali bafuna izinto ezimbili. Bafuna ukuthi sisuse, ngakho ngokobuchwepheshe kufanele sikwazi ukukwenza.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Engizokusho ngokulandelayo isimo esingabonakali esihlanganisa inqwaba yezimo zangempela, okungukuthi, ukuhlanganiswa okuthile okwenzeka ngempela kimi kanye nemininingwane egciniwe ezungezile izikhathi eziningi, iminyaka eminingi. Ama-rakes akhona yonke indawo futhi wonke umuntu uyawanyathela ngaso sonke isikhathi.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ake sithi sinesisekelo noma izisekelo eziningana ezikhulayo. Futhi amanye amarekhodi awudoti osobala. Isibonelo, umsebenzisi uqale ukwenza okuthile lapho, kodwa akaqedanga. Futhi ngemva kwesikhathi esithile siyazi ukuthi lo msebenzi ongaqediwe awusakwazi ukugcinwa. Okusho ukuthi, singathanda ukuhlanza izinto ezingafuneki ukuze songe isikhala, sithuthukise ukusebenza, njll.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ngokuvamile, umsebenzi uwukwenza ngokuzenzakalelayo ukususwa kwezinto ezithile, imigqa ethile etafuleni.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Futhi sinesicelo esizokhuluma ngaso namuhla, okungukuthi, ngokususa udoti.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Sicele unjiniyela onolwazi ukuthi enze lokhu. Wathatha lesi sicelo, wazihlola - konke kuyasebenza. Ngiyihlole esiteji - konke kuhamba kahle. Ikhishiwe - konke kuyasebenza. Kanye ngosuku siqhuba lokhu - konke kuhamba kahle.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Isizindalwazi siyakhula futhi siyakhula. I-DELETE yansuku zonke iqala ukusebenza kancane kancane.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Bese siqaphela ukuthi manje siyinkampani yokumaketha futhi ithrafikhi izoba nkulu izikhathi ezimbalwa, ngakho sinquma ukumisa okwesikhashana izinto ezingadingekile. Futhi siyakhohlwa ukuyibuyisela.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ezinyangeni ezimbalwa kamuva bakhumbula. Futhi lowo njiniyela wayeka noma wayematasa ngokunye, babela omunye ukuthi ayibuyisele.

Uhlole i-dev, esiteji - yonke into ihamba kahle. Ngokwemvelo, kusadingeka uhlanze lokho okuqoqiwe. Wahlola, konke kuyasebenza.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Kwenzekani ngokulandelayo? Khona-ke konke kuyahlakazeka ngenxa yethu. Iwa kakhulu kangangokuthi ngesinye isikhathi yonke into iyawa. Wonke umuntu ushaqekile, akekho oqondayo ukuthi kwenzakalani. Bese kuvela ukuthi le DELETE bekuyinkinga.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Kukhona into engahambanga kahle? Nalu uhlu lwezinto ezingase zingahambi kahle. Iyiphi kulezi ebaluleke kakhulu?

  • Isibonelo, akuzange kube nokubuyekezwa, okungukuthi uchwepheshe we-DBA akazange abheke. Ngeso elinolwazi, wayezoyithola ngokushesha inkinga, futhi ngaphandle kwalokho, uyakwazi ukufinyelela i-prod, lapho kuye kwanqwabelana imigqa eyizigidi ezimbalwa.

  • Mhlawumbe bahlole okuthile okungalungile.

  • Mhlawumbe i-hardware isiphelelwe yisikhathi futhi udinga ukuthuthukisa le database.

  • Noma kukhona okungahambi kahle ngesizindalwazi uqobo, futhi sidinga ukusuka ku-Postgres siye ku-MySQL.

  • Noma mhlawumbe kukhona okungalungile ngokuhlinzwa.

  • Mhlawumbe kukhona amaphutha enhlanganweni yomsebenzi futhi udinga ukuxosha umuntu futhi uqashe abantu abangcono?

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Bekungekho ukuhlola kwe-DBA. Ukube bekune-DBA, ubezobona le migqa eyizigidi ezimbalwa futhi ngaphandle kokuhlolwa ubengathi: β€œAbakwenzi lokho.” Ake sithi uma le khodi ibiku-GitLab, GitHub futhi bekunenqubo yokubuyekezwa kwekhodi futhi ibingekho into yokuthi ngaphandle kwemvume ye-DBA lokhu kusebenza bekuzokwenzeka ku-prod, ngokusobala i-DBA ibingathi: β€œNgeke ukwenze lokho. ”

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Futhi uzosho ukuthi uzoba nezinkinga nge-disk IO futhi zonke izinqubo zizohlanya, kungase kube khona ukukhiya, futhi uzovimbela i-autovacuum imizuzu embalwa, ngakho-ke lokhu akulungile.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

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

Iphutha lesibili ukuthi bahlole endaweni engafanele. Sibonile ngemuva kokuthi idatha kadoti eminingi iqoqwe ku-prod, kodwa umthuthukisi akazange aqongelele idatha kule database, futhi akekho odale ngempela lo doti esiteji. Ngakho, kwakunemigqa eyinkulungwane, eyaqedwa ngokushesha.

Siyaqonda ukuthi izivivinyo zethu zibuthakathaka, okungukuthi inqubo eyakhiwe ayizitholi izinkinga. Ukuhlolwa okwanele kwe-DB akuzange kwenziwe.

Ukuhlola okuhle kakhulu kufanele kwenziwe kumshini ofanayo. Akwenzeki ngaso sonke isikhathi ukwenza lokhu ku-hardware efanayo, kodwa kubaluleke kakhulu ukuthi ikhophi egcwele yedathabheyisi. Yilokhu esengikushumayele iminyaka eminingana manje. Futhi ngonyaka odlule ngakhuluma ngalokhu, ungakubuka konke ku-YouTube.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Mhlawumbe imishini yethu mibi? Uma ubheka, ukubambezeleka kweqe. Sibonile ukuthi ukugaywa kabusha kungu-100%. Vele, ukube lezi bekungamadrayivu esimanje e-NVMe, bekungaba lula kakhulu kithi. Futhi mhlawumbe ngeke silale phansi ngenxa yalokho.

Uma unamafu, khona-ke ukuthuthukiswa kulula. Sethule ama-replicas amasha kuhadiwe entsha. I-switchover. Futhi konke kuhamba kahle. Kulula kakhulu.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Kungenzeka yini ukuthinta amadiski amancane ngandlela thile? Futhi lapha, ngosizo lwe-DBA, sicwila esihlokweni esithile esibizwa nge-checkpoint tuning. Kuvele ukuthi asizange senze ukulungiswa kwendawo yokuhlola.

Iyini indawo yokuhlola? Lokhu kuyatholakala kunoma iyiphi i-DBMS. Uma idatha kwimemori yakho ishintsha, ayibhalwa ngokushesha kumadiski. Ulwazi olushintshiwe idatha lubhalwa kuqala kulogi eya phambili, kulogi yokubhala phambili. Futhi ngesikhathi esithile, i-DBMS inquma ukuthi sekuyisikhathi sokuphonsa amakhasi wangempela kudiski, ukuze uma sihluleka, singenza i-REDO encane. Kufana nethoyizi. Uma sibulawa, sizoqala umdlalo endaweni yokugcina yokuhlola. Futhi wonke ama-DBMS asebenzisa lokhu.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Izilungiselelo ku-Postgres ziyasilela. Zenzelwe iminyaka eyi-10-15 yedatha nemisebenzi. Futhi indawo yokuhlola ayihlukile.

Lolu lwazi luvela embikweni wethu wokuhlolwa kwe-Postgres, okungukuthi ukuhlolwa kwezempilo okuzenzakalelayo. Futhi nansi isizindalwazi samaterabhayithi ambalwa. Futhi kuyacaca ukuthi izindawo zokuhlola ziphoqelelwa cishe ku-90% wamacala.

Kusho ukuthini? Kukhona izilungiselelo ezimbili lapho. Indawo yokuhlola ingenzeka ngesikhathi sokuvala, isibonelo, emizuzwini eyi-10. Noma kungenzeka uma idatha eningi isigcwalisiwe.

Futhi ngokuzenzakalelayo, i-max_wal_saze isethwe ku-1 gigabyte. Eqinisweni, lokhu kwenzeka ngempela ku-Postgres ngemva kwama-megabytes angu-300-400. Ushintshe idatha eningi futhi unendawo yokuhlola.

Futhi uma kungekho muntu oyishunileyo, kodwa insizakalo ikhulile, futhi inkampani ihola imali eningi, inokuthengiselana okuningi, khona-ke indawo yokuhlola yenzeka kanye ngomzuzu, kwesinye isikhathi kanye njalo ngemizuzwana engama-30, futhi kwesinye isikhathi bayahlangana. . Kubi ngempela lokhu.

Futhi kudingeka siqiniseke ukuthi iza kancane. Okusho ukuthi, singakhuphula u-max_wal_size. Futhi uzohlasela kancane.

Kodwa sithuthukise indlela yonke yokwenza lokhu ngendlela efanele, okungukuthi, indlela yokwenza izinqumo mayelana nokukhetha izilungiselelo, ngokusekelwe ngokucacile kudatha ethile.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ngokunjalo, senza uchungechunge olubili lwezivivinyo zesizindalwazi.

Uchungechunge lokuqala - sishintsha max_wal_size. Futhi senza umsebenzi omkhulu. Okokuqala sikwenza ngokusetha okuzenzakalelayo kwe-gigabyte engu-1. Futhi senza UKUSUSA okukhulu kwezigidi eziningi zemigqa.

Uyabona ukuthi kunzima kangakanani kithi. Siyabona ukuthi i-disk IO imbi kakhulu. Ake sibone ukuthi sikhiqize i-WAL engakanani, ngoba lokhu kubaluleke kakhulu. Ake sibone ukuthi indawo yokuhlola yenzeke kangaki. Futhi siyabona ukuthi akukuhle.

Okulandelayo sikhulisa u-max_wal_size. Siyaphinda. Khulisa, phinda. Futhi izikhathi eziningi. Empeleni, amaphuzu 10 muhle, lapho 1, 2, 4, 8 gigabytes. Futhi sibheka ukuziphatha kwesistimu ethile. Kuyacaca ukuthi izinto zokusebenza lapha kufanele zifane ne-prod. Kufanele ube namadiski afanayo, inani elifanayo lememori, kanye nezilungiselelo ezifanayo ze-Postgres.

Futhi ngale ndlela sizoshintshanisa uhlelo lwethu, futhi siyazi ukuthi i-DBMS izoziphatha kanjani uma kwenzeka i-mass mass DELETE, izohlola kanjani.

Indawo yokuhlola ngesiRashiya isho izindawo zokulawula.

Isibonelo: SUSA imigqa eyizigidi ezimbalwa ngenkomba, imigqa β€œihlakazekile” emakhasini.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Nasi isibonelo. Lesi isisekelo esithile. Futhi ngokusetha okuzenzakalelayo kwe-gigabyte engu-1 ku-max_wal_size, kucace bha ukuthi amadiski ethu okurekhoda aya eshalofini. Lesi sithombe siwuphawu oluvamile lwesiguli esigula kakhulu, okungukuthi, sasiphatheke kabi ngempela. Futhi kube nokusebenza okukodwa kuphela, lapha bekuvele KUSUSA kwemigqa eyizigidi ezimbalwa.

Uma ukusebenza okunjalo kuvunyelwe ku-prod, sizovele siwe, ngoba kuyacaca ukuthi i-DELETE eyodwa iyasibulala eshalofini.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ngaphezu kwalokho, lapho kunamagigabhayithi angu-16, ungabona ukuthi amazinyo aseqalile ukuvela. Amazinyo asevele angcono, okungukuthi singqongqoza ophahleni, kodwa hhayi kubi kakhulu. Kwavela inkululeko encane lapho. Kwesokudla kukhona okuqoshiwe. Futhi inani lemisebenzi igrafu yesibili. Futhi kuyacaca ukuthi sesivele siphefumula kalula ngamagigabhayithi angu-16.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Futhi lapho kubonakala khona amagigabhayithi angama-64, sekungcono ngokuphelele. Kakade amazinyo abonakala ngokucacile, kunamathuba amaningi okusinda eminye imisebenzi nokwenza okuthile nge-disc.

Kungani kunjalo

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ngizocwila emininingwaneni kancane, kodwa lesi sihloko sendlela yokulungisa izindawo zokuhlola singaphumela embikweni ophelele, ngakho-ke ngeke ngingene emininingwaneni eminingi, kodwa ngizobeka kancane ukuthi ibuphi ubunzima obukhona.

Uma indawo yokuhlola yenzeka kaningi, futhi singayibuyekezi imigqa yethu ngokulandelana, kodwa siyithole ngenkomba, okuhle, ngoba asilisusi lonke itafula, khona-ke kungenzeka ukuthi sithinte kuqala ikhasi lokuqala, bese kuthi elenkulungwane, bese ebuyela kwesokuqala . Futhi uma phakathi kwalokhu kuvakasha ekhasini lokuqala iphoyinti lokuhlola selivele liyigcinile kudiski, khona-ke izoyigcina futhi, ngoba siyingcolisile okwesibili.

Futhi sizophoqa indawo yokuhlola ukuyilondoloza izikhathi eziningi. Njengokungathi kukhona imisebenzi engasasebenzi ngakho.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Kodwa akugcini lapho. Ku-Postgres, amakhasi anesisindo esingamakhilobhayithi angu-8, futhi ku-Linux amakhilobhayithi angu-4. Futhi kukhona isilungiselelo esigcwele_ikhasi_libhala. Inikwe amandla ngokuzenzakalela. Futhi lokhu kulungile, ngoba uma siyicisha, kunengozi yokuthi uma kukhona ukwehluleka, ingxenye yekhasi kuphela izogcinwa.

Ukuziphatha kokungena ku-WAL yelogi eya phambili kufana nokuthi uma sinendawo yokuhlola futhi sishintsha ikhasi okokuqala, lonke ikhasi, okungukuthi, wonke ama-kilobytes angu-8, agcina kulogi eya phambili, nakuba thina kuphela. ushintshe umugqa onesisindo samabhayithi ayi-100 . Futhi siphoqeleka ukuthi sibhale phansi lonke ikhasi.

Ezinguqukweni ezilandelayo kuzoba ne-tuple ethile kuphela, kodwa okokuqala sibhala yonke into phansi.

Futhi, ngokufanelekile, uma indawo yokuhlola yenzeka futhi, kuzomele siqale yonke into kusukela ekuqaleni futhi sigxilise lonke ikhasi. Ngezindawo zokuhlola ezivamile, uma sihamba emakhasini afanayo, i-full_page_writes = on izoba nkulu kunalokho obekungaba yikho, okungukuthi sikhiqiza i-WAL eningi. Okuningi kuthunyelwa kuma-replicas, kungobo yomlando, kudiski.

Futhi, ngokufanele, sinezimfuneko ezimbili zokuxoshwa.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Uma sikhulisa u-max_wal_size, kuvele ukuthi senza umsebenzi wakho kokubili indawo yokuhlola kanye ne-wal writer ibe lula. Futhi lokho kuhle.

Masifake i-terabyte futhi siphile nayo. Yini embi ngakho? Lokhu kubi, ngoba uma kwenzeka ukwehluleka sizovuka amahora amaningi, ngoba indawo yokuhlola yayikudala futhi kuningi osekushintshile. Futhi sidinga ukwenza REDO kukho konke lokhu. Ngakho-ke senza uchungechunge lwesibili lokuhlola.

Senza umsebenzi futhi sibone lapho indawo yokuhlola isiseduze nokuqedwa, senza ukubulala -9 Postgres ngenhloso.

Futhi ngemva kwalokho, siqala futhi, futhi sibone ukuthi kuzothatha isikhathi esingakanani ukuphakama kule mishini, okungukuthi, ingakanani i-REDO ezokwenza kulesi simo esibi.

Ngizophawula kabili ukuthi isimo sibi. Okokuqala, siwe ngaphambi kokuphela kwendawo yokuhlola, ngakho-ke kuningi okumele sikulahlekele. Okwesibili, senze ukuhlinzwa okukhulu. Futhi uma izindawo zokuhlola zinesikhathi sokuvala, cishe cishe i-WAL encane ngabe yenziwe kusukela endaweni yokugcina yokuhlola. Okusho ukuthi, lesi isihluku kabili.

Sikala lesi simo ngama-max_wal_size ahlukene futhi siyaqonda ukuthi uma i-max_wal_size ingamagigabhayithi angu-64, khona-ke esimweni esibi kakhulu sizovuka imizuzu engu-10. Futhi sicabanga ukuthi lokhu kuyasifanela noma cha. Lena inkinga yebhizinisi. Kudingeka sibonise lesi sithombe kulabo abanomthwalo wemfanelo ezinqumweni zebhizinisi futhi sibuze: β€œSingakanani isikhathi esingasilinda uma kuba nenkinga? Singalala esimweni esibi kakhulu imizuzu emi-3-5? Futhi wenza isinqumo.

Futhi lapha kukhona iphuzu elithakazelisayo. Sinemibiko embalwa mayelana noPatroni engqungqutheleni. Futhi mhlawumbe uyayisebenzisa. Lokhu kuyi-autofailover ye-Postgres. I-GitLab ne-Data Egret bakhulume ngalokhu.

Futhi uma une-autofailover ezokwenzeka kumasekhondi angu-30, khona-ke mhlawumbe singalala phansi imizuzu eyi-10? Ngoba ngalesi sikhathi sizoshintshela ku-replica, futhi konke kuzolunga. Lolu wudaba oluyimpikiswano. Angazi impendulo ecacile. Nginomuzwa wokuthi lesi sihloko asigcini nje ngokubhekana nenhlekelele.

Uma sinokululama isikhathi eside ekuhlulekeni, sizobe singakhululekile kwezinye izimo eziningi. Isibonelo, ekuhlolweni okufanayo, lapho senza okuthile futhi kwesinye isikhathi kufanele silinde imizuzu eyi-10.

Bengingeke ngihambe kakhulu, ngisho noma sine-autofailover. Njengomthetho, amanani anjengo-64, 100 gigabytes angamagugu amahle. Ngezinye izikhathi kufanelekile ukukhetha okuncane. Ngokuvamile, lena isayensi ecashile.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ukuze uphindaphinde, isibonelo, max_wal_size = 1, 8, udinga ukuphinda ukusebenza kwenqwaba izikhathi eziningi. Ukwenzile. Futhi ufuna ukukwenza futhi ngesisekelo esifanayo, kodwa usususe yonke into. Okufanele ngikwenze?

Ngizokutshela kamuva ngesixazululo sethu nokuthi yini esiyenzayo ukuze siphindaphinde ezimweni ezinjalo. Futhi lena indlela elungile kakhulu.

Kodwa kulokhu sibe nenhlanhla. Uma, njengoba isho lapha β€œQALA, SUSA, ROLLBACK”, singaphinda-ke SUSA. Okusho ukuthi, uma sikukhansele ngokwethu, khona-ke singakuphinda. Futhi idatha yakho ngokomzimba izoba lapho. Awutholi ngisho nokuqunjelwa. Ungakwazi ukuphindaphinda ku-DELETE enjalo.

Le SUSA nge-ROLLBACK ilungele ukulungiswa kwendawo yokuhlola, ngisho noma ungenawo amalebhu esizindalwazi asetshenziswe kahle.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Senza uphawu ngekholomu eyodwa ethi β€œi”. I-Postgres inamakholomu wosizo. Azibonakali ngaphandle uma zicelwe ngokuqondile. Lezi yizi: ctid, xmid, xmax.

I-Ctid ikheli lendawo. Ikhasi uziro, ikhophi yokuqala ekhasini.

Kuyabonakala ukuthi ngemuva kwe-ROOLBACK i-tuple yahlala endaweni efanayo. Okusho ukuthi, singazama futhi, izoziphatha ngendlela efanayo. Lokhu kuyinto eyinhloko.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

I-Xmax yisikhathi sokufa kwe-tuple. Kufakiwe, kepha u-Postgres uyazi ukuthi lokhu kuthengiselana kubuyiselwe emuva, ngakho-ke akunandaba ukuthi ngu-0 noma umsebenzi ogoqiwe. Lokhu kuphakamisa ukuthi DELETE ingasetshenziselwa ukuphindaphinda nokuhlola ukusebenza okukhulu kokuziphatha kwesistimu. Ungenza ama-database lab wabampofu.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Lokhu kumayelana nabahleli bohlelo. Mayelana ne-DBA futhi, bahlala bethethisa abahleli bezinhlelo ngalokhu: β€œKungani nenza imisebenzi emide nenzima kangaka?” Lesi yisihloko se-perpendicular esihluke ngokuphelele. Phambilini bekukhona ezokuphatha, kodwa manje sekuzoba nentuthuko.

Kusobala ukuthi asikayihlahli yaba izingxenye. Kuyabonakala. Akunakwenzeka ukuphula i-DELETE enjalo yenqwaba yezigidi zemigqa ibe izingxenye. Kuzothatha imizuzu engu-20 ukwenza, futhi yonke into izolala phansi. Kodwa, ngeshwa, ngisho nabathuthukisi abanolwazi benza amaphutha, ngisho nasezinkampanini ezinkulu kakhulu.

Kungani ukuphuka kubalulekile?

  • Uma sibona ukuthi i-disc iqinile, ake siyinciphise. Futhi uma siphukile, khona-ke singakwazi ukwengeza ukuphumula, singakwazi ukwehlisa ijubane.

  • Futhi ngeke sivimbe abanye isikhathi eside. Kwezinye izimo akunandaba, uma ususa udoti wangempela okungekho muntu osebenzayo, khona-ke cishe ngeke uvimbele noma ubani ngaphandle komsebenzi we-autovacuum ngoba uzolinda ukuthi ukuthengiselana kuqedwe. Kodwa uma ususa okuthile omunye umuntu angase akucele, khona-ke bazovinjelwa, kuzoba nohlobo oluthile lokusabela kweketango. Ukuthengiselana okude kufanele kugwenywe kumawebhusayithi nezinhlelo zokusebenza zeselula.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

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

Kuyathakazelisa lokhu. Ngivame ukubona onjiniyela bebuza, "Yimuphi usayizi wephakethe okufanele ngiwukhethe?"

Kuyacaca ukuthi uma usayizi weqoqo umkhulu, i-overhead yomsebenzi iyancipha, okusho ukuthi umsebenzi owengeziwe ongaphezulu. Kodwa ngesikhathi esifanayo, isikhathi salokhu kuthengiselana siyanda.

Nginomthetho olula kakhulu: thatha abaningi ngangokunokwenzeka, kodwa ungeqi ukubulawa ngomzuzwana.

Kungani umzuzwana? Incazelo ilula kakhulu futhi iyaqondakala kuwo wonke umuntu, ngisho nabantu abangewona ubuchwepheshe. Siyakubona ukusabela. Masithathe ama-millisecond angama-50. Uma kukhona okushintshile, iso lethu lizosabela. Uma kuncane, kuba nzima kakhulu. Uma okuthile kuphendula ngemva kwama-millisecond angu-100, isibonelo, uchofoze ngegundane futhi lakuphendula ngemva kwama-millisecond angu-100, usuvele uzwa lokhu kubambezeleka kancane. Isekhondi selithathwa njengebhuleki.

Ngokufanelekile, uma sihlukanisa imisebenzi yethu emikhulu ibe yiziqhumane eziyi-10, sizoba sengozini yokuthi sizovimba othile. Futhi izosebenza imizuzwana embalwa, futhi abantu bazovele bayiqaphele. Yingakho ngincamela ukungakwenzi isikhathi esingaphezu kwesekhondi. Kodwa ngesikhathi esifanayo, ungayiphuli phansi, ngoba i-overhead yokuthengiselana izobonakala. Kuzoba nzima ngesisekelo, futhi kungase kuphakame ezinye izinkinga ezihlukahlukene.

Sikhetha usayizi wephakethe. Esimweni ngasinye singakwenza lokhu ngendlela ehlukile. Kungenziwa ngokuzenzakalela. Futhi siyaqiniseka ngokusebenza kahle kokucubungula iphakethe elilodwa. Okusho ukuthi, senza UKUSUSA kwephakethe elilodwa noma UKUBUYISA.

Kodwa-ke, konke engikutshela khona akukhona nje nge-DELETE. Njengoba uqagele, lena yinoma yimiphi imisebenzi eyinqwaba kudatha.

Futhi siyabona ukuthi uhlelo luhle kakhulu. Ungabona ukuskena kwenkomba, inkomba engcono kakhulu yokuskena kuphela. Futhi sinenani elincane ledatha elihilelekile. Futhi konke kusebenza ngaphansi kwesekhondi. Super.

Futhi sisadinga ukwenza isiqiniseko sokuthi akukho ukucekelwa phansi. Kwenzeka ukuthi amaqoqo okuqala asebenza ngokushesha, bese konke kuba kubi kakhulu futhi kubi nakakhulu. Inqubo injalo ukuthi udinga ukuhlola okuningi. Yilokhu kanye okudingwa amalebhu e-database.

Futhi kusadingeka silungise okuthile ukuze kuzosivumela ukuthi sikuqaphe kahle lokhu ekukhiqizeni. Isibonelo, singabhala isikhathi kulogi, singabhala ukuthi sikuphi manje nokuthi ubani esibasusile. Futhi lokhu kuzosenza siqonde kamuva ukuthi kwenzekani. Futhi uma kukhona okungahambi kahle, thola ngokushesha inkinga.

Uma sidinga ukuhlola ukusebenza kahle kwemibuzo futhi sidinga ukuphinda izikhathi eziningi, khona-ke kukhona into efana ne-bot yabanye. Sekuvele kulungile. Isetshenziswa onjiniyela abaningi nsuku zonke. Futhi angahlinzeka ngedathabheyisi enkulu ye-terabyte uma ecelwa ngemizuzwana engama-30, ikhophi yakho. Futhi ungasusa okuthile lapho bese uthi SETHA KABUSHA, bese uyisusa futhi. Ungazama ngayo ngale ndlela. Ngibona ikusasa kule nto. Futhi sesivele sikwenza lokhu.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

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

Ayini amasu okuhlukanisa? Ngibona amasu okuhlukanisa angu-3 ahlukene asetshenziswa onjiniyela ephaketheni.

Eyokuqala ilula kakhulu. Sine-ID yenombolo. Ake sihlukanise izikhawu ezihlukene futhi sisebenze ngalokho. Ububi bucacile. Esigabeni sokuqala, singase sibe nemigqa eyi-100 kadoti wangempela, kweyesibili imigqa emi-5 noma ingabi nhlobo, noma yonke imigqa eyi-1 izophenduka udoti. Umsebenzi ongalingani kakhulu, kodwa kulula ukuwuphula. Bathathe umazisi omkhulu bawuphihliza. Lena indlela engenangqondo.

Isu lesibili indlela elinganiselayo. Isetshenziswa ku-Gitlab. Sathatha saskena itafula. Sithole imingcele yamaphakethe kamazisi ukuze iphakethe ngalinye libe namarekhodi ayi-10 ncamashi. Futhi bangimise kolunye uhlobo lomugqa. Futhi sicubungula ngokuqhubekayo. Ungakwenza lokhu ngemicu eminingi.

Kusu lokuqala, ngendlela, ungakwenza futhi lokhu ngemicu eminingana. Akunzima.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

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

Kodwa kukhona indlela epholile futhi engcono kakhulu. Leli isu lesithathu. Futhi uma kungenzeka, kungcono ukuyikhetha. Senza lokhu ngokusekelwe kunkomba ekhethekile. Kulesi simo, cishe kuzoba inkomba esekelwe esimweni sethu sikadoti kanye ne-ID. Sizofaka umazisi ukuze kube yi-index scan kuphela ukuze singayi enqwabeni.

Ngokuvamile, ukuskena kwenkomba kuphela kuyashesha kunokuskena kwenkomba.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Futhi sithola ngokushesha ama-ID ethu esifuna ukuwasusa. Sikhetha i-BATCH_SIZE kusengaphambili. Futhi asigcini nje ngokuwathola, sithola ngendlela ekhethekile futhi silungise ngokushesha. Kodwa siyawakhiya ngendlela yokuthi uma esevele ekhiyiwe, singawakhiyi, kodwa siqhubeke sithathe okulandelayo. Lokhu okokweqa isibuyekezo kukhiyiwe. Lesi sici esihle kakhulu se-Postgres sisivumela ukuthi sisebenze ngemicu eminingi uma sifuna. Kungenzeka emculweni owodwa. Bese kuba khona i-CTE - lesi isicelo esisodwa. Futhi sinokususa kwangempela okwenzeka esitezi sesibili sale CTE - returning *. Ungabuyisela i-id, kodwa kungcono *, uma unedatha encane kulayini ngamunye.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Kungani sikudinga lokhu? Sidinga lokhu ukuze sibike. Manje sesisuse imigqa eminingi eqinisweni. Futhi imingcele yethu nge-ID noma i-creed_at inje. Ungenza okuncane, max. Kukhona okunye okungenziwa. Kuningi ongakwazi ukukumpintsha lapha. Futhi lokhu kulula kakhulu ukuqapha.

Kukhona enye inothi mayelana nenkomba. Uma sinquma ukuthi sidinga inkomba ekhethekile yalo msebenzi othile, ngakho-ke sidinga ukwenza isiqiniseko sokuthi akonakalisi inqwaba yezibuyekezo zama-tuples kuphela. Okusho ukuthi, i-Postgres inezibalo ezinjalo. Lokhu kungabukwa ku-pg_stat_user_tables yetafula lakho. Ungabona ukuthi izibuyekezo ezishisayo ziyasetshenziswa noma cha.

Kunezimo lapho inkomba yakho entsha ingase ivele iwanqamule. Futhi zonke ezinye izibuyekezo esezivele ziyasebenza zizohamba kancane. Hhayi nje ngoba inkomba ivele (inkomba ngayinye inciphisa ukubuyekezwa kancane, kodwa kancane), kodwa lapha isazophazamisa izinto. Futhi akunakwenzeka ukwenza ukulungiselelwa okukhethekile kwaleli thebula. Lokhu kwenzeka ngezinye izikhathi. Lokhu ubuqili abantu abambalwa abakhumbulayo. Futhi kulula ukunyathela kuleli hhashi. Ngezinye izikhathi kwenzeka ukuthi udinga ukuthola indlela esuka kolunye uhlangothi futhi usenze ngaphandle kwale nkomba entsha, noma wenze enye inkomba, noma wenze enye into, isibonelo, ungasebenzisa indlela yesibili.

Kodwa leli yisu elilungile kakhulu, indlela yokulihlukanisa libe ngamaqoqo bese udubula ngamaqoqo ngesicelo esisodwa, susa kancane ngesikhathi, njll.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ukuthengiselana okude - https://gitlab.com/snippets/1890447

I-autovacuum evinjiwe https://gitlab.com/snippets/1889668

Inkinga yokuvimba https://gitlab.com/snippets/1890428

Iphutha #5 likhulu. U-Nikolay wase-Okmeter ukhulume ngokuqapha kwe-Postgres. Ngeshwa, ukuqapha okuphelele kwe-Postgres akukho. Ezinye ziseduze, ezinye zikude. I-Okmeter isondele ngokwanele ukuze ilunge, kodwa kuningi okushodayo futhi okudinga ukwengezwa. Udinga ukulungela lokhu.

Isibonelo, kungcono ukuqapha ama-tuples afile. Uma unezinto eziningi ezifile etafuleni lakho, khona-ke kukhona okungalungile. Kungcono ukusabela manje, ngaphandle kwalokho kungase kube nokululazeka lapho, futhi singalala phansi. Kuyenzeka.

Uma kukhona i-IO enkulu, khona-ke kuyacaca ukuthi lokhu akulungile.

Ukuthengiselana okude nakho. Okwenziwayo okude akufanele kuvunyelwe ku-OLTP. Futhi nasi isixhumanisi samazwibela, esikuvumela ukuthi uthathe la mazwibela futhi usuvele wenze ukulandelela kokuthengiselana okude.

Kungani ukuthengiselana okude kukubi? Ngoba zonke izingidi zizokhishwa kuphela ekugcineni. Futhi sivalela wonke umuntu. Futhi sivimba i-autovacuum yawo wonke amatafula. Lokhu akukuhle neze. Ngisho noma unokulinda okushisayo okunikwe amandla kusifaniso, lokhu kusekubi. Ngokuvamile, kungcono ukugwema ukuthengiselana okude noma kuphi.

Uma sinamathebula amaningi angacishiwe, kufanele sibe nesexwayiso. Isimo esinjalo singenzeka lapha. Singathinta ngokungaqondile ukusebenza kwe-autovacuum. Lona amazwibela avela ku-Avito, engithuthukise kancane. Futhi kuphenduke ithuluzi elithokozisayo ukubona lokho esinakho nge-autovacuum. Isibonelo, kukhona amatafula alindile futhi ngeke alinde ithuba lawo. Kudingeka futhi ukubeke ekuqapheni futhi ube nesexwayiso.

Futhi ukhipha amabhlogo. Ihlathi lokuvimba izihlahla. Ngithanda ukuthatha okuthize kumuntu ngikuthuthukise. Lapha ngithathe i-CTE epholile ephindaphindayo evela ku-Data Egret, ebonisa ihlathi lezihlahla ezikhiyayo. Lokhu kuyinto enhle yokuxilongwa. Futhi ukuqapha kungabuye kwakhiwe phezu kwesisekelo sakho. Kodwa lokhu kufanele kwenziwe ngokucophelela. Udinga ukuzenzela isitatimende esincane_sesikhathi sokuvala. Futhi ukuvala_isikhathi sokuvala kuyafiseleka.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ngezinye izikhathi wonke lawa maphutha avela ndawonye.

Ngokubona kwami, iphutha elibaluleke kakhulu lapha elokuhlela. Kuyinhlangano, ngoba ubuchwepheshe abusebenzi. Lena inombolo 2 - bahlole endaweni engafanele.

Asizange sihlole lapho ngoba besingenayo i-clone yokukhiqiza obekulula ukuyihlola. Umthuthukisi angahle angakwazi ukufinyelela ukukhiqiza nhlobo.

Futhi sahlola endaweni engafanele. Ukube bahlole lapho, ngabe sizibonele thina. Umthuthukisi angabona konke lokhu ngisho nangaphandle kwe-DBA, uma eyihlola endaweni enhle, lapho kukhona inani elifanayo ledatha kanye nokuhlelwa okufanayo. Ubezokubona konke lokhu kwehliswa isithunzi futhi ube namahloni.

Okuningi mayelana ne-vacuum yemoto. Ngemuva kokuthi senze ukuhlanza okukhulu kwemigqa eyizigidi ezimbalwa, sisadinga ukwenza I-REPACK. Lokhu kubaluleke kakhulu kuma-index. Bazophatheka kabi ngemva kokuhlanza yonke into lapho.

Futhi uma ufuna ukubuyisela umsebenzi wansuku zonke wokuhlubula, ngingaphakamisa ukuthi ukwenze kaningi, kodwa kuncane. Kungaba kanye ngomzuzu noma kaningi kancane. Futhi sidinga ukuqapha izinto ezimbili: ukuthi le nto ayinamaphutha nokuthi ayisali ngemuva. Iqhinga engilikhombisile lizokuvumela ukuthi uxazulule lokhu.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Esikwenzayo kuwumthombo ovulekile. Lokhu okuthunyelwe ku-GitLab. Futhi sikwenza ukuze abantu bakwazi ukuhlola ngisho ngaphandle kwe-DBA. Senza ilebhu yedathabheyisi, okungukuthi, sibiza ingxenye eyisisekelo uJoe asebenza kuyo njengamanje. Futhi ungathola ikhophi yokukhiqiza. Manje kukhona ukuqaliswa kwe-Joe ye-slack, ungasho lapho: "chaza isicelo esinjalo" futhi ngokushesha uthole umphumela wekhophi yakho yedatha. Ungakwazi ngisho nokwenza DELETE lapho, futhi akekho ozobona.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Ake sithi unama-terabyte ayi-10, senza ilebhu yedathabheyisi nayo ibe ngama-terabytes ayi-10. Futhi onjiniyela abayi-10 bangasebenza kanyekanye nezizindalwazi ezingama-terabyte eziyi-10 ngasikhathi sinye. Wonke umuntu angenza akuthandayo. Ingasusa, yehlise, njll. Lokhu kuhle kakhulu. Sizokhuluma ngalokhu kusasa.

Sawubona SUSA. U-Nikolay Samokhvalov (Postgres.ai)

Lokhu kubizwa ngokuthi yi- thin provisioning. Lokhu ukunikezwa okucashile. Lolu uhlobo oluthile lwefantasy oluqeda kakhulu ukubambezeleka ekuthuthukisweni nasekuhloleni futhi lenze umhlaba ube yindawo engcono kulokhu. Okusho ukuthi, ikuvumela ukuthi ugweme izinkinga ngokusebenza ngobuningi.

Isibonelo: Isizindalwazi esingu-5 terabyte, sithola ikhophi ngaphansi kwamasekhondi angu-30. Futhi akuxhomekile nakusayizi, okungukuthi akunandaba ukuthi mangaki ama-terabytes.

Namuhla ungaya postgres.ai futhi umbe amathuluzi ethu. Ungabhalisa futhi ubone ukuthi yini lapho. Ungazifakela le bot. Kumahhala. Bhala.

Imibuzo yakho

Kaningi ezimeni zangempela kuvela ukuthi idatha okufanele ihlale kuthebula incane kakhulu kunaleyo edinga ukususwa. Okungukuthi, esimweni esinjalo ngokuvamile kulula ukusebenzisa le ndlela, lapho kulula ukudala into entsha, kopisha kuphela idatha edingekayo lapho bese ubhala ithebula elidala. Kuyacaca ukuthi udinga indlela yesoftware ngalo mzuzu ngenkathi ushintsha. Injani le ndlela?

Lena indlela enhle kakhulu nomsebenzi omuhle kakhulu. Kufana kakhulu nalokho okwenziwa ngu-pg_repack, kufana kakhulu nalokho okufanele ukwenze uma abantu be-ID bekwenza amabhayithi angu-4. Izinhlaka eziningi zenze lokhu eminyakeni embalwa edlule, futhi amapuleti asanda kukhula, futhi adinga ukuguqulwa abe ngamabhayithi angu-8.

Lo msebenzi unzima impela. Sikwenzile. Futhi udinga ukuqaphela kakhulu. Kukhona izingidi, njll. Kodwa kwenziwa. Okusho ukuthi, indlela ejwayelekile ukusebenzisa i-pg_repack. Umemezela uphawu olunjalo. Futhi ngaphambi kokuthi uqale ukuyigcwalisa ngedatha yesifinyezo, uphinda umemezele ithebula elilodwa elilandelela zonke izinguquko. Kukhona iqhinga lapho ukuthi ungase ungakwazi ngisho ukulandelela izinguquko ezithile. Kukhona ubuqili. Bese ushintsha, ukhipha izinguquko. Kuzoba khona isikhashana uma sikhiya wonke umuntu, kodwa sekukonke lokhu kuyenziwa.

Uma ubheka i-pg_repack ku-GitHub, lapho-ke kunomsebenzi wokuguqula i-ID isuke ku-int 4 iye ku-int 8, khona-ke bekunombono wokusebenzisa i-pg_repack ngokwayo. Lokhu kungenzeka futhi, kodwa lokhu kuyindlela encane ye-hacker, kodwa futhi izosebenza kulokhu. Ungangenelela kusibangeli esisebenzisa i-pg_repack bese uthi lapho: β€œAsiyidingi le datha,” okungukuthi, sidlulisela kuphela esikudingayo. Bese evele eshintsha futhi yilokho.

Ngale ndlela, sithola futhi ikhophi yesibili yetafula, lapho idatha isivele ikhonjisiwe futhi ibekwe kahle kakhulu ngezinkomba ezinhle.

Bloat cha, lena indlela enhle. Kodwa ngiyazi ukuthi kunemizamo yokuthuthukisa i-automation yalokhu, okungukuthi ukwenza isisombululo sendawo yonke. Ngingakwethula kulokhu okuzenzakalelayo. Kubhalwe ngePython, izinto ezinhle.

Ngivela kancane nje emhlabeni we-MySQL, ngakho ngize ukuzolalela. Futhi sisebenzisa le ndlela.

Kodwa kuphela uma sino-90%. Uma sino-5%, ngakho-ke akukuhle kakhulu ukukusebenzisa.

Siyabonga ngombiko! Uma zingekho izinsiza zokwenza ikhophi egcwele ye-prod, ingabe ikhona i-algorithm noma ifomula yokubala umthwalo noma usayizi?

Umbuzo omuhle. Kuze kube manje siyakwazi ukuthola isizindalwazi se-multi-terabyte. Ngisho noma i-hardware lapho ingafani, isibonelo, inkumbulo encane, iprosesa encane namadiski awafani ncamashi, sisakwenza. Uma kungekho ndawo ngokuphelele, kufanele ucabange ngakho. Ake ngicabange ngakho kuze kube kusasa, ufikile, sizoxoxa, lo mbuzo omuhle.

Siyabonga ngombiko! Uqale ukukhuluma ngeqiniso lokuthi kukhona i-Postgres epholile, enemikhawulo enjalo naleyo, kepha iyathuthuka. Futhi konke lokhu kuyinkomba enkulu. Ingabe konke lokhu akuphikisani nokuthuthukiswa kwe-Postgres ngokwayo, lapho uhlobo oluthile lwe-DELETE deferent luzovela noma enye into okufanele igcine ezingeni eliphansi lokho esizama ukukumboza lapha ngezinye izindlela zethu ezingavamile?

Uma ku-SQL sithe ukususa noma ukuvuselela amarekhodi amaningi ekwenziweni okukodwa, khona-ke i-Postgres ingasabalalisa kanjani lokhu? Silinganiselwe ngokomzimba ekusebenzeni. Sisazokwenza lokhu isikhathi eside. Futhi sizokhiya ngalesi sikhathi, njll.

Benza okufanayo ngama-index.

Ngingacabanga ukuthi ukulungisa okufanayo kwendawo yokuhlola kungase kuzenzekele. Ngelinye ilanga lokhu kungenzeka. Kodwa-ke angiwuqondi ngempela umbuzo.

Umbuzo uwukuthi: ingabe ikhona i-vector yokuthuthuka eya lapho, futhi ihambisane neyakho lapha? Labo. Abakacabangi ngakho?

Ngikhulume ngezimiso ezingasetshenziswa manje. Kukhona enye i-bot Nancy, ngalokhu ungenza ukushuna kwendawo yokuhlola okuzenzakalelayo. Ngabe lokhu kuzoke kwenzeke ePostgres? Angazi, lokhu akukaxoxwa ngakho. Sikude nalokhu okwamanje. Kodwa kukhona ososayensi abenza izinhlelo ezintsha. Futhi basishova kuma-index azenzakalelayo. Kukhona intuthuko. Isibonelo, ungabheka ukushuna okuzenzakalelayo. Ikhetha amapharamitha ngokuzenzakalelayo. Kodwa ngeke akwenzele indawo yokuhlola okwamanje. Okusho ukuthi, izokhetha ukusebenza, i-shell buffer, njll.

Futhi ekulungiseni indawo yokuhlola ungenza lokhu okulandelayo: uma unamaqoqo ayinkulungwane nezingcezu ezahlukene zehadiwe, imishini ehlukile ebonakalayo efwini, ungasebenzisa i-bot yethu. Nancy ukwenza okuzenzakalelayo. Futhi i-max_wal_size izokhethwa ngokuzenzakalelayo ngokuya ngezilungiselelo zakho eziqondiwe. Kodwa kuze kube manje lokhu akusondeli ngisho nokuba se-kernel, ngeshwa.

Sawubona Ukhulume ngobungozi bokuthengiselana okude. Uthe i-autovacuum ivinjiwe uma kwenzeka ukususwa. Lokhu kusilimaza kanjani futhi? Ngoba sikhuluma kakhulu ngokukhulula isikhala nokukwazi ukusisebenzisa. Yini enye okufanele siyilahlekele?

I-Autovacuum ingase ingabi inkinga enkulu lapha. Futhi iqiniso lokuthi ukuthengiselana okude kungavimba okunye ukuthengiselana kuyingozi kakhulu. Angase ahlangane noma angahlangani. Uma ehlangana, khona-ke izinto zingaba zimbi kakhulu. Futhi nge-autovacuum lokhu nakho kuyinkinga. Kunezinkinga ezimbili ngokwenziwe okude ku-OLTP: okhiye kanye ne-autovacuum. Futhi uma unempendulo eshisayo yokulinda enikwe amandla kusifaniso, khona-ke ukuvinjwa kwe-autovacuum nakho kuzofika ku-master, kuzofika kusuka kusifaniso. Kodwa okungenani ngeke kube khona izingidi lapho. Futhi lapha kuzoba nezingidi. Sikhuluma ngezinguquko zedatha, ngakho-ke izingidi ziyiphuzu elibalulekile lapha. Futhi uma lokhu kuqhubeka isikhathi eside, isikhathi eside, khona-ke ukuthengiselana okwengeziwe kuyavinjwa. Bangakwazi ukubamba abanye. Futhi kuvela izihlahla zokukhiya. Nginikeze isixhumanisi samazwibela. Futhi le nkinga isheshe ibonakale kunenkinga nge-autovacuum, engaqongelela kuphela.

Siyabonga ngombiko! Uqale umbiko wakho ngokuthi uhlole ngokungalungile. Siqhubekile nombono wethu wokuthi sidinga ukuthatha imishini efanayo, nesisekelo esifanayo ncamashi. Ake sithi sinikeze unjiniyela isisekelo. Futhi wenza ngokuvumelana nesicelo. Futhi ubonakala enza kahle. Kodwa ayibheki bukhoma, kodwa bukhoma, isibonelo, umthwalo wethu ungama-60-70%. Futhi noma sisebenzisa lokhu kushuna, akuphumi kahle kakhulu

Ukuba nochwepheshe eqenjini lakho nokusebenzisa ochwepheshe be-DBA abangabikezela ukuthi kuzokwenzekani ngaphansi komthwalo wangempela ongemuva kubalulekile. Lapho simane sidlula ezinguqukweni zethu ezimsulwa, sibona isithombe. Kodwa indlela ethuthuke kakhulu kwaba lapho senza into efanayo futhi, kodwa ngomthwalo wokukhiqiza owenziwe. Lokhu kupholile ngokuphelele. Kusafanele sikhule kuze kube manje. Ivuthiwe. Sibheke lokho esinakho kuphela saphinde sabheka ukuthi sinazo yini izinsiza ezanele. Umbuzo omuhle lowo.

Uma sesivele senza ukukhetha kukadoti futhi sine, isibonelo, ifulege elisusiwe

Yilokhu okwenziwa i-autovacuum ngokuzenzakalelayo ku-Postgres.

O, uyakwenza lokho?

I-Autovacuum ingumqoqi wezibi.

Siyabonga!

Siyabonga ngombiko! Ingabe ikhona inketho yokuklama ngokushesha i-database nge-partitioning ukuze wonke udoti ususwe etafuleni eliyinhloko endaweni ethile ohlangothini?

Yebo babe.

Singakwazi yini ukuzivikela uma sikhiye itafula okungafanele lisetshenziswe?

Yebo babe. Kodwa lona umbuzo wenkukhu neqanda. Uma sonke sazi ukuthi kuzokwenzekani esikhathini esizayo, khona-ke, ngokuqinisekile, sizokwenza konke okuhle. Kodwa ibhizinisi liyashintsha, amakholomu amasha nezicelo ezintsha ziyavela. Bese-ke - eshu, sifuna ukuyisusa. Kodwa lesi yisimo esihle; kwenzeka empilweni, kodwa hhayi njalo. Kodwa jikelele kuwumqondo omuhle. Vele unciphise futhi yilokho.

Source: www.habr.com

Engeza amazwana