Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Uaireigin san àm ri teachd, bidh toirt air falbh dàta neo-riatanach gu fèin-ghluasadach mar aon de na gnìomhan cudromach aig an DBMS [1]. Anns an eadar-ama, feumaidh sinn fhèin a bhith faiceallach mu bhith a’ cuir às no a’ gluasad dàta neo-riatanach gu siostaman stòraidh nach eil cho daor. Canaidh sinn gun co-dhùin thu cuir às beagan mhillean sreathan. Gnìomh gu math sìmplidh, gu sònraichte ma tha fios air an t-suidheachadh agus gu bheil clàr-amais iomchaidh ann. "Sguab às a' bhòrd 1 WHERE col1 = :value" - dè dh'fhaodadh a bhith nas sìmplidhe, nach eil?

Bhidio:

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

  • Tha mi air a bhith air comataidh prògram Highload bhon chiad bhliadhna, i.e. bho 2007.

  • Agus tha mi air a bhith còmhla ri Postgres bho 2005. Chleachd e ann am mòran phròiseactan.

  • Buidheann le RuPostges cuideachd bho 2007.

  • Tha sinn air fàs gu 2100+ com-pàirtiche aig Meetup. Tha e san dàrna àite san t-saoghal às deidh New York, air a dhol seachad air San Francisco airson ùine mhòr.

  • Tha mi air a bhith a’ fuireach ann an California airson grunn bhliadhnaichean. Bidh mi a’ dèiligeadh barrachd ri companaidhean Ameireaganach, a’ toirt a-steach feadhainn mòra. Tha iad nan luchd-cleachdaidh gnìomhach de Postgres. Agus tha a h-uile seòrsa de rudan inntinneach ann.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/ tha mo chuideachd. Tha sinn an sàs ann an gnìomhan fèin-ghluasadach a chuireas às do shlaodachd leasachaidh.

Ma tha thu a’ dèanamh rudeigin, an uairsin uaireannan tha seòrsa de phlocan timcheall air Postgres. Canaidh sinn gum feum thu feitheamh ris an rianaire ionad deuchainn a stèidheachadh dhut, no feumaidh tu feitheamh gus an toir an DBA freagairt dhut. Agus lorg sinn botail mar sin anns a’ phròiseas leasachaidh, deuchainn agus rianachd agus feuchaidh sinn ri cuir às dhaibh le cuideachadh bho fèin-ghluasad agus dòighean-obrach ùra.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Bha mi o chionn ghoirid aig VLDB ann an Los Angeles. Is e seo a’ cho-labhairt as motha air stòran-dàta. Agus bha aithisg ann gum bi DBMS san àm ri teachd chan ann a-mhàin a ’stòradh, ach cuideachd a’ cuir às do dhàta gu fèin-ghluasadach. Is e cuspair ùr a tha seo.

Tha barrachd is barrachd dàta ann an saoghal zettabytes - sin 1 petabytes. Agus a-nis thathas a’ meas mar-thà gu bheil còrr air 000 zettabytes de dhàta againn air a stòradh san t-saoghal. Agus tha barrachd is barrachd dhiubh ann.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Agus dè a dhèanamh leis? Gu dearbh, feumar a thoirt air falbh. Seo ceangal dhan aithisg inntinneach seo. Ach gu ruige seo cha deach seo a chuir an gnìomh anns an DBMS.

Tha an fheadhainn as urrainn airgead a chunntadh ag iarraidh dà rud. Tha iad airson gun cuir sinn às, agus mar sin gu teicnigeach bu chòir dhuinn a bhith comasach air a dhèanamh.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Is e an ath rud a dh’ innseas mi suidheachadh eas-chruthach a tha a’ toirt a-steach dòrlach de shuidheachaidhean fìor, i.e. seòrsa de chruinneachadh de na thachair dhòmhsa agus na stòran-dàta mun cuairt iomadh uair, iomadh bliadhna. Tha ràcan anns a h-uile àite agus bidh a h-uile duine a’ dol orra fad na h-ùine.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Canaidh sinn gu bheil bonn no grunn bhunaitean againn a tha a’ fàs. Agus tha cuid de chlàran gu follaiseach sgudal. Mar eisimpleir, thòisich an neach-cleachdaidh rudeigin a dhèanamh an sin, ach cha do chrìochnaich e. Agus an dèidh beagan ùine tha fios againn nach urrainn an neo-chrìochnach seo a stòradh tuilleadh. Is e sin, bu mhath leinn cuid de rudan sgudail a ghlanadh gus àite a shàbhaladh, coileanadh adhartachadh, msaa.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

San fharsaingeachd, is e an obair fèin-ghluasad a dhèanamh air toirt air falbh rudan sònraichte, loidhnichean sònraichte ann an cuid de chlàr.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Agus tha iarrtas mar seo againn, air am bi sinn a 'bruidhinn an-diugh, is e sin, mu bhith a' toirt air falbh sgudal.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Dh’ iarr sinn air leasaiche eòlach a dhèanamh. Ghabh e ris an iarrtas seo, rinn e sgrùdadh air fhèin - tha a h-uile dad ag obair. Deuchainn air an àrd-ùrlar - tha a h-uile dad gu math. Air a sgaoileadh - bidh a h-uile dad ag obair. Aon uair san latha bidh sinn ga ruith - tha a h-uile dad gu math.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Bidh an stòr-dàta a 'fàs agus a' fàs. Bidh Daily DELETE a ’tòiseachadh ag obair beagan nas slaodaiche.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

An uairsin tha sinn a’ tuigsinn gu bheil companaidh margaidheachd againn a-nis agus gum bi an trafaic grunn thursan nas motha, agus mar sin tha sinn a’ co-dhùnadh stad a chuir air rudan neo-riatanach airson ùine. Agus na dìochuimhnich tilleadh.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Beagan mhìosan an dèidh sin chuimhnich iad. Agus leig an leasaiche sin dheth no gu bheil e trang le rudeigin eile, ag iarraidh air fear eile a thilleadh.

