Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Xi darba fil-futur imbiegħed, it-tneħħija awtomatika ta 'data mhux meħtieġa se tkun waħda mill-kompiti importanti ta' DBMS [1]. Sadanittant, aħna stess jeħtieġ li nieħdu ħsieb li nħassru jew nimxu data mhux meħtieġa għal sistemi ta 'ħażna inqas għaljin. Ejja ngħidu li inti tiddeċiedi li tħassar diversi miljuni ringieli. Kompitu pjuttost sempliċi, speċjalment jekk il-kundizzjoni hija magħrufa u hemm indiċi adattat. "ĦASSRA MINN tabella1 FEJN col1 = :value" - x'jista' jkun aktar sempliċi, hux?

Video:

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

  • Jien ilni fuq il-kumitat tal-programm Highload mill-ewwel sena, jiġifieri mill-2007.

  • U ilni ma’ Postgres mill-2005. Użaha f'ħafna proġetti.

  • Il-grupp ilu wkoll ma’ RuPostges mill-2007.

  • Aħna kibru għal 2100+ parteċipant fuq Meetup. Dan huwa t-tieni post fid-dinja wara New York, wara li qabeż lil San Francisco żmien twil ilu.

  • Ilni ngħix il-Kalifornja għal diversi snin. Naħdem l-aktar ma' kumpaniji Amerikani, inklużi dawk kbar. Huma utenti attivi ta' Postgres. U hemm kull xorta ta’ affarijiet interessanti jinqalgħu.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/ – din hija l-kumpanija tiegħi. Aħna qegħdin fin-negozju tal-awtomatizzazzjoni tal-kompiti li jeliminaw it-tnaqqis fir-ritmu tal-iżvilupp.

Jekk tagħmel xi ħaġa, xi kultant ikun hemm xi glitches madwar Postgres. Ejja ngħidu li għandek bżonn tistenna sakemm l-amministratur iġiblek bank tat-test, jew trid tistenna sakemm id-DBA jirrispondi lilek. U nsibu ostakoli bħal dawn fil-proċess ta 'żvilupp, ittestjar u amministrazzjoni u nippruvaw neliminawhom bl-użu ta' awtomazzjoni u approċċi ġodda.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

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

Dan l-aħħar kont fil-VLDB f'Los Angeles. Din hija l-akbar konferenza tad-database. U kien hemm rapport li fil-futur id-DBMSs mhux biss se jaħżnu, iżda wkoll awtomatikament iħassru d-data. Dan huwa suġġett ġdid.

Hemm aktar u aktar data fid-dinja Zetabytes huma 1 petabytes. U issa huwa diġà stmat li għandna aktar minn 000 zettabytes ta 'dejta maħżuna fid-dinja. U hemm aktar u aktar minnhom.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

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

U x'għandek tagħmel biha? Huwa ċar li jeħtieġ li titħassar. Hawnhekk hawn link għal dan ir-rapport interessanti. Iżda s'issa dan ma ġiex implimentat fid-DBMS.

Dawk li jafu jgħoddu l-flus iridu żewġ affarijiet. Huma jriduna nħassru, għalhekk teknikament irridu nkunu nistgħu nagħmluh.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Dak li se ngħid li jmiss hija sitwazzjoni astratta li tinkludi mazz ta 'sitwazzjonijiet reali, jiġifieri, ċertu kumpilazzjoni ta' dak li fil-fatt ġara lili u d-databases tal-madwar ħafna drabi, ħafna snin. Rakes huma kullimkien u kulħadd jimxi fuqhom il-ħin kollu.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Ejja ngħidu li għandna bażi jew diversi bażijiet li qed jikbru. U xi wħud mir-rekords huma żibel ovvju. Pereżempju, l-utent beda jagħmel xi ħaġa hemmhekk, iżda ma spiċċax. U wara xi żmien nafu li dan ix-xogħol mhux mitmum ma jistax jibqa’ maħżun. Jiġifieri nixtiequ naddaf xi affarijiet junk biex niffrankaw l-ispazju, intejbu l-prestazzjoni, eċċ.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

B'mod ġenerali, il-kompitu huwa li awtomat it-tħassir ta 'affarijiet speċifiċi, linji speċifiċi f'tabella.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

U għandna talba li llum nitkellmu dwarha, jiġifieri dwar it-tneħħija taż-żibel.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Tlabna żviluppatur b'esperjenza biex jagħmel dan. Huwa ħa din it-talba, ivverifikaha hu stess - kollox jaħdem. Ittestjajtu fuq staging - kollox tajjeb. Rolled out - kollox jaħdem. Darba kuljum inħaddmu dan - kollox tajjeb.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Id-database qed tikber u tikber. Il-DELETE ta' kuljum jibda jaħdem ftit aktar bil-mod.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Imbagħad nindunaw li issa aħna kumpanija tal-marketing u t-traffiku se jkun bosta drabi akbar, għalhekk niddeċiedu li nwaqqfu temporanjament affarijiet mhux meħtieġa. U ninsew li nirritornawha.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Ftit xhur wara ftakru. U dak l-iżviluppatur nieqaf jew kien okkupat b'xi ħaġa oħra, assenjaw ieħor biex jirritornaha.

Huwa ċċekkja fuq dev, fuq staging - kollox huwa OK. Naturalment, għad trid tnaddaf dak li jkun akkumula. Huwa ċċekkja, kollox jaħdem.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

X'jiġri wara? Imbagħad kollox jaqa’ barra għalina. Tant tinżel li f’xi ħin jaqa’ kollox. Kulħadd jinsab xokk, ħadd ma jifhem x’qed jiġri. U mbagħad jirriżulta li din it-TĦASSAR kienet il-kwistjoni.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Xi ħaġa marret ħażin? Hawnhekk hawn lista ta’ affarijiet li jistgħu jmorru ħażin. Liema minn dawn hija l-aktar importanti?

  • Pereżempju, ma kien hemm l-ebda reviżjoni, jiġifieri l-espert tad-DBA ma ħarisx. B'għajn ta 'esperjenza, immedjatament isib il-problema, u barra minn hekk, għandu aċċess għal prod, fejn akkumulaw bosta miljuni ta' linji.

  • Forsi ċċekkjaw xi ħaġa ħażina.

  • Forsi l-ħardwer huwa skadut u għandek bżonn taġġorna din id-database.

  • Jew xi ħaġa ħażina fid-database nnifisha, u għandna bżonn nimxu minn Postgres għal MySQL.

  • Jew forsi hemm xi ħaġa ħażina fl-operazzjoni.

  • Forsi hemm xi żbalji fl-organizzazzjoni tax-xogħol u trid tkeċċi lil xi ħadd u timpjega nies aħjar?

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Ma kien hemm ebda kontroll DBA. Kieku kien hemm DBA, kien jara dawn il-bosta miljuni ta 'linji u anki mingħajr l-ebda esperimenti kien jgħid: "Ma jagħmlux hekk." Ejja ngħidu jekk dan il-kodiċi kien f'GitLab, GitHub u kien hemm proċess ta 'reviżjoni tal-kodiċi u ma kienx hemm tali ħaġa li mingħajr l-approvazzjoni tad-DBA din l-operazzjoni ssir fuq prod, allura ovvjament id-DBA kien jgħid: "Ma tistax tagħmel dan. ”

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