Thug e sùil air dev, air stèidse - tha a h-uile dad ceart gu leòr. Gu nàdarra, feumaidh tu fhathast na tha air cruinneachadh a ghlanadh. Rinn e sgrùdadh air a h-uile dad ag obair.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Dè thachras a-nis? An uairsin bidh a h-uile càil a 'tuiteam às a chèile dhuinn. Bidh e a’ tuiteam gus am bi a h-uile càil aig àm air choreigin a’ tuiteam sìos. Tha a h-uile duine ann an clisgeadh, chan eil duine a’ tuigsinn dè tha a’ tachairt. Agus an uairsin thionndaidh e a-mach gu robh a’ chùis anns an DELETE seo.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Chaidh rudeigin ceàrr? Seo liosta de na dh’ fhaodadh a bhith air a dhol ceàrr. Dè am fear dhiubh sin as cudromaiche?

  • Mar eisimpleir, cha robh lèirmheas ann, i.e. cha do choimhead an t-eòlaiche DBA air. Lorgadh e sa bhad an duilgheadas le sùil eòlach, agus a bharrachd air an sin, tha cothrom aige air prod, far a bheil grunn mhilleanan loidhne air cruinneachadh.

  • Is dòcha gun do rinn iad sgrùdadh air rudeigin ceàrr.

  • Is dòcha gu bheil am bathar-cruaidh seann-fhasanta agus feumaidh tu am bunait seo ùrachadh.

  • No tha rudeigin ceàrr air an stòr-dàta fhèin, agus feumaidh sinn gluasad bho Postgres gu MySQL.

  • No is dòcha gu bheil rudeigin ceàrr air an obair.

  • Is dòcha gu bheil cuid de mhearachdan ann an eagrachadh na h-obrach agus feumaidh tu cuideigin a losgadh agus na daoine as fheàrr fhastadh?

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Cha robh sgrùdadh DBA ann. Nam biodh DBA ann, chitheadh ​​​​e na milleanan de loidhnichean sin agus eadhon às aonais deuchainnean sam bith chanadh e: “Cha bhith iad a’ dèanamh sin. ” Osbarr nam biodh an còd seo ann an GitLab, GitHub agus gum biodh pròiseas ath-bhreithneachaidh còd ann agus cha robh an leithid de rud ann gun deidheadh ​​​​an gnìomhachd seo a chumail air prod às aonais cead an DBA, gu follaiseach bhiodh an DBA ag ràdh: “Cha ghabh seo a dhèanamh .”

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Agus bhiodh e ag ràdh gum bi duilgheadasan agad le disk IO agus thèid a h-uile pròiseas às a chiall, is dòcha gu bheil glasan ann, agus cuideachd cuiridh tu casg air autovacuum airson grunn mhionaidean, agus mar sin chan eil seo math.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Tha an dàrna mearachd - rinn iad sgrùdadh anns an àite ceàrr. Chunnaic sinn às deidh sin gun deach tòrr dàta sgudail a chruinneachadh air prod, ach cha robh an leasaiche air dàta a chruinneachadh san stòr-dàta seo, agus cha do chruthaich duine an sgudal seo rè an àrd-ùrlar. Mar sin, bha 1 loidhne ann a dh'obraich a-mach gu luath.

Tha sinn a 'tuigsinn gu bheil na deuchainnean againn lag, is e sin, chan eil am pròiseas a tha air a thogail a' glacadh dhuilgheadasan. Cha deach deuchainn DB iomchaidh a dhèanamh.

Is fheàrr deuchainn fìor mhath a dhèanamh air an aon uidheamachd. Chan eil e an-còmhnaidh comasach seo a dhèanamh air an aon uidheamachd, ach tha e glè chudromach gum bi e na leth-bhreac làn-mheud den stòr-dàta. Seo na tha mi air a bhith a’ searmonachadh airson grunn bhliadhnaichean a-nis. Agus bliadhna air ais bhruidhinn mi mu dheidhinn seo, faodaidh tu coimhead air uile air YouTube.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Is dòcha gu bheil an uidheamachd againn dona? Ma choimheadas tu, leum an latency. Tha sinn air faicinn gu bheil cleachdadh 100%. Gu dearbh, nam b’ e draibhearan NVMe ùr-nodha a bh ’annta, is dòcha gum biodh e tòrr na b’ fhasa dhuinn. Agus is dòcha nach leigeadh sinn sìos bhuaithe.

Ma tha sgòthan agad, tha e furasta an ùrachadh a dhèanamh an sin. Thog mac-samhail ùr air a’ bhathar-cruaidh ùr. tionndadh. Agus tha a h-uile càil gu math. Gu math furasta.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

A bheil e comasach dòigh air choireigin suathadh air na diosgan nas lugha? Agus an seo, dìreach le cuideachadh bho DBA, bidh sinn a’ dàibheadh ​​​​a-steach do chuspair sònraichte ris an canar gleusadh puing-seic. Tha e a’ tionndadh a-mach nach robh gleusadh puing-seic againn.

Dè th' ann an checkpoint? Tha e ann an DBMS sam bith. Nuair a tha dàta agad nad chuimhne a dh’ atharraicheas, cha tèid a sgrìobhadh sa bhad gu diosc. Tha am fiosrachadh a tha an dàta air atharrachadh air a sgrìobhadh an-toiseach don log sgrìobhaidh air adhart. Agus aig àm air choreigin, tha an DBMS a’ co-dhùnadh gu bheil an t-àm ann duilleagan fìor a dhumpadh gu diosc, gus an dèan sinn nas lugha de REDO ma dh’ fhàillig sinn. Tha e coltach ri dèideag. Ma thèid ar marbhadh, tòisichidh sinn an geama bhon àite-seic mu dheireadh. Agus bidh a h-uile DBMS ga chur an gnìomh.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Tha na roghainnean ann am Postgres air dheireadh. Tha iad air an dealbhadh airson meudan dàta agus gnothaichean 10-15 bliadhna a dh'aois. Agus chan eil puing-seic mar eisgeachd.

Seo am fiosrachadh bhon aithisg sgrùdaidh Postgres againn, i.e. sgrùdadh slàinte fèin-ghluasadach. Agus seo beagan stòr-dàta de ghrunn terabytes. Agus chìthear gu math gun do chuir puingean-seicidh èiginneach ann an faisg air 90% de chùisean.

Dè a tha e a’ ciallachadh? Tha dà shuidheachadh an sin. Faodaidh puing-seic tighinn le ùine a-mach, mar eisimpleir, ann an 10 mionaidean. No is dòcha gun tig e nuair a tha tòrr dàta air a lìonadh.

Agus gu bunaiteach tha max_wal_saze air a shuidheachadh gu 1 gigabyte. Gu dearbh, tha seo dha-rìribh a’ tachairt ann am Postgres às deidh 300-400 megabytes. Tha thu air uimhir de dhàta atharrachadh agus tha do phuing-seic a’ tachairt.

Agus mura h-eil duine ga ghleusadh, agus gun do dh'fhàs an t-seirbheis, agus a 'chompanaidh a' cosnadh tòrr airgid, tha tòrr ghnothaichean aice, an uairsin thig am puing-seic aon uair sa mhionaid, uaireannan a h-uile 30 diog, agus uaireannan eadhon a 'dol thairis air. Tha seo gu math dona.

Agus feumaidh sinn dèanamh cinnteach nach tig e cho tric. Is e sin, is urrainn dhuinn max_wal_size a thogail. Agus thig e cho tric.

Ach tha sinn air modh-obrach slàn a leasachadh airson mar a nì thu e nas ceart, is e sin, mar a nì thu co-dhùnadh mu bhith a’ taghadh shuidheachaidhean, gu soilleir stèidhichte air dàta sònraichte.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Mar sin, tha sinn a 'dèanamh dà shreath de dheuchainnean air stòran-dàta.

A 'chiad sreath - bidh sinn ag atharrachadh max_wal_size. Agus tha sinn a’ dèanamh obair mhòr. An toiseach, bidh sinn ga dhèanamh air an t-suidheachadh bunaiteach de 1 gigabyte. Agus bidh sinn a’ dèanamh DELETE mòr de mhilleanan de loidhnichean.

Chì thu cho cruaidh sa tha e dhuinn. Tha sinn a 'faicinn gu bheil disk IO gu math dona. Bidh sinn a’ coimhead air cia mheud WAL a tha sinn air a chruthachadh, oir tha seo glè chudromach. Chì sinn cia mheud uair a thachair am puing-seic. Agus chì sinn nach eil e math.

An uairsin bidh sinn ag àrdachadh max_wal_size. Bidh sinn a-rithist. Bidh sinn ag àrdachadh, bidh sinn ag ath-aithris. Agus mar sin iomadh uair. Ann am prionnsabal, tha 10 puingean math, far a bheil 1, 2, 4, 8 gigabytes. Agus bidh sinn a 'coimhead air giùlan siostam sònraichte. Tha e soilleir gum bu chòir an uidheamachd an seo a bhith coltach ri prod. Feumaidh na h-aon diosgan a bhith agad, an aon uiread de chuimhne, agus na h-aon roghainnean Postgres.

Agus san dòigh seo nì sinn iomlaid air an t-siostam againn, agus tha fios againn mar a bhios an DBMS gad ghiùlan fhèin ma tha droch mhilleadh ann DELETE, mar a nì e àite-seic.

Tha puing-seic ann an Ruisis nan puingean-seic.

Eisimpleir: Sguab às grunn mhillean sreathan a rèir clàr-amais, tha sreathan air an "sgapadh" thairis air duilleagan.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Seo eisimpleir. Is e seo cuid de bhunait. Agus leis an t-suidheachadh bunaiteach de 1 gigabyte airson max_wal_size, tha e gu math soilleir gum bi na diosgan againn a’ dol chun sgeilp airson clàradh. Tha an dealbh seo na chomharra àbhaisteach de euslainteach tinn, is e sin, bha e a 'faireachdainn dona. Agus bha aon obrachadh singilte ann, cha robh ann ach DELETE de ghrunn mhillean loidhne.

Ma tha an leithid de ghnìomhachd ceadaichte ann am prod, bidh sinn dìreach a’ laighe sìos, oir tha e soilleir gu bheil aon DELETE gar marbhadh san rèisimeid.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Nas fhaide, far a bheil 16 gigabytes, tha e soilleir gu bheil na fiaclan air falbh mar-thà. Tha fiaclan nas fheàrr mar-thà, is e sin, tha sinn a 'leagail air a' mhullach, ach chan eil e cho dona. Bha beagan saorsa an sin. Air an làimh dheis tha an clàr. Agus an àireamh de obrachaidhean - an dàrna graf. Agus tha e soilleir gu bheil sinn mar-thà a 'tarraing anail beagan nas fhasa nuair a 16 gigabytes.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Agus far am faicear 64 gigabytes gu bheil e air fàs gu tur nas fheàrr. A-cheana tha na fiaclan air an cur an cèill, tha barrachd chothroman ann a bhith beò le gnìomhachd eile agus rudeigin a dhèanamh leis an diosg.

Carson a tha e mar sin?

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Dàibhidh mi a-steach don fhiosrachadh beagan, ach faodaidh an cuspair seo, mar a nì thu gleusadh puing-seic, aithisg slàn a thoirt gu buil, agus mar sin cha bhith mi a’ luchdachadh mòran, ach bheir mi cunntas beag air na duilgheadasan a th’ ann.

Ma thachras an t-àite-seic ro thric, agus gun ùraich sinn na loidhnichean againn chan ann an òrdugh, ach lorg sinn le clàr-amais, rud a tha math, leis nach cuir sinn às don chlàr gu lèir, is dòcha gun tachair gun do bhean sinn ris a’ chiad duilleag an toiseach, agus an uairsin am mìleamh, agus an uairsin air ais chun chiad fhear. Agus ma tha eadar na tursan sin air a’ chiad duilleag, tha puing-seic air a shàbhaladh gu diosc mar-thà, sàbhailidh e a-rithist e, oir fhuair sinn salach an dàrna turas e.

Agus bheir sinn air puing-seic a shàbhaladh iomadh uair. Ciamar a bhiodh obraichean gun fheum air a shon.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Ach chan e sin uile. Tha duilleagan 8 kilobytes ann am Postgres agus 4 kilobytes ann an Linux. Agus tha suidheachadh full_page_writes ann. Tha e air a chomasachadh gu bunaiteach. Agus tha seo ceart, oir ma thionndaidheas sinn e, tha cunnart ann nach tèid ach leth na duilleige a shàbhaladh ma thuiteas e.

Tha giùlan sgrìobhadh chun WAL den log air adhart cho mòr is nuair a bhios àite-seic againn agus nuair a dh’ atharraicheas sinn an duilleag airson a’ chiad uair, bidh an duilleag gu lèir, i.e., a h-uile 8 kilobytes, a’ faighinn a-steach don log air adhart, ged nach do dh’ atharraich sinn ach an duilleag. loidhne, anns a bheil cuideam 100 bytes . Agus feumaidh sinn an duilleag gu lèir a sgrìobhadh sìos.

Ann an atharrachaidhean às deidh sin, cha bhi ach tuple sònraichte ann, ach airson a 'chiad uair bidh sinn a' sgrìobhadh sìos a h-uile dad.

Agus, a rèir sin, ma thachair am puing-seic a-rithist, feumaidh sinn a h-uile càil a thòiseachadh bhon toiseach a-rithist agus an duilleag gu lèir a phutadh. Le puingean-seic tric, nuair a choisicheas sinn tro na h-aon duilleagan, bidh full_page_writes = air adhart nas motha na dh’ fhaodadh e a bhith, i.e. bidh sinn a’ gineadh barrachd WAL. Thèid barrachd a chur gu mac-samhail, dhan tasglann, gu diosg.

Agus, a rèir sin, tha dà chall obrach againn.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Ma mheudaicheas sinn max_wal_size, tha e a’ tionndadh a-mach gu bheil sinn ga dhèanamh nas fhasa don dà chuid puing-seic agus sgrìobhadair balla. Agus tha sin sgoinneil.

Nach cuir sinn a-steach terabyte agus fuirich leis. Dè tha dona mu dheidhinn? Tha seo dona, oir ma dh'fhàilligeas, dìridh sinn airson uairean a thìde, oir bha an t-àite-seic o chionn fhada agus tha tòrr air atharrachadh mar-thà. Agus feumaidh sinn an REDO seo gu lèir a dhèanamh. Agus mar sin bidh sinn a 'dèanamh an dàrna sreath de dheuchainnean.

Bidh sinn a’ dèanamh gnìomhachd agus a’ faicinn nuair a tha an t-àite-seic gu bhith deiseil, bidh sinn a’ marbhadh -9 Postgres a dh’aona ghnothach.

Agus às deidh sin bidh sinn ga thòiseachadh a-rithist, agus chì sinn dè cho fada ‘s a dh’ èiricheas e air an uidheamachd seo, i.e. dè an ìre a bhios e REDO anns an droch shuidheachadh seo.

Dà uair bheir mi fa-near gu bheil an suidheachadh dona. An toiseach, thuit sinn dìreach mus robh an t-àite-seic seachad, agus mar sin tha tòrr againn ri chall. Agus san dàrna àite, bha gnìomhachd mòr againn. Agus nam biodh puingean-seic aig àm-ama, an uairsin, is coltaiche, bhiodh nas lugha de WAL air a chruthachadh bhon àite-seic mu dheireadh. Is e sin, tha e na chall dùbailte.