U kien jgħid li jkollok problemi bid-disk IO u l-proċessi kollha se jmorru crazy, jista 'jkun hemm serraturi, u int se timblokka wkoll l-autovacuum għal mazz ta' minuti, għalhekk dan mhux tajjeb.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

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

It-tieni żball huwa li ċċekkjaw fil-post ħażin. Rajna wara l-fatt li ħafna data taż-żibel kienet akkumulata fuq prod, iżda l-iżviluppatur ma kellux data akkumulata f'din id-database, u ħadd ma verament ħoloq dan iż-żibel fuq staging. Għaldaqstant, kien hemm 1 linja, li tlestew malajr.

Nifhmu li t-testijiet tagħna huma dgħajfa, jiġifieri l-proċess li jinbena ma jaqbadx problemi. Ma sarx esperiment DB adegwat.

Esperiment ideali għandu preferibbilment jitwettaq fuq l-istess tagħmir. Mhux dejjem possibbli li tagħmel dan fuq l-istess ħardwer, iżda huwa importanti ħafna li tkun kopja ta' daqs sħiħ tad-database. Dan huwa dak li ilni nipprietka għal bosta snin issa. U sena ilu tkellimt dwar dan, tista’ taraha kollha fuq YouTube.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Forsi t-tagħmir tagħna huwa ħażin? Jekk tħares, il-latency qabżet. Rajna li r-riċiklaġġ kien 100%. Naturalment, kieku dawn kienu drives NVMe moderni, allura probabbilment ikun ħafna aktar faċli għalina. U forsi ma nimteddux minħabba f’hekk.

Jekk għandek sħab, allura l-aġġornament huwa faċli. Nedejna repliki ġodda fuq ħardwer ġdid. Qlib. U kollox tajjeb. Pjuttost faċli.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Huwa possibbli li b'xi mod tmissx diski iżgħar? U hawn, bl-għajnuna ta 'DBA, aħna adsa f'ċertu suġġett imsejjaħ checkpoint tuning. Jirriżulta li ma kellniex irfinar tal-punt ta 'kontroll.

X'inhu checkpoint? Dan huwa disponibbli fi kwalunkwe DBMS. Meta d-data fil-memorja tiegħek tinbidel, ma tinkitebx immedjatament fuq diski. L-informazzjoni li d-dejta nbidlet tinkiteb l-ewwel fil-ġurnal bil-quddiem, fir-reġistru tal-kitba bil-quddiem. U f'xi punt, id-DBMS jiddeċiedi li wasal iż-żmien li tarmi l-paġni reali fuq id-diska, sabiex jekk ikollna falliment, inkunu nistgħu nagħmlu inqas REDO. Huwa bħal ġugarell. Jekk ninqatlu, nibdew il-logħba mill-aħħar checkpoint. U d-DBMS kollha jimplimentaw dan.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Is-settings f'Postgres għadhom lura. Huma ddisinjati għal volumi ta 'dejta u operazzjonijiet ta' 10-15-il sena. U l-punt ta 'kontroll mhuwiex eċċezzjoni.

Din l-informazzjoni hija mir-rapport tagħna bi Postgres check-up, jiġifieri kontroll awtomatiku tas-saħħa. U hawn xi database ta 'diversi terabytes. U huwa ċar li l-punti ta 'kontroll huma sfurzati fi kważi 90% tal-każijiet.

Xi tfisser? Hemm żewġ settings hemmhekk. Il-punt ta 'kontroll jista' jseħħ fil-timeout, pereżempju, f'10 minuti. Jew jista 'jseħħ meta pjuttost ħafna dejta tkun ġiet mimlija.

U b'mod awtomatiku, max_wal_saze huwa ssettjat għal 1 gigabyte. Fil-fatt, dan fil-fatt jiġri f'Postgres wara 300-400 megabytes. Int biddlu ħafna data u għandek checkpoint.

U jekk ħadd ma rranġah, iżda s-servizz kiber, u l-kumpanija taqla 'ħafna flus, għandha ħafna tranżazzjonijiet, allura l-punt ta' kontroll iseħħ darba fil-minuta, xi drabi darba kull 30 sekonda, u xi kultant saħansitra jikkoinċidu lil xulxin. . Dan huwa tassew ħażin.

U rridu niżguraw li tiġi inqas spiss. Jiġifieri, nistgħu ngħollu max_wal_size. U se jattakka inqas spiss.

Iżda żviluppajna metodoloġija sħiħa dwar kif tagħmel dan b'mod aktar korrett, jiġifieri, kif tieħu deċiżjonijiet dwar l-għażla tas-settings, ibbażati b'mod ċar fuq data speċifika.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Għaldaqstant, nagħmlu żewġ serje ta 'esperimenti ta' database.

L-ewwel serje - nibdlu max_wal_size. U nwettqu operazzjoni massiva. L-ewwel nagħmluha fl-issettjar default ta '1 gigabyte. U nagħmlu TĦASSAR massiv ta 'ħafna miljuni ta' linji.

Tista’ tara kemm hi diffiċli għalina. Naraw li disk IO hija ħażina ħafna. Ejja naraw kemm iġġenerajna WAL, għax dan huwa importanti ħafna. Ejja naraw kemm-il darba ġara l-punt ta’ kontroll. U naraw li mhux tajjeb.