Bidh sinn a 'tomhas suidheachadh mar seo airson diofar mheudan max_wal_size agus a' tuigsinn ma tha max_wal_size 64 gigabytes, an uairsin ann an cùis dùbailte as miosa streap sinn airson 10 mionaidean. Agus tha sinn a 'smaoineachadh a bheil e freagarrach dhuinn no nach eil. Is e ceist gnìomhachais a tha seo. Feumaidh sinn an dealbh seo a shealltainn dhaibhsan a tha an urra ri co-dhùnaidhean gnìomhachais agus faighneachd, “Dè cho fada ‘s as urrainn dhuinn laighe sìos aig a’ char as motha gun fhios nach bi duilgheadas ann? An urrainn dhuinn laighe sìos anns an t-suidheachadh as miosa airson 3-5 mionaidean? Agus nì thu co-dhùnadh.

Agus seo puing inntinneach. Tha aithisg no dhà againn mu Patroni aig a’ cho-labhairt. Agus is dòcha gu bheil thu ga chleachdadh. Is e fèin-ghluasad a tha seo airson Postgres. Bhruidhinn GitLab agus Data Egret mu dheidhinn seo.

Agus ma tha autofailover agad a thig ann an 30 diogan, is dòcha gun urrainn dhuinn laighe sìos airson 10 mionaidean? Leis gun atharraich sinn chun mhac-samhail ron àm seo, agus bidh a h-uile dad gu math. Is e puing connspaid a tha seo. Chan eil fios agam air freagairt soilleir. Tha mi dìreach a’ faireachdainn nach eil an cuspair seo dìreach mu dheidhinn faighinn seachad air tubaist.

Ma gheibh sinn seachad air fada às deidh fàilligeadh, bidh sinn mì-chofhurtail ann an iomadh suidheachadh eile. Mar eisimpleir, anns na h-aon deuchainnean, nuair a nì sinn rudeigin agus uaireannan feumaidh sinn feitheamh airson 10 mionaidean.

Cha bhithinn fhathast a’ dol ro fhada, eadhon ged a bhiodh fèin-ghluasad againn. Mar riaghailt, tha luachan leithid 64, 100 gigabytes nan luachan math. Uaireannan is fhiach e eadhon nas lugha a thaghadh. San fharsaingeachd, is e saidheans seòlta a tha seo.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Gus ath-aithrisean a dhèanamh, mar eisimpleir, max_wal_size = 1, 8, feumaidh tu an obrachadh mòr ath-aithris iomadh uair. Rinn thu e. Agus air an aon bhunait tha thu airson a dhèanamh a-rithist, ach tha thu air a h-uile càil a dhubhadh às mu thràth. Dè a nì thu?

Bruidhnidh mi nas fhaide air adhart mun fhuasgladh againn, na bhios sinn a’ dèanamh gus ath-aithris ann an suidheachaidhean mar sin. Agus is e seo an dòigh-obrach as freagarraiche.

Ach anns a 'chùis seo, bha sinn fortanach. Ma tha, mar a tha e ag ràdh an seo “BEGIN, DELETE, ROLLBACK”, faodaidh sinn DELETE ath-aithris. Is e sin, ma chuir sinn dheth sinn fhèin e, is urrainn dhuinn a dhèanamh a-rithist. Agus gu corporra leatsa bidh an dàta na laighe san aon àite. Chan fhaigh thu eadhon bloat. Faodaidh tu aithris a dhèanamh air na DELETEs sin.

Tha an DELETE seo le ROLLBACK air leth freagarrach airson gleusadh puingean-seic, eadhon ged nach eil deuchainn-lann stòr-dàta agad a tha air a chleachdadh gu ceart.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Rinn sinn truinnsear le aon cholbh “i”. Tha colbhan goireis aig Postgres. Tha iad do-fhaicsinneach mura tèid iarraidh sònraichte orra. Is iad sin: ctid, xmid, xmax.

Tha Ctid na sheòladh corporra. Duilleag neoni, a’ chiad tuple air an duilleag.

Chìthear, às deidh ROOLBACK, gun do dh'fhuirich an tuple san aon àite. Is e sin, is urrainn dhuinn feuchainn a-rithist, giùlainidh e san aon dòigh. Is e seo am prìomh rud.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Is e Xmax àm bàs an tuple. Chaidh a stampadh, ach tha fios aig Postgres gun deach an gnothach a thoirt air ais, agus mar sin chan eil e gu diofar an e 0 a th’ ann no an e gnothach air a roiligeadh air ais a th’ ann. Tha seo a’ moladh gu bheil e comasach ath-aithris a dhèanamh thairis air DELETE agus sgrùdadh a dhèanamh air a’ mhòr-chuid de ghnìomhachd giùlan an t-siostaim. Faodaidh tu deuchainn-lannan stòr-dàta a dhèanamh dha na bochdan.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Tha seo mu dheidhinn luchd-prògramaidh. A thaobh DBA, cuideachd, bidh iad an-còmhnaidh a’ càineadh luchd-prògramaidh airson seo: “Carson a tha thu a’ dèanamh obair cho fada agus cho duilich? ”. Is e cuspair ceart-cheàrnach gu tur eadar-dhealaichte a tha seo. B’ àbhaist rianachd a bhith ann, agus a-nis bidh leasachadh ann.

Gu follaiseach, chan eil sinn air a bhriseadh na pìosan. Tha e soilleir. Tha e do-dhèanta gun a leithid de DELETE a bhriseadh airson tòrr mhilleanan de loidhnichean gu pàirtean. Thèid a dhèanamh airson 20 mionaid, agus luidhidh a h-uile càil sìos. Ach, gu mì-fhortanach, bidh eadhon luchd-leasachaidh eòlach a 'dèanamh mhearachdan, eadhon ann an companaidhean mòra.

Carson a tha e cudromach briseadh?

  • Ma chì sinn gu bheil an diosg cruaidh, leig leinn a dhèanamh nas slaodaiche. Agus ma tha sinn briste, faodaidh sinn stadan a chuir ris, is urrainn dhuinn smeòrach a dhèanamh nas slaodaiche.

  • Agus cha chuir sinn bacadh air daoine eile airson ùine mhòr. Ann an cuid de chùisean chan eil e gu diofar, ma tha thu a’ sguabadh às fìor sgudal nach eil duine ag obair air, tha e glè choltach nach cuir thu bacadh air duine ach a-mhàin obair autovacuum, oir bidh e a’ feitheamh ris a’ ghnothach a chrìochnachadh. Ach ma bheir thu air falbh rudeigin a dh'fhaodas cuideigin eile iarraidh, bidh iad air am bacadh, bidh seòrsa de fhreagairt slabhraidh ann. Bu chòir gnothaichean fada a sheachnadh air làraich-lìn agus tagraidhean gluasadach.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Tha seo inntinneach. Bidh mi tric a 'faicinn gu bheil luchd-leasachaidh a' faighneachd: "Dè am meud pacaid a bu chòir dhomh a thaghadh?".

Tha e soilleir mar as motha meud a’ phasgan, is ann as lugha a bhios an gnothach os an cionn, i.e., an còrr a bharrachd bho ghnothaichean. Ach aig an aon àm, tha an ùine airson a 'ghnothaich seo a' dol am meud.

Tha riaghailt gu math sìmplidh agam: gabh nas urrainn dhut, ach na gabh thairis air executables gach diog.

Carson diog? Tha am mìneachadh gu math sìmplidh agus so-thuigsinn don h-uile duine, eadhon daoine neo-theicnigeach. Tha sinn a’ faicinn freagairt. Gabhamaid 50 milliseconds. Ma tha rudeigin air atharrachadh, freagraidh ar sùil. Ma tha nas lugha, an uairsin nas duilghe. Ma fhreagras rudeigin às deidh 100 milliseconds, mar eisimpleir, bhriog thu air an luchag, agus fhreagair e thu às deidh 100 milliseconds, tha thu mu thràth a’ faireachdainn an dàil bheag seo. Tha dàrna fear mar-thà air fhaicinn mar bhreicichean.

Mar sin, ma bhriseas sinn ar n-obraichean mòra gu spreadhaidhean 10-diog, tha cunnart ann gun cuir sinn bacadh air cuideigin. Agus obraichidh e airson beagan dhiog, agus mothaichidh daoine e mu thràth. Mar sin, is fheàrr leam gun a bhith a 'dèanamh barrachd air diog. Ach aig an aon àm, na bi ga bhriseadh suas gu math, oir bidh an gnothach gu h-àrd follaiseach. Bidh am bonn nas duilghe, agus faodaidh diofar dhuilgheadasan eile èirigh.

Bidh sinn a’ taghadh meud a’ phacaid. Anns gach cùis, is urrainn dhuinn a dhèanamh ann an dòigh eadar-dhealaichte. Faodar a bhith fèin-ghluasadach. Agus tha sinn cinnteach mu èifeachdas giollachd aon phasgan. Is e sin, bidh sinn a’ dèanamh DELETE de aon phasgan no ÙRACHADH.

Co-dhiù, chan ann a-mhàin mu dheidhinn DELETE a tha a h-uile dad a tha mi a’ bruidhinn. Mar a shaoileadh tu, is e obair mhòr sam bith a tha seo air dàta.

Agus chì sinn gu bheil am plana sàr-mhath. Chì thu an scan clàr-amais, tha scan clàr-amais a-mhàin eadhon nas fheàrr. Agus tha beagan dàta againn an sàs. Agus tha nas lugha na diog a 'coileanadh. Sàr.

Agus feumaidh sinn fhathast dèanamh cinnteach nach eil truailleadh ann. Bidh e a 'tachairt gu bheil a' chiad phasgan ag obair a-mach gu luath, agus an uairsin bidh e a 'fàs nas miosa, nas miosa agus nas miosa. Tha am pròiseas mar sin gum feum thu tòrr deuchainn a dhèanamh. Is ann dìreach airson seo a tha deuchainn-lannan stòr-dàta.

Agus feumaidh sinn fhathast rudeigin ullachadh gus an leig e leinn seo a leantainn gu ceart ann an cinneasachadh. Mar eisimpleir, is urrainn dhuinn an ùine a sgrìobhadh sa log, is urrainn dhuinn sgrìobhadh far a bheil sinn an-dràsta agus cò a chuir sinn às a-nis. Agus leigidh seo leinn tuigse fhaighinn air na tha a’ tachairt nas fhaide air adhart. Agus ma thèid rudeigin ceàrr, lorg an duilgheadas gu sgiobalta.

Ma dh'fheumas sinn sgrùdadh a dhèanamh air èifeachdas iarrtasan agus gum feum sinn ath-aithris iomadh uair, tha an leithid de rud ann ri bot eile. Tha e deiseil mu thràth. Tha e air a chleachdadh le dusanan de luchd-leasachaidh gach latha. Agus tha fios aige mar a bheir thu stòr-dàta terabyte mòr air iarrtas ann an 30 diogan, an leth-bhreac agad fhèin. Agus faodaidh tu rudeigin a sguabadh às an sin agus ath-shuidheachadh a ràdh, agus cuir às dha a-rithist. Faodaidh tu feuchainn air an dòigh seo. Chì mi àm ri teachd airson an rud seo. Agus tha sinn mar-thà ga dhèanamh.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Dè a th’ ann an ro-innleachdan roinneadh? Tha mi a’ faicinn 3 ro-innleachdan sgaradh eadar-dhealaichte a tha an luchd-leasachaidh air a’ phasgan a’ cleachdadh.

Tha a 'chiad fhear gu math sìmplidh. Tha ID àireamhach againn. Agus brisidh sinn sìos e gu diofar amannan agus obraichidh sinn le sin. Tha an taobh shìos soilleir. Anns a 'chiad earrann, is dòcha gu bheil 100 loidhne de fhìor sgudal againn, anns an dàrna 5 loidhnichean no nach eil idir, no bidh na 1 loidhne gu lèir nan sgudal. Obair gu math neo-chòmhnard, ach tha e furasta a bhriseadh. Ghabh iad an ID as àirde agus bhris iad e. Is e dòigh-obrach naive a tha seo.

Tha an dàrna ro-innleachd na dhòigh-obrach cothromach. Tha e air a chleachdadh ann an Gitlab. Ghabh iad agus scan iad am bòrd. Lorg sinn crìochan nam pacaidean ID gus am biodh dìreach 10 clàr aig gach pasgan. Agus cuir iad ann an ciudha. Agus an uairsin bidh sinn a 'pròiseasadh. Faodaidh tu seo a dhèanamh ann an grunn shreathan.

Anns a 'chiad ro-innleachd, cuideachd, co-dhiù, faodaidh tu seo a dhèanamh ann an grunn snàithleanan. Chan eil e doirbh.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Ach tha dòigh-obrach nas fhuaire agus nas fheàrr ann. Is e seo an treas ro-innleachd. Agus nuair as urrainnear, tha e nas fheàrr a thaghadh. Bidh sinn a’ dèanamh seo air bunait clàr-amais sònraichte. Anns a ’chùis seo, is coltaiche gur e clàr-amais a bhios ann a rèir ar staid sgudail agus ID. Cuiridh sinn a-steach an ID gus am bi e na sgrùdadh clàr-amais a-mhàin gus nach tèid sinn chun chàrn.

San fharsaingeachd, tha scan clàr-amais a-mhàin nas luaithe na scan clàr-amais.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Agus lorgaidh sinn gu sgiobalta na IDan againn a tha sinn airson an toirt às. BATCH_SIZE a thaghas sinn ro làimh. Agus chan e a-mhàin gum faigh sinn iad, bidh sinn gan faighinn ann an dòigh shònraichte agus gan slaodadh sa bhad. Ach tha sinn gan glasadh gus ma tha iad glaiste mu thràth, cha bhith sinn gan glasadh, ach gluais air adhart agus gabh an ath fheadhainn. Tha seo airson sgiob ùrachadh glaiste. Leigidh an sàr fheart seo de Postgres leinn obrachadh ann an grunn snàithleanan ma tha sinn ag iarraidh. Tha e comasach ann an aon sruth. Agus an seo tha CTE - is e seo aon iarrtas. Agus tha fìor dhubhadh às againn a’ dol air adhart san dàrna làr den CTE seo - returning *. Faodaidh tu id a thilleadh, ach tha e nas fheàrr *mura h-eil mòran dàta agad air gach loidhne.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Carson a tha feum againn air? Is e seo a dh’ fheumas sinn aithris air ais. Tha sinn a-nis air uimhir de loidhnichean a dhubhadh às gu dearbh. Agus tha crìochan againn le ID no le created_at mar seo. Faodaidh tu min, max. Faodar rudeigin eile a dhèanamh. Faodaidh tu tòrr stuth a chuir an seo. Agus tha e gu math goireasach airson sùil a chumail.