Imbagħad inżidu max_wal_size. Nirrepetu. Żid, irrepeti. U tant drabi. Fil-prinċipju, 10 punti huwa tajjeb, fejn 1, 2, 4, 8 gigabytes. U nħarsu lejn l-imġieba ta 'sistema speċifika. Huwa ċar li t-tagħmir hawn għandu jkun bħal fuq prod. Għandu jkollok l-istess diski, l-istess ammont ta 'memorja, u l-istess settings ta' Postgres.

U b'dan il-mod se niskambjaw is-sistema tagħna, u nafu kif id-DBMS se jġib ruħu f'każ ta 'massa ħażina TĦASSAR, kif se checkpoint.

Checkpoint bir-Russu tfisser punti ta' kontroll.

Eżempju: Ħassar bosta miljuni ta’ ringieli skont l-indiċi, ir-ringieli huma “imxerrda” fuq il-paġni.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Hawn eżempju. Din hija xi bażi. U bl-issettjar default ta '1 gigabyte għal max_wal_size, huwa ċar ħafna li d-diski tagħna għar-reġistrazzjoni jmorru fuq l-ixkaffa. Din l-istampa hija sintomu tipiku ta’ pazjent marid ħafna, jiġifieri tassew ħassu ħażin. U kien hemm operazzjoni waħda biss, hawn kien biss TĦASSAR ta 'diversi miljuni ta' linji.

Jekk operazzjoni bħal din hija permessa fil-prod, allura aħna se naqgħu biss, għax huwa ċar li wieħed DELETE joqtolna fl-ixkaffa.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Barra minn hekk, fejn hemm 16-il gigabytes, tista 'tara li s-snien diġà bdew jidhru. Is-snien diġà huma aħjar, jiġifieri qed inħabbtu s-saqaf, iżda mhux daqshekk ħżiena. Ftit libertà dehret hemm. Fuq il-lemin hemm ir-reġistrazzjoni. U n-numru ta 'operazzjonijiet huwa t-tieni graff. U huwa ċar li diġà qed nieħdu n-nifs ftit aktar faċli b'16-il gigabytes.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

U fejn 64 gigabytes huma viżibbli, sar kompletament aħjar. Diġà s-snien huma viżibbli b'mod ċar, hemm aktar opportunitajiet biex jgħix operazzjonijiet oħra u tagħmel xi ħaġa bid-diska.

Għaliex?

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Se ngħaddas ftit fid-dettalji, iżda dan is-suġġett ta 'kif twettaq l-irfinar tal-punt ta' kontroll jista 'jirriżulta f'rapport sħiħ, għalhekk mhux se nidħol f'ħafna dettall, iżda ser niddeskrivi ftit x'diffikultajiet hemm.

Jekk il-punt ta 'kontroll jiġri ta' spiss wisq, u ma naġġornawx ir-ringieli tagħna b'mod sekwenzjali, iżda nsibuhom bl-indiċi, li huwa tajjeb, għax ma nħassrux it-tabella kollha, allura jista 'jiġri li l-ewwel missna l-ewwel paġna, imbagħad l-elf, u mbagħad lura għall-ewwel. U jekk bejn dawn iż-żjarat fl-ewwel paġna l-punt ta 'kontroll diġà ssejvjah fuq id-disk, allura jerġa' jsalvah, għax aħna maħmuġinha għat-tieni darba.

U aħna se nġiegħlu l-punt ta 'kontroll biex isalvah ħafna drabi. Bħallikieku hemm operazzjonijiet żejda għaliha.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Imma dan mhux kollox. F'Postgres, il-paġni jiżnu 8 kilobytes, u fil-Linux 4 kilobytes. U hemm iffissar full_page_writes. Huwa attivat awtomatikament. U dan huwa korrett, għax jekk nitfih, hemm il-periklu li jekk ikun hemm falliment, nofs il-paġna biss tiġi salvata.

L-imġieba tad-dħul fil-WAL tal-ġurnal bil-quddiem hija tali li meta jkollna checkpoint u nbiddlu paġna għall-ewwel darba, il-paġna kollha, jiġifieri t-8 kilobytes kollha, tispiċċa fil-ġurnal bil-quddiem, għalkemm aħna biddel biss linja li tiżen 100 bytes. U aħna mġiegħla nikteb il-paġna kollha.

F'bidliet sussegwenti se jkun hemm biss tuple speċifiku, iżda għall-ewwel darba nikteb kollox.

U, għaldaqstant, jekk il-punt ta 'kontroll jerġa' jseħħ, allura rridu nibdew kollox mill-bidu mill-ġdid u nimxu l-paġna kollha. B'punti ta 'kontroll frekwenti, meta nimxu fl-istess paġni, full_page_writes = on se jkun akbar milli jista' jkun, jiġifieri niġġeneraw aktar WAL. Aktar jintbagħat lill-repliki, lill-arkivju, lill-disk.

U, għaldaqstant, għandna żewġ sensji.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Jekk inżidu max_wal_size, jirriżulta li nagħmlu x-xogħol kemm ta' checkpoint kif ukoll ta' wal writer aktar faċli. U dan huwa kbir.

Ejja ninstallaw terabyte u ngħixu miegħu. X'hemm ħażin dwar dan? Dan huwa ħażin, għax f’każ ta’ falliment inqumu għal sigħat, għax il-punt ta’ kontroll kien ilu ħafna u diġà nbidlu ħafna. U rridu nagħmlu REDO għal dan kollu. U għalhekk qed nagħmlu t-tieni serje ta 'esperimenti.

Nagħmlu l-operazzjoni u naraw meta l-punt ta 'kontroll ikun viċin li jitlesta, nagħmlu qatla -9 Postgres apposta.

U wara dan, nerġgħu nibdewha, u naraw kemm se tieħu biex titla 'fuq dan it-tagħmir, jiġifieri, kemm se tagħmel REDO f'din is-sitwazzjoni ħażina.

Ser ninnota darbtejn li s-sitwazzjoni hija ħażina. L-ewwelnett, waqgħu eżatt qabel tmiem il-punt ta 'kontroll, għalhekk għandna ħafna x'nitilfu. U t-tieni, kellna operazzjoni massiva. U kieku l-punti ta 'kontroll kellhom timeout, allura x'aktarx kien ikun iġġenerat inqas WAL mill-aħħar punt ta' kontroll. Jiġifieri, dan huwa telliefa darbtejn.