Tha aon nota eile ann mun chlàr-amais. Ma cho-dhùnas sinn gu bheil feum againn air clàr-amais sònraichte airson a’ ghnìomh seo, feumaidh sinn dèanamh cinnteach nach mill e ach ùrachaidhean tuples. Is e sin, tha staitistig mar sin aig Postgres. Chithear seo ann am pg_stat_user_tables airson do bhòrd. Chì thu a bheil ùrachaidhean teth gan cleachdadh no nach eil.

Tha suidheachaidhean ann nuair as urrainn don chlàr-amais ùr agad dìreach an gearradh dheth. Agus tha na h-ùrachaidhean eile agad a tha ag obair mar-thà, slaodach. Chan ann dìreach air sgàth gun do nochd an clàr-amais (bidh gach clàr-amais a’ slaodadh sìos ùrachaidhean beagan, ach beagan), ach an seo tha e fhathast ga mhilleadh. Agus tha e do-dhèanta optimization sònraichte a dhèanamh airson a ’chlàr seo. Bidh seo a’ tachairt uaireannan. Tha seo cho seòlta is nach eil mòran dhaoine a’ cuimhneachadh. Agus tha an ràcan seo furasta a dhol air adhart. Uaireannan bidh e a 'tachairt gum feum thu dòigh-obrach a lorg bhon taobh eile agus fhathast a dhèanamh às aonais a' chlàr-amais ùr seo, no clàr-amais eile a dhèanamh, no ann an dòigh air choreigin, mar eisimpleir, faodaidh tu an dàrna dòigh a chleachdadh.

Ach is e seo an ro-innleachd as fheàrr, mar as urrainn dhut a roinn ann an baidsean agus losgadh air baidsean le aon iarrtas, cuir às beagan, msaa.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Gnìomhan fada https://gitlab.com/snippets/1890447

Autovacuum air a bhacadh - https://gitlab.com/snippets/1889668

cùis bacadh - https://gitlab.com/snippets/1890428

Tha mearachd #5 gu math mòr. Bhruidhinn Nikolai bho Okmeter mu sgrùdadh Postgres. Gu mì-fhortanach, chan eil sgrùdadh Ideal Postgres ann. Tha cuid nas fhaisge, cuid nas fhaide. Tha Okmeter faisg gu leòr air a bhith foirfe, ach tha tòrr a dhìth agus feumar a chur ris. Feumaidh tu a bhith deiseil airson seo.

Mar eisimpleir, is fheàrr sùil a chumail air tuples marbh. Ma tha tòrr rudan marbh agad sa chlàr, tha rudeigin ceàrr. Tha e nas fheàrr freagairt a-nis, air neo faodaidh truailleadh a bhith ann, agus is urrainn dhuinn laighe sìos. Bidh e a’ tachairt.

Ma tha IO mòr ann, tha e soilleir nach eil seo math.

Gnìomhan fada cuideachd. Cha bu chòir gnothaichean fada a cheadachadh air OLTP. Agus seo ceangal gu criomag a leigeas leat a’ chriomag seo a ghabhail agus beagan lorg a dhèanamh air gnothaichean fada mu thràth.

Carson a tha gnothaichean fada dona? Leis nach tèid na glasan uile a leigeil ma sgaoil ach aig an deireadh. Agus bidh sinn a 'sgrìobadh a h-uile duine. A bharrachd air an sin, bidh sinn a’ cuir casg air autovacuum airson a h-uile clàr. Chan eil e math idir. Eadhon ged a tha thu air a bhith comasach air fuireach teth air a’ mhac-samhail, tha e fhathast dona. San fharsaingeachd, chan eil àite sam bith nas fheàrr gnothaichean fada a sheachnadh.

Ma tha mòran bhùird againn nach eil falamh, feumaidh sinn rabhadh a bhith againn. An seo tha suidheachadh mar seo comasach. Faodaidh sinn buaidh neo-dhìreach a thoirt air gnìomhachd autovacuum. Is e seo criomag bho Avito, a leasaich mi beagan. Agus thionndaidh e a-mach gur e inneal inntinneach a bh’ ann airson faicinn dè a th’ againn le autovacuum. Mar eisimpleir, tha cuid de bhùird a 'feitheamh an sin agus chan eil iad a' feitheamh airson an tionndadh. Feumaidh tu cuideachd a chuir ann an sgrùdadh agus rabhadh a bhith agad.

Agus blocaichean cùisean. Coille de chraobhan bloca. Is toil leam rudeigin a thoirt bho chuideigin agus a leasachadh. An seo ghabh mi CTE fionnar ath-chuairteach bho Data Egret a tha a’ sealltainn coille de chraobhan glasaidh. Is e inneal sgrùdaidh math a tha seo. Agus air a bhunait, faodaidh tu cuideachd sgrùdadh a thogail. Ach feumar seo a dhèanamh gu faiceallach. Feumaidh tu aithris bheag a dhèanamh dhut fhèin. Agus tha lock_timeout feumail.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Uaireannan bidh na mearachdan sin uile a 'tachairt ann an suim.

Nam bheachd-sa, tha am prìomh mhearachd an seo eagrachaidh. Tha e eagrachaidh, seach nach eil an dòigh-obrach a 'tarraing. Is e seo àireamh 2 - rinn iad sgrùdadh san àite cheàrr.

Rinn sinn sgrùdadh san àite cheàrr, leis nach robh clon cinneasachaidh againn, a tha furasta a sgrùdadh. Is dòcha nach bi cothrom aig leasaiche air cinneasachadh idir.

Agus cha do rinn sinn sgrùdadh ann. Nam biodh sinn air sgrùdadh a dhèanamh an sin, bhiodh sinn air fhaicinn sinn fhìn. Chunnaic an leasaiche a h-uile càil eadhon às aonais DBA nan dèanadh e sgrùdadh air ann an àrainneachd mhath, far a bheil an aon uiread de dhàta agus an aon àite. Bhiodh e air a h-uile truailleadh seo fhaicinn agus bhiodh e na nàire.

Tuilleadh mu dheidhinn autovacuum. Às deidh dhuinn sguabadh mòr de ghrunn mhillean loidhne a dhèanamh, feumaidh sinn fhathast REPACK a dhèanamh. Tha seo gu sònraichte cudromach airson clàran-amais. Bidh iad a’ faireachdainn dona às deidh dhuinn a h-uile càil a ghlanadh an sin.