Aħna nkejlu din is-sitwazzjoni għal max_wal_size differenti u nifhmu li jekk max_wal_size huwa 64 gigabytes, allura f'sitwazzjoni ta' l-agħar doppju se nqumu għal 10 minuti. U naħsbu jekk dan jaqbilx magħna jew le. Din hija kwistjoni tan-negozju. Irridu nuru din l-istampa lil dawk responsabbli mid-deċiżjonijiet tan-negozju u nistaqsu: “X’inhu l-ħin massimu li nistgħu nistennew f’każ ta’ problema? Nistgħu nimteddu f’sitwazzjoni agħar għal 3-5 minuti?” U tieħu deċiżjoni.

U hawn hemm punt interessanti. Għandna ftit rapporti dwar Patroni fil-konferenza. U forsi qed tużah. Dan huwa autofailover għal Postgres. GitLab u Data Egret tkellmu dwar dan.

U jekk għandek autofailover li se jseħħ fi 30 sekonda, allura forsi nistgħu jimteddu għal 10 minuti? Għax sa dan il-punt se naqilbu għar-replika, u kollox ikun tajjeb. Din hija kwistjoni kontroversjali. Ma nafx tweġiba ċara. Inħoss biss li dan is-suġġett mhuwiex biss madwar l-irkupru tad-diżastri.

Jekk ikollna rkupru twil minn falliment, allura nkunu skomdi f'ħafna sitwazzjonijiet oħra. Per eżempju, fl-istess esperimenti, meta nagħmlu xi ħaġa u kultant ikollna nistennew għal 10 minuti.

Jien xorta ma mmurx wisq, anke jekk ikollna autofailover. Bħala regola, valuri bħal 64, 100 gigabytes huma valuri tajbin. Xi drabi jkun saħansitra ta’ min jagħżel inqas. B'mod ġenerali, din hija xjenza sottili.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Sabiex itenni, pereżempju, max_wal_size = 1, 8, għandek bżonn tirrepeti l-operazzjoni tal-massa ħafna drabi. Għamiltha. U trid terġa 'tagħmel fuq l-istess bażi, imma diġà ħassejt kollox. X'tagħmel?

I ser ngħidlek aktar tard dwar is-soluzzjoni tagħna u dak li nagħmlu biex itenni f'sitwazzjonijiet bħal dawn. U dan huwa l-aktar approċċ korrett.

Imma f’dan il-każ konna xxurtjati. Jekk, kif jgħid hawn "BEGIN, DELETE, ROLLBACK", allura nistgħu nirrepetu DELETE. Jiġifieri, jekk ikkanċellajnaha aħna stess, allura nistgħu nirrepetuha. U fiżikament id-data tiegħek se tkun hemm. Inti lanqas biss tikseb xi nefħa. Tista' ttenni fuq tali ĦASSAR.

Dan DELETE b'ROLLBACK huwa ideali għall-irfinar tal-punt ta' kontroll, anke jekk ma jkollokx laboratorji ta' database skjerati kif suppost.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Għamilna sinjal b'kolonna waħda "i". Postgres għandu kolonni tas-servizz. Huma inviżibbli sakemm ma jintalbux speċifikament. Dawn huma: ctid, xmid, xmax.

Ctid huwa l-indirizz fiżiku. Paġna żero, l-ewwel tuple fil-paġna.

Wieħed jista’ jara li wara ROOLBACK it-tuple baqa’ fl-istess post. Jiġifieri nistgħu nerġgħu nippruvaw, se jġibu ruħhom l-istess. Din hija l-ħaġa prinċipali.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Xmax huwa l-ħin tal-mewt tat-tuple. Jiddaħħal, iżda Postgres jaf li din it-tranżazzjoni ġiet imreġġa 'lura, għalhekk ma jimpurtax jekk hijiex 0 jew transazzjoni lura. Dan jissuġġerixxi li DELETE jista' jintuża biex itenni u jittestja operazzjonijiet massivi tal-imġieba tas-sistema. Tista 'tagħmel laboratorji ta' database għall-foqra.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Dan huwa dwar programmaturi. Dwar id-DBA wkoll, dejjem iċanfru lill-programmaturi għal dan: "Għaliex qed tagħmel operazzjonijiet daqshekk twal u diffiċli?" Dan huwa suġġett perpendikulari kompletament differenti. Qabel kien hemm amministrazzjoni, iżda issa se jkun hemm żvilupp.

Ovvjament aħna ma qassmuhx f'partijiet. Huwa ċar. Huwa impossibbli li tkisser tali TĦASSAR għal mazz ta 'miljuni ta' linji f'partijiet. Se tieħu 20 minuta biex tagħmel, u kollox jimtedd. Iżda, sfortunatament, anke żviluppaturi b'esperjenza jagħmlu żbalji, anke f'kumpaniji kbar ħafna.

Għaliex huwa importanti tkissir?

  • Jekk naraw li d-diska hija iebsa, allura ejja nnaqqsuha. U jekk inkissru, allura nistgħu nżidu pawżi, nistgħu nnaqqsu t-throttling.

  • U mhux se nibblukkaw lil oħrajn għal żmien twil. F'xi każijiet ma jimpurtax, jekk qed tneħħi żibel reali li ħadd ma jkun qed jaħdem fuqu, allura x'aktarx ma timblokka lil ħadd ħlief ix-xogħol tal-autovacuum għax se tistenna li titlesta t-tranżazzjoni. Imma jekk tħassar xi ħaġa li xi ħadd ieħor jista 'jitlob, allura dawn jiġu mblukkati, se jkun hemm xi tip ta' reazzjoni katina. Transazzjonijiet twal għandhom jiġu evitati fuq websajts u applikazzjonijiet mobbli.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

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

Dan huwa interessanti. Ħafna drabi nara lill-iżviluppaturi jistaqsu, "X'daqs tal-pakkett għandi nagħżel?"

Huwa ċar li iktar ma jkun kbir id-daqs tal-lott, iktar ikun baxx l-ispiża ġenerali tat-tranżazzjoni, jiġifieri spejjeż ġenerali tat-tranżazzjoni addizzjonali. Iżda fl-istess ħin, iż-żmien għal din it-tranżazzjoni jiżdied.

Għandi regola sempliċi ħafna: ħu kemm jista 'jkun, iżda ma taqbiżx l-eżekuzzjoni kull sekonda.

Għaliex it-tieni? L-ispjegazzjoni hija sempliċi ħafna u tinftiehem minn kulħadd, anke minn nies mhux tekniċi. Naraw ir-reazzjoni. Ejja nieħdu 50 millisekondi. Jekk xi ħaġa tkun inbidlet, l-għajnejn tagħna se jirreaġixxu. Jekk huwa inqas, huwa aktar diffiċli. Jekk xi ħaġa twieġeb wara 100 millisekondi, pereżempju, għafast bil-maws u weġiblek wara 100 millisekondi, diġà tħoss dan id-dewmien żgħir. It-tieni hija diġà pperċepita bħala brejk.

Għaldaqstant, jekk naqsmu l-operazzjonijiet tal-massa tagħna f'fqigħ ta' 10 sekondi, allura nirriskjaw li nibblukkaw lil xi ħadd. U se taħdem għal ftit sekondi, u n-nies diġà jindunaw bih. Għalhekk nippreferi li ma nagħmilx għal aktar minn sekonda. Iżda fl-istess ħin, tkisserhiex żgħir wisq, minħabba li t-transazzjoni overhead tkun notevoli. Se jkun itqal għall-bażi, u jistgħu jinqalgħu diversi problemi oħra.

Aħna nagħżlu d-daqs tal-pakkett. F'kull każ nistgħu nagħmlu dan b'mod differenti. Jista 'jkun awtomatizzat. U aħna konvinti mill-effiċjenza tal-ipproċessar ta 'pakkett wieħed. Jiġifieri nagħmlu TĦASSAR ta' pakkett wieħed jew AĠĠORNAR.

Mill-mod, dak kollu li ngħidilkom mhux biss dwar ĦASSAR. Kif qtajt, dawn huma kwalunkwe operazzjonijiet bl-ingrossa fuq id-dejta.

U naraw li l-pjan huwa eċċellenti. Tista 'tara l-indiċi scan, anki aħjar indiċi biss scan. U għandna ammont żgħir ta 'dejta involuta. U kollox jaħdem f'inqas minn sekonda. Super.

U għad irridu niżguraw li ma jkunx hemm degradazzjoni. Jiġri li l-ewwel lottijiet jinħadmu malajr, u mbagħad kollox imur għall-agħar u agħar u agħar. Il-proċess huwa tali li għandek bżonn tittestja ħafna. Dan huwa eżattament dak il-laboratorji tad-database huma meħtieġa għalih.

U għad għandna bżonn nippreparaw xi ħaġa sabiex tippermettilna nissorveljaw dan b'mod korrett fil-produzzjoni. Pereżempju, nistgħu niktbu l-ħin fil-ġurnal, nistgħu niktbu fejn qegħdin issa u lil min issa ħassarna. U dan jippermettilna nifhmu aktar tard x’qed jiġri. U jekk xi ħaġa tmur ħażin, malajr issib il-problema.

Jekk irridu niċċekkjaw l-effiċjenza tal-mistoqsijiet u rridu nirrepetu ħafna drabi, allura hemm ħaġa bħal bot sħabi. Huwa diġà lest. Jintuża minn għexieren ta 'żviluppaturi kuljum. U jista 'jipprovdi database ta' terabyte enormi fuq talba fi 30 sekonda, il-kopja tiegħek stess. U tista 'tħassar xi ħaġa hemmhekk u tgħid RESET, u ħassarha mill-ġdid. Tista 'tesperimenta magħha b'dan il-mod. Nara futur f'din il-ħaġa. U diġà qed nagħmlu dan.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

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

X'inhuma l-istrateġiji ta 'qsim? Nara 3 strateġiji ta 'qsim differenti li l-iżviluppaturi jużaw fuq il-pakkett.

L-ewwel waħda hija sempliċi ħafna. Għandna ID numerika. U ejja nkissruh f'intervalli differenti u naħdmu ma 'dak. L-iżvantaġġ huwa ċar. Fl-ewwel segment, jista 'jkollna 100 linja ta' żibel reali, fit-tieni 5 linji jew xejn, jew l-1 linja kollha se jirriżultaw li huma żibel. Xogħol irregolari ħafna, iżda faċli biex tkisser. Ħadu l-ID massima u qatgħuha. Dan huwa approċċ naive.

It-tieni strateġija hija approċċ ibbilanċjat. Jintuża f'Gitlab. Ħadna u skennajna l-mejda. Sibna l-konfini tal-pakketti tal-identità sabiex kull pakkett kien fih eżattament 10 rekord. U baqgħuni f’xi tip ta’ kju. U nipproċessaw aktar. Tista 'tagħmel dan f'diversi ħjut.

Fl-ewwel strateġija, mill-mod, tista 'wkoll tagħmel dan f'diversi ħjut. Mhuwiex diffiċli.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

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

Iżda hemm approċċ aktar frisk u ottimali. Din hija t-tielet strateġija. U meta jkun possibbli, huwa aħjar li tagħżelha. Nagħmlu dan ibbażat fuq indiċi speċjali. F'dan il-każ, x'aktarx ikun indiċi bbażat fuq il-kundizzjoni taż-żibel u l-ID tagħna. Aħna se ninkludu l-ID sabiex tkun indiċi biss scan sabiex ma mmorrux fil-borġ.

Tipikament, l-iskannjar tal-indiċi biss huwa aktar mgħaġġel mill-iskann tal-indiċi.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

U malajr insibu l-IDs tagħna li rridu nħassru. Aħna nagħżlu BATCH_SIZE bil-quddiem. U aħna mhux biss nirċievuhom, aħna nirċievuhom b'mod speċjali u immedjatament nirranġawhom. Imma aħna nissakkruhom b’tali mod li jekk ikunu diġà msakkra, ma nissakkruhomx, imma nimxu ‘l quddiem u nieħdu dawk li jmiss. Dan huwa għall-aġġornament skip imsakkar. Din is-super-karatteristika ta 'Postgres tippermettilna naħdmu f'ħjut multipli jekk irridu. Possibilment f'ħajt wieħed. U mbagħad hemm CTE - din hija talba waħda. U għandna tneħħija reali li qed isseħħ fit-tieni sular ta 'dan is-CTE - returning *. Tista' tirritorna l-id, imma aħjar *, jekk għandek ftit dejta f'kull linja.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Għaliex għandna bżonn dan? Dan neħtieġu biex nirrapportaw. Issa ħassarna tant linji fil-fatt. U l-konfini tagħna bl-ID jew created_at huma bħal dan. Tista 'tagħmel min, max. Xi ħaġa oħra tista’ ssir. Hemm ħafna li tista' tiġbor hawn. U dan huwa konvenjenti ħafna għall-monitoraġġ.