Agus ma tha thu airson an obair glanaidh làitheil a thoirt air ais, tha mi a 'moladh a dhèanamh nas trice, ach nas lugha. Faodaidh e a bhith aon uair sa mhionaid no eadhon nas trice beagan. Agus feumaidh tu sùil a chumail air dà rud: nach eil mearachdan aig an rud seo agus nach eil e air dheireadh. Bidh an cleas a sheall mi dìreach a’ fuasgladh seo.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Is e na bhios sinn a’ dèanamh stòr fosgailte. Tha e air a phostadh air GitLab. Agus bidh sinn ga dhèanamh gus an urrainn do dhaoine sgrùdadh eadhon às aonais DBA. Tha sinn a’ dèanamh obair-lann stòr-dàta, is e sin, canaidh sinn a’ bhun-phàirt air a bheil Eòs ag obair an-dràsta. Agus faodaidh tu grèim fhaighinn air leth-bhreac den riochdachadh. A-nis gu bheil Joe airson slack air a chuir an gnìomh, faodaidh tu a ràdh an sin: “mìnich a leithid de cheist” agus sa bhad faigh an toradh airson do leth-bhreac den stòr-dàta. Faodaidh tu eadhon DELETE an sin, agus chan fhaic duine sam bith e.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Canaidh sinn gu bheil 10 terabytes agad, bidh sinn a’ dèanamh obair-lann stòr-dàta cuideachd 10 terabytes. Agus le stòran-dàta 10 terabyte aig an aon àm, faodaidh 10 leasaiche obrachadh aig an aon àm. Faodaidh a h-uile duine na tha iad ag iarraidh a dhèanamh. Can sguabadh às, leig às, msaa Sin a leithid fantasy. Bruidhnidh sinn mu dheidhinn seo a-màireach.

Dear DELETE. Nikolay Samokhvalov (Postgres.ai)

Canar solar tana ris an seo. Is e solarachadh sùbailte a tha seo. Is e seo seòrsa de dh’ fhaireachdainn a bheir air falbh gu mòr dàil ann an leasachadh, ann an deuchainn agus a nì an saoghal na àite nas fheàrr a thaobh seo. Is e sin, tha e dìreach a 'toirt cothrom dhut duilgheadasan le mòr-obrachaidh a sheachnadh.

Eisimpleir: Stòr-dàta 5 terabyte, a’ faighinn leth-bhreac ann an nas lugha na 30 diog. Agus chan eil e fiù 's an crochadh air meud,' se sin, chan eil e gu diofar cia mheud terabytes.

An-diugh faodaidh tu a dhol gu postgres.ai agus cladhach a-steach do na h-innealan againn. Faodaidh tu clàradh gus faicinn dè tha ann. Faodaidh tu am bot seo a stàladh. Tha e saor. Sgrìobh.

Do cheistean

Glè thric ann an suidheachaidhean fìor tha e a 'tionndadh a-mach gu bheil an dàta a bu chòir fuireach anns a' chlàr mòran nas lugha na na dh'fheumar a sguabadh às. Is e sin, ann an suidheachadh mar sin, gu tric tha e nas fhasa a leithid de dhòigh-obrach a chuir an gnìomh, nuair a tha e nas fhasa rud ùr a chruthachadh, dèan lethbhreac a-mhàin den dàta riatanach an sin, agus stoc an t-seann chlàr. Tha e soilleir gu bheil feum air dòigh-obrach prògramaidh airson na h-ùine seo, fhad ‘s a bhios tu ag atharrachadh. Ciamar a tha an dòigh-obrach seo?

Is e dòigh-obrach fìor mhath a tha seo agus gnìomh fìor mhath. Tha e glè choltach ris na bhios pg_repack a’ dèanamh, tha e glè choltach ris na tha agad ri dhèanamh nuair a nì thu IDs 4 bytes. Rinn mòran frèamaichean seo beagan bhliadhnaichean air ais, agus tha dìreach na lannan air fàs suas, agus feumaidh iad a bhith air an tionndadh gu 8 bytes.

Tha an obair seo gu math duilich. Rinn sinn e. Agus feumaidh tu a bhith gu math faiceallach. Tha glasan, etc Ach tha e 'ga dheanamh. Is e sin, is e an dòigh àbhaisteach a dhol le pg_repack. Bidh thu a 'foillseachadh a leithid de leubail. Agus mus tòisich thu air dàta snapshot a luchdachadh suas, bidh thu cuideachd ag ainmeachadh aon phlàta a bhios a’ cumail sùil air gach atharrachadh. Tha cleas ann nach fhaod thu eadhon sùil a chumail air cuid de dh’ atharrachaidhean. Tha subtleties ann. Agus an uairsin bidh thu ag atharrachadh le atharrachaidhean leantainneach. Bidh fois ghoirid ann nuair a dhùineas sinn a h-uile duine sìos, ach san fharsaingeachd tha seo ga dhèanamh.

Ma choimheadas tu air pg_repack air GitHub, an sin an sin, nuair a bha gnìomh ann ID a thionndadh bho int 4 gu int 8, bha beachd ann pg_repack fhèin a chleachdadh. Tha seo comasach cuideachd, ach tha e beagan hack, ach obraichidh e airson seo cuideachd. Faodaidh tu eadar-theachd a dhèanamh anns an inneal-brosnachaidh a bhios pg_repack a’ cleachdadh agus a ràdh an sin: “Chan fheum sinn an dàta seo”, ie cha bhith sinn a’ gluasad ach na tha a dhìth oirnn. Agus an uairsin bidh e dìreach ag atharrachadh agus sin e.

Leis an dòigh-obrach seo, bidh sinn fhathast a’ faighinn dàrna leth-bhreac den chlàr, anns a bheil an dàta mu thràth air a chlàr-amais agus air a chruachadh gu math cothromach le clàran-amais breagha.

Chan eil bloat an làthair, tha e na dhòigh-obrach math. Ach tha fios agam gu bheil oidhirpean ann fèin-ghluasad a leasachadh airson seo, i.e. fuasgladh uile-choitcheann a dhèanamh. Is urrainn dhomh fios a chuir thugad leis an fèin-ghluasad seo. Tha e sgrìobhte ann am Python, rud a tha math.

Tha mi dìreach beagan bho shaoghal MySQL, agus mar sin thàinig mi a dh'èisteachd. Agus bidh sinn a 'cleachdadh an dòigh-obrach seo.

Ach chan eil ann ach ma tha 90% againn. Ma tha 5% againn, chan eil e glè mhath a chleachdadh.

Tapadh leibh airson an aithris! Mura h-eil goireasan ann airson leth-bhreac iomlan de phrod a dhèanamh, a bheil algairim no foirmle ann airson an luchd no am meud obrachadh a-mach?

Deagh cheist. Gu ruige seo, tha e comasach dhuinn stòran-dàta ioma-terabyte a lorg. Fiù mura h-eil am bathar-cruaidh an aon rud, mar eisimpleir, chan eil nas lugha de chuimhne, nas lugha de phròiseasar agus diosgan dìreach mar an ceudna, ach fhathast bidh sinn ga dhèanamh. Mura h-eil àite sam bith ann, feumaidh tu smaoineachadh. Leig leam smaoineachadh gus a-màireach, thàinig thu, bruidhnidh sinn, is e ceist mhath a tha seo.

Tapadh leibh airson an aithris! Thòisich thu an toiseach mun fhìrinn gu bheil Postgres fionnar, aig a bheil a leithid de chuingealachaidhean, ach tha e a ’leasachadh. Agus tha seo uile na dhuilgheadas gu ìre mhòr. Nach eil seo uile an aghaidh leasachadh Postgres fhèin, anns am bi cuid de luchd-dìon DELETE a’ nochdadh no rudeigin eile a bu chòir a chumail aig ìre ìosal na tha sinn a’ feuchainn ri smeuradh le cuid de na dòighean neònach againn an seo?

Ma thuirt sinn ann an SQL mòran chlàran a dhubhadh às no ùrachadh ann an aon ghnothach, ciamar as urrainn dha Postgres a sgaoileadh an sin? Tha sinn cuingealaichte gu corporra ann an gnìomhachd. Bidh sinn fhathast ga dhèanamh airson ùine mhòr. 'S bidh sinn a' glasadh 'san àm so, etc.

Dèanta le clàran-amais.

Is urrainn dhomh gabhail ris gum faodadh an aon gleusadh puing-seic a bhith fèin-ghluasadach. Uaireigin is dòcha gum bi. Ach an uairsin chan eil mi dha-rìribh a’ tuigsinn a’ cheist.

Is e a’ cheist, a bheil leithid de vectar leasachaidh ann a tha a’ dol an seo agus an sin, agus an seo tha an tè agadsa a’ dol co-shìnte? An fheadhainn sin. Nach do smaoinich iad air fhathast?

Bhruidhinn mi mu na prionnsapalan a ghabhas cleachdadh a-nis. Tha bot eile ann Nancy, le seo faodaidh tu gleusadh puing-seic fèin-ghluasadach a dhèanamh. Am bi e ann am Postgres uaireigin? Chan eil fios agam, cha deach eadhon a dheasbad fhathast. Tha sinn fada bho sin fhathast. Ach tha luchd-saidheans ann a bhios a’ dèanamh shiostaman ùra. Agus ghluais iad sinn gu clàran-amais fèin-ghluasadach. Tha leasachaidhean ann. Mar eisimpleir, faodaidh tu coimhead air gleusadh fèin-ghluasadach. Bidh e a’ taghadh paramadairean gu fèin-ghluasadach. Ach cha dèan e gleusadh puing-seic dhut fhathast. Is e sin, togaidh e airson coileanadh, bufair shligean, msaa.

Agus airson gleusadh puing-seic, faodaidh tu seo a dhèanamh: ma tha mìle brabhsair agad agus bathar-cruaidh eadar-dhealaichte, diofar innealan brìgheil san sgòth, faodaidh tu ar bot a chleachdadh Nancy dèan fèin-ghluasad. Agus thèid max_wal_size a thaghadh a rèir do roghainnean targaid gu fèin-ghluasadach. Ach gu ruige seo chan eil seo eadhon faisg air a 'chridhe, gu mì-fhortanach.

Feasgar math Bhruidhinn thu mu na cunnartan a tha an lùib gnothaichean fada. Thuirt thu gu bheil autovacuum air a bhacadh ma thèid a dhubhadh às. Ciamar eile a nì e cron oirnn? Leis gu bheil sinn a’ bruidhinn barrachd mu bhith a’ saoradh àite agus a bhith comasach air a chleachdadh. Dè eile a tha sinn a dhìth?

Is dòcha nach e Autovacuum an duilgheadas as motha an seo. Agus leis gum faod malairt fhada gnothaichean eile a ghlasadh, tha an comas seo nas cunnartaiche. Faodaidh i no nach eil i a 'coinneachadh. Ma choinnich i, faodaidh e a bhith gu math dona. Agus le autovacuum - tha seo cuideachd na dhuilgheadas. Tha dà dhuilgheadas ann le gnothaichean fada ann an OLTP: glasan agus autovacuum. Agus ma tha fios air ais teth agad air a chomasachadh air a’ mhac-samhail, gheibh thu fhathast glas autovacuum air a’ mhaighstir, thig e bhon mhac-samhail. Ach co-dhiù cha bhi glasan ann. Agus bidh coltas ann. Tha sinn a 'bruidhinn mu atharrachaidhean dàta, agus mar sin tha glasan na phuing cudromach an seo. Agus ma tha seo uile airson ùine mhòr, tha barrachd is barrachd ghnothaichean glaiste. Faodaidh iad daoine eile a ghoid. Agus tha craobhan lok a’ nochdadh. Thug mi seachad ceangal dhan chriomag. Agus bidh an duilgheadas seo a 'fàs nas follaisiche nas luaithe na an duilgheadas le autovacuum, nach urrainn ach cruinneachadh.

Tapadh leibh airson an aithris! Thòisich thu air an aithisg agad le bhith ag ràdh gun do rinn thu deuchainn ceàrr. Lean sinn oirnn a’ smaoineachadh gum feum sinn an aon uidheamachd a ghabhail, leis a’ bhunait san aon dòigh. Canaidh sinn gun tug sinn bunait don leasaiche. Agus ghèill e ris an iarrtas. Agus tha e coltach gu bheil e gu math. Ach chan eil e a 'coimhead airson beò, ach airson beò, mar eisimpleir, tha luchd de 60-70%. Agus eadhon ged a chleachdas sinn an gleusadh seo, chan obraich e glè mhath.

Tha e cudromach eòlaiche a bhith agad air an sgioba agus a bhith a’ cleachdadh eòlaichean DBA as urrainn ro-innse dè a thachras le fìor luchd cùl-fhiosrachaidh. Nuair a tha sinn dìreach a 'stiùireadh ar n-atharrachaidhean glan, chì sinn an dealbh. Ach dòigh-obrach nas adhartaiche, nuair a rinn sinn an aon rud a-rithist, ach le luchd coltach ri cinneasachadh. Tha e gu math fionnar. Gu ruige sin, feumaidh tu fàs suas. Tha e coltach ri inbheach. Bha sinn dìreach a’ coimhead air na th’ againn agus cuideachd a’ coimhead a bheil goireasan gu leòr againn. Sin ceist mhath.

Nuair a tha sinn mu thràth a’ dèanamh taghadh sgudail agus tha, mar eisimpleir, bratach air a dhubhadh às

Is e seo a bhios autovacuum a’ dèanamh gu fèin-ghluasadach ann am Postgres.

O, an dèan e e?

Is e Autovacuum an neach-cruinneachaidh sgudail.

Tapadh leibh!

Tapadh leibh airson an aithris! A bheil roghainn ann stòr-dàta a dhealbhadh sa bhad le sgaradh ann an dòigh gus am bi a h-uile sgudal salach bhon phrìomh bhòrd an àiteigin chun an taobh?

Gu dearbh tha.

A bheil e comasach an uairsin sinn fhèin a dhìon ma tha sinn air bòrd a ghlasadh nach bu chòir a chleachdadh?

Gu dearbh tha. Ach tha e coltach ri ceist cearc is ugh. Ma tha fios againn uile dè a thachras san àm ri teachd, an uairsin, gu dearbh, nì sinn a h-uile dad fionnar. Ach tha an gnìomhachas ag atharrachadh, tha colbhan ùra ann, iarrtasan ùra. Agus an uairsin - oich, tha sinn airson a thoirt air falbh. Ach an suidheachadh fìor mhath seo, ann am beatha tha e a’ tachairt, ach chan ann an-còmhnaidh. Ach san fharsaingeachd tha e na dheagh bheachd. Dìreach gearraich agus sin agad e.

Source: www.habr.com

Cuir beachd ann