Hemm nota oħra dwar l-indiċi. Jekk niddeċiedu li għandna bżonn indiċi speċjali għal dan il-kompitu partikolari, allura għandna niżguraw li ma jħassrux l-aġġornamenti tat-tuples biss. Jiġifieri Postgres għandu statistika bħal din. Dan jista' jaraha f'pg_stat_user_tables għat-tabella tiegħek. Tista' tara jekk jintużawx aġġornamenti sħun jew le.

Hemm sitwazzjonijiet meta l-indiċi l-ġdid tiegħek jista 'sempliċement jaqtagħhom. U l-aġġornamenti l-oħra kollha li diġà qed jaħdmu se jonqos. Mhux biss għax deher l-indiċi (kull indiċi jnaqqas l-aġġornamenti ftit, iżda ftit biss), iżda hawn xorta se jħawdu l-affarijiet. U huwa impossibbli li tagħmel ottimizzazzjoni speċjali għal din it-tabella. Dan jiġri kultant. Din hija tali sottili li ftit nies jiftakru. U huwa faċli li titfaċċa fuq dan ir-rake. Xi drabi jiġri li għandek bżonn issib approċċ min-naħa l-oħra u xorta tagħmel mingħajr dan l-indiċi l-ġdid, jew tagħmel indiċi ieħor, jew tagħmel xi ħaġa oħra, pereżempju, tista 'tuża t-tieni metodu.

Iżda din hija l-aħjar strateġija, kif taqsamha f'lottijiet u tispara f'lottijiet b'talba waħda, tħassar ftit kull darba, eċċ.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Tranżazzjonijiet twal - https://gitlab.com/snippets/1890447

Autovacuum imblukkat https://gitlab.com/snippets/1889668

Kwistjoni tal-imblukkar https://gitlab.com/snippets/1890428

Żball #5 huwa wieħed kbir. Nikolay minn Okmeter tkellem dwar il-monitoraġġ Postgres. Sfortunatament, monitoraġġ perfett Postgres ma jeżistix. Xi wħud huma eqreb, xi wħud huma aktar 'il bogħod. Okmeter huwa qrib biżżejjed biex ikun perfett, iżda hemm ħafna nieqes u jeħtieġ li jiżdied. Trid tkun ippreparat għal dan.

Per eżempju, huwa aħjar li tissorvelja tuples mejta. Jekk għandek ħafna affarijiet mejta fil-mejda tiegħek, allura xi ħaġa hija ħażina. Huwa aħjar li tirreaġixxi issa, inkella jista 'jkun hemm degradazzjoni hemmhekk, u nistgħu nimmddu. Dan jiġri.

Jekk hemm IO kbir, allura huwa ċar li dan mhux tajjeb.

Tranżazzjonijiet twal ukoll. Tranżazzjonijiet twal m'għandhomx ikunu permessi fuq OLTP. U hawn link għas-snippet, li jippermettilek tieħu din is-snippet u diġà tagħmel xi traċċar ta 'tranżazzjonijiet twal.

Għaliex it-tranżazzjonijiet twal huma ħżiena? Għax is-serraturi kollha se jiġu rilaxxati biss fl-aħħar. U nsakkru lil kulħadd. Barra minn hekk, nibblukkaw l-awtovakwu għat-tabelli kollha. Dan mhu tajjeb xejn. Anke jekk għandek hot standby attivat fuq ir-replika, dan għadu ħażin. B'mod ġenerali, huwa aħjar li tevita tranżazzjonijiet twal kullimkien.

Jekk ikollna ħafna tabelli li mhumiex vacuumed, allura jeħtieġ li jkollna twissija. Sitwazzjoni bħal din hija possibbli hawnhekk. Nistgħu indirettament jaffettwaw it-tħaddim tal-awtovakwu. Din hija snippet minn Avito, li ttejjeb xi ftit. U rriżulta li kien għodda interessanti biex naraw dak li għandna bl-autovacuum. Pereżempju, hemm xi mwejjed jistennew hemm u mhux se jistennew min-naħa tagħhom. Għandek bżonn ukoll li tpoġġiha fil-monitoraġġ u jkollok twissija.

U joħroġ blokki. Foresta ta 'siġar imblukkar. Inħobb nieħu xi ħaġa mingħand xi ħadd u ntejjebha. Hawnhekk ħadt CTE rikorsiv frisk minn Data Egret, li turi foresta ta 'siġar li jsakkru. Din hija ħaġa tajba għad-dijanjostika. U l-monitoraġġ jista 'jinbena wkoll fuq il-bażi tiegħu. Iżda dan għandu jsir bir-reqqa. Għandek bżonn tagħmel statement_timeout żgħir għalik innifsek. U lock_timeout huwa mixtieq.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Xi drabi dawn l-iżbalji kollha jseħħu flimkien.

Fl-opinjoni tiegħi, l-iżball l-aktar importanti hawnhekk huwa organizzattiv. Huwa organizzattiv, minħabba li t-teknoloġija ma taħdimx. Dan huwa n-numru 2 - huma ċċekkjati fil-post ħażin.

Ma ċċekkjajniex hemm għax ma kellniex klonu tal-produzzjoni li kien faċli biex tiċċekkja. L-iżviluppatur jista 'ma jkollu aċċess għall-produzzjoni xejn.

U ċċekkajna fil-post ħażin. Kieku ċċekkjaw hemm, konna narawha aħna stess. L-iżviluppatur jista 'jara dan kollu anki mingħajr DBA, jekk iċċekkjah f'ambjent tajjeb, fejn hemm l-istess ammont ta' data u arranġament identiku. Kien jara din id-degradazzjoni kollha u jkun mistħija.

Aktar dwar il-vakwu tal-karozza. Wara li għamilna tindif massiv ta 'diversi miljuni ta' linji, għad għandna bżonn nagħmlu REPACK. Dan huwa speċjalment importanti għall-indiċi. Se jħossuhom ħażin wara li naddafna kollox hemmhekk.

U jekk trid ġġib lura x-xogħol ta 'kuljum tat-tqaxxir, allura nissuġġerixxi li tagħmel dan aktar spiss, iżda iżgħar. Jista 'jkun darba kull minuta jew saħansitra aktar spiss ftit. U rridu nissorveljaw żewġ affarijiet: li din il-ħaġa m'għandhiex żbalji u li ma tibqax lura. Il-trick li wrejt se jippermettilek issolvi dan.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Dak li nagħmlu huwa open source. Dan jitpoġġa fuq GitLab. U nagħmluha sabiex in-nies ikunu jistgħu jiċċekkjaw anke mingħajr DBA. Nagħmlu laboratorju tad-database, jiġifieri, insejħu l-komponent bażi li fuqu qed jaħdem Joe bħalissa. U tista 'tieħu kopja tal-produzzjoni. Issa hemm implimentazzjoni ta 'Joe għal slack, tista' tgħid hemm: "spjega tali u tali talba" u immedjatament tikseb ir-riżultat għall-kopja tiegħek tad-database. Tista 'anki tagħmel DELETE hemmhekk, u ħadd ma jinduna.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Ejja ngħidu li għandek 10 terabytes, qed nagħmlu laboratorju tad-database wkoll 10 terabytes. U 10 żviluppaturi jistgħu jaħdmu simultanjament ma 'databases simultanji ta' 10 terabyte. Kulħadd jista’ jagħmel li jrid. Jista 'jħassar, qatra, eċċ Dan huwa meraviljuż. Dwar dan se nitkellmu għada.

Għeżież Ħassar. Nikolay Samokhvalov (Postgres.ai)

Dan jissejjaħ thin provisioning. Dan huwa provvediment sottili. Din hija xi tip ta 'fantasija li telimina bil-kbir id-dewmien fl-iżvilupp u l-ittestjar u tagħmel id-dinja post aħjar f'dan ir-rigward. Jiġifieri, jippermettilek biss tevita problemi b'operazzjonijiet tal-massa.

Eżempju: database ta' 5 terabyte, li tinkiseb kopja f'inqas minn 30 sekonda. U lanqas tiddependi fuq id-daqs, jiġifieri ma jimpurtax kemm terabytes.

Illum tista' tmur postgres.ai u ħaffer fl-għodod tagħna. Tista' tirreġistra u tara x'hemm. Tista' tinstalla dan il-bot għalik innifsek. B'xejn. Ikteb.

mistoqsijiet

Ħafna drabi f'sitwazzjonijiet reali jirriżulta li d-dejta li għandha tibqa' fit-tabella hija ħafna inqas minn dak li jeħtieġ li jitħassar. Jiġifieri, f'sitwazzjoni bħal din ħafna drabi huwa aktar faċli li jiġi implimentat dan l-approċċ, meta jkun aktar faċli li jinħoloq oġġett ġdid, tikkopja biss id-dejta meħtieġa hemmhekk u traskrivi t-tabella l-antika. Huwa ċar li għandek bżonn approċċ tas-softwer għal dan il-mument waqt li tkun qed taqleb. Kif inhu dan l-approċċ?

Dan huwa approċċ tajjeb ħafna u kompitu tajjeb ħafna. Huwa simili ħafna għal dak li jagħmel pg_repack, huwa simili ħafna għal dak li għandek tagħmel meta inti ID nies għamluha 4 bytes. Ħafna oqfsa għamlu dan bosta snin ilu, u l-pjanċi għadhom kemm kibru, u jeħtieġ li jiġu kkonvertiti għal 8 bytes.

Dan il-kompitu huwa pjuttost diffiċli. Għamilna. U trid toqgħod attent ħafna. Hemm serraturi, eċċ Imma dan isir. Jiġifieri, l-approċċ standard huwa li tuża pg_repack. Tħabbar sinjal bħal dan. U qabel ma tibda timla b'dejta snapshot, tiddikjara wkoll tabella waħda li ssegwi l-bidliet kollha. Hemm trick hemmhekk li inti lanqas biss tista 'ssegwi xi bidliet. Hemm irqaq. U mbagħad taqleb, irrombla l-bidliet. Se jkun hemm pawża qasira meta nsakkru lil kulħadd, iżda b’mod ġenerali dan qed isir.

Jekk tħares lejn pg_repack fuq GitHub, allura meta kien hemm kompitu biex tikkonverti l-ID minn int 4 għal int 8, allura kien hemm idea li tuża pg_repack innifsu. Dan huwa wkoll possibbli, iżda dan huwa daqsxejn ta 'metodu ta' hacker, iżda se jaħdem ukoll għal dan. Tista 'tintervjeni fil-grillu li juża pg_repack u tgħid hemmhekk: "M'għandniex bżonn din id-dejta," jiġifieri nittrasferixxu biss dak li għandna bżonn. U mbagħad jaqleb biss u hekk.

B'dan l-approċċ, irridu wkoll it-tieni kopja tat-tabella, li fiha d-dejta hija diġà indiċjata u mqiegħda bla xkiel ħafna b'indiċi sbieħ.

Bloat le, dan huwa approċċ tajjeb. Imma naf li hemm tentattivi biex tiġi żviluppata l-awtomazzjoni għal dan, jiġifieri biex issir soluzzjoni universali. Nista 'nintroduċik għal din l-awtomazzjoni. Huwa miktub f'Python, għalf tajjeb.

Jien biss ftit mid-dinja MySQL, għalhekk ġejt biex nisma. U nużaw dan l-approċċ.

Iżda huwa biss jekk ikollna 90%. Jekk għandna 5%, allura mhux tajjeb ħafna li tużah.

Grazzi tar-rapport! Jekk ma jkunx hemm riżorsi biex tagħmel kopja sħiħa tal-prod, hemm xi algoritmu jew formula biex tikkalkula t-tagħbija jew id-daqs?

Mistoqsija tajba. S'issa nistgħu nsibu databases b'ħafna terabyte. Anki jekk il-ħardwer ma jkunx l-istess, pereżempju, inqas memorja, inqas proċessur u d-diski mhumiex eżattament l-istess, xorta nagħmlu dan. Jekk m'hemm assolutament imkien, allura trid taħseb dwarha. Ħa naħseb dwarha sa għada, ġejt, nitkellmu, din hija mistoqsija tajba.

Grazzi tar-rapport! L-ewwel bdejt titkellem dwar il-fatt li hemm Postgres jibred, li għandu limitazzjonijiet bħal dawn, iżda qed jiżviluppa. U dan kollu huwa crutch b'mod ġenerali. Dan kollu ma jikkontradixxix l-iżvilupp ta 'Postgres innifsu, li fih se jidher xi tip ta' DELETE deferent jew xi ħaġa oħra li għandha żżomm f'livell baxx dak li qed nippruvaw nagħtu hawn b'xi mezzi strambi tagħna stess?

Jekk fl-SQL għidna li tħassar jew taġġorna ħafna rekords fi tranżazzjoni waħda, allura kif jista 'Postgres iqassam dan? Aħna fiżikament limitati fl-operazzjonijiet. Għadna nkunu qed nagħmlu dan għal żmien twil. U aħna se illokkjar f'dan il-ħin, eċċ.

L-istess għamlu bl-indiċi.

Nista' nassumi li l-istess irfinar tal-punt ta' kontroll jista' jiġi awtomatizzat. Xi darba dan jista’ jiġri. Imma mbagħad ma tantx nifhem il-mistoqsija.

Il-mistoqsija hija: hemm vettur ta 'żvilupp li jmur hemm, u jmur parallel għal tiegħek hawn? Dawk. Għadhom ma jaħsbux dwarha?

Tkellimt dwar il-prinċipji li jistgħu jintużaw issa. Hemm bot ieħor Nancy, b'dan tista 'tagħmel irfinar awtomatizzat tal-punt ta' kontroll. Dan qatt se jiġri f'Postgres? Ma nafx, dan lanqas għadu qed jiġi diskuss. Għadna 'l bogħod minn dan. Iżda hemm xjenzati li jagħmlu sistemi ġodda. U huma shove magħna fis-indiċi awtomatiċi. Hemm żviluppi. Per eżempju, tista 'tħares lejn l-irfinar awtomatiku. Jagħżel il-parametri awtomatikament. Imma hu mhux se jagħmel irfinar tal-punt ta 'kontroll għalik għadu. Jiġifieri, se tagħżel għall-prestazzjoni, buffer tal-qoxra, eċċ.

U għall-irfinar tal-punt ta 'kontroll tista' tagħmel dan li ġej: jekk għandek elf raggruppament u biċċiet differenti ta 'ħardwer, magni virtwali differenti fis-sħaba, tista' tuża l-bot tagħna Nancy tagħmel l-awtomazzjoni. U max_wal_size se jintgħażlu awtomatikament skont is-settings tal-mira tiegħek. Iżda s'issa dan għadu lanqas qrib li jkun fil-qalba, sfortunatament.

Il-waranofsinhar it-tajjeb Tkellimt dwar il-perikli ta 'tranżazzjonijiet twal. Inti għidt li l-autovacuum huwa mblukkat f'każ ta' tħassir. Dan kif inkella jagħmel ħsara lilna? Għax qed nitkellmu aktar dwar il-ħelsien tal-ispazju u li nkunu nistgħu nużawh. X'iktar għandna x'nitilfu?

L-awtovakwu jista 'ma jkunx l-akbar problema hawn. U l-fatt li tranżazzjoni twila tista 'timblokka tranżazzjonijiet oħra hija possibbiltà aktar perikoluża. Hija tista 'jew ma tistax tiltaqa'. Jekk iltaqgħet, allura l-affarijiet jistgħu jkunu ħżiena ħafna. U bl-autovacuum din hija wkoll problema. Hemm żewġ problemi bi tranżazzjonijiet twal f'OLTP: serraturi u autovacuum. U jekk għandek feedback standby sħun attivat fuq ir-replika, allura l-imblukkar tal-vakwu awtomatiku jasal ukoll għand il-kaptan, jasal mir-replika. Imma għallinqas mhux se jkun hemm serraturi hemmhekk. U hawn se jkun hemm serraturi. Qed nitkellmu dwar bidliet fid-dejta, għalhekk is-serraturi huma punt importanti hawn. U jekk dan ikompli għal żmien twil, twil, allura aktar u aktar tranżazzjonijiet jiġu mblukkati. Jistgħu jonsbu lil ħaddieħor. U siġar lock jidhru. I pprovdew link għas-snippet. U din il-problema malajr issir aktar notevoli mill-problema bl-autovacuum, li tista 'biss takkumula.

Grazzi tar-rapport! Bdejt ir-rapport tiegħek billi tgħid li ttestjajt ħażin. Komplejna l-idea tagħna li rridu nieħdu l-istess tagħmir, bil-bażi eżattament l-istess. Ejja ngħidu li tajna bażi lill-iżviluppatur. U hu kkonforma mat-talba. U jidher li sejjer tajjeb. Iżda ma jiċċekkjax fuq live, iżda fuq live, pereżempju, it-tagħbija tagħna hija 60-70%. U anki jekk nużaw dan l-irfinar, ma jirriżultax tajjeb ħafna

Huwa importanti li jkollok espert fit-tim tiegħek u tuża esperti tad-DBA li jistgħu jbassru x'se jiġri taħt tagħbija ta' sfond reali. Meta aħna sempliċement saq permezz tal-bidliet puri tagħna, naraw l-istampa. Iżda approċċ aktar avvanzat kien meta erġajna għamilna l-istess ħaġa, iżda b'tagħbija ta 'produzzjoni simulata. Dan huwa totalment jibred. Għadna bżonn nikbru sa dan il-punt. Huwa matur. Ħaresna purament lejn dak li għandna u ħaresna wkoll lejn jekk għandniex biżżejjed riżorsi. Dik hija mistoqsija tajba.

Meta diġà nkunu qed nagħmlu garbage select u għandna, pereżempju, bandiera mħassra

Dan huwa dak li l-autovacuum jagħmel awtomatikament f'Postgres.

Oh, hu jagħmel hekk?

Autovacuum huwa l-kollettur taż-żibel.

Grazzi!

Grazzi tar-rapport! Hemm għażla li immedjatament tiddisinja database b'qsim sabiex iż-żibel kollu jitneħħa mit-tabella prinċipali x'imkien mal-ġenb?

Naturalment għandhom.

Nistgħu mbagħad nipproteġu lilna nfusna jekk ikollna msakkra mejda li m'għandhiex tintuża?

Naturalment għandhom. Iżda din hija mistoqsija tat-tiġieġ u tal-bajd. Jekk ilkoll nafu x'se jiġri fil-futur, allura, ovvjament, nagħmlu kollox mill-aqwa. Iżda n-negozju qed jinbidel, jidhru kolonni ġodda u talbiet ġodda. U mbagħad - oops, irridu nħassruh. Iżda din hija sitwazzjoni ideali; jiġri fil-ħajja, iżda mhux dejjem. Iżda b'mod ġenerali hija idea tajba. Just truncate u li hu.

Sors: www.habr.com

Żid kumment