A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Am éigin amach anseo, beidh baint uathoibríoch sonraí nach bhfuil gá leo ar cheann de thascanna tábhachtacha an DBMS [1]. Idir an dá linn, ní mór dúinn féin aire a thabhairt do shonraí nach bhfuil gá leo a scriosadh nó a aistriú chuig córais stórála níos saoire. Ligean le rá go gcinnfidh tú cúpla milliún sraitheanna a scriosadh. Tasc simplí go leor, go háirithe má tá an riocht ar eolas agus go bhfuil innéacs oiriúnach ann. "Scrios Ó tábla1 ÁIT col1 = :luach" - cad a d'fhéadfadh a bheith níos simplí, ceart?

Físeán:

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

  • Tá mé ar choiste an chláir Highload ón gcéad bhliain, i.e. ó 2007.

  • Agus tá mé le Postgres ó 2005 i leith. Úsáideadh é i go leor tionscadal.

  • Grúpa le RuPostges freisin ó 2007 i leith.

  • Táimid tar éis fás go 2100+ rannpháirtí ag Meetup. Tá sé sa dara háit ar domhan i ndiaidh Nua-Eabhrac, agus é á scoitheadh ​​ag San Francisco le fada an lá.

  • Tá mé i mo chónaí i gCalifornia le roinnt blianta anuas. Déileálann mé níos mó le cuideachtaí Mheiriceá, lena n-áirítear cinn mhóra. Is úsáideoirí gníomhacha Postgres iad. Agus tá gach cineál rudaí suimiúla ann.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

https://postgres.ai/ Is é mo chuideachta. Táimid i mbun cúraimí uathoibrithe a chuireann deireadh le moilliú forbartha.

Má tá rud éigin á dhéanamh agat, uaireanta tá plocóidí de chineál éigin timpeall Postgres. Ligean le rá go gcaithfidh tú fanacht leis an riarthóir seastán tástála a shocrú duit, nó caithfidh tú fanacht go bhfreagróidh an DBA duit. Agus aimsímid baic den sórt sin sa phróiseas forbartha, tástála agus riaracháin agus déanaimid iarracht iad a dhíchur le cabhair ó uathoibriú agus cineálacha cur chuige nua.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Bhí mé ag VLDB i Los Angeles le déanaí. Seo an chomhdháil is mó ar bhunachair shonraí. Agus bhí tuairisc ann nach ndéanfaidh DBMS sa todhchaí ach sonraí a stóráil, ach freisin sonraí a scriosadh go huathoibríoch. Is ábhar nua é seo.

Tá níos mó sonraí agus níos mó i saol na zettabytes - sin 1 petabytes. Agus anois meastar cheana féin go bhfuil níos mó ná 000 zettabytes de shonraí stóráilte ar fud an domhain. Agus tá níos mó agus níos mó acu.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Agus cad atá le déanamh leis? Ar ndóigh ní mór é a bhaint. Seo nasc chuig an tuairisc spéisiúil seo. Ach go dtí seo níl sé seo curtha i bhfeidhm sa DBMS.

Tá dhá rud ag teastáil uathu siúd ar féidir leo airgead a chomhaireamh. Tá siad ag iarraidh orainn a scriosadh, mar sin go teicniúil ba chóir dúinn a bheith in ann é a dhéanamh.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Is é an chéad rud a déarfaidh mé ina dhiaidh sin ná staid éigin teibí a chuimsíonn roinnt cásanna fíor, i.e. cineál tiomsaithe de na rudaí a tharla i ndáiríre domsa agus na bunachair shonraí máguaird go minic, go leor blianta. Bíonn rácaí i ngach áit agus céimeanna gach duine orthu an t-am ar fad.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Ligean le rá go bhfuil bonn nó roinnt bonn againn atá ag fás. Agus is léir gur bruscar iad roinnt taifead. Mar shampla, thosaigh an t-úsáideoir ag déanamh rud éigin ann, ach níor chríochnaigh sé. Agus tar éis roinnt ama tá a fhios againn nach féidir an neamhchríochnaithe seo a stóráil a thuilleadh. Is é sin, ba mhaith linn roinnt rudaí truflais a ghlanadh chun spás a shábháil, feidhmíocht a fheabhsú, etc.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Go ginearálta, is é an tasc a uathoibriú deireadh a chur le rudaí sonracha, línte sonracha i roinnt tábla.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Agus tá a leithéid d’iarratas againn, a labhróimid faoi inniu, is é sin, faoi bhaint truflais.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

D'iarramar ar fhorbróir taithí é a dhéanamh. Ghlac sé an t-iarratas seo, rinne sé é a sheiceáil dó féin - oibríonn gach rud. Thástáil ar stáitse - tá gach rud go breá. Rolladh amach - oibríonn gach rud. Uair sa lá a ritheann muid é - tá gach rud go breá.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Fásann agus fásann an bunachar sonraí. Tosaíonn Daily DELETE ag obair beagán níos moille.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Ansin tuigimid go bhfuil cuideachta margaíochta againn anois agus go mbeidh an trácht níos mó arís agus arís eile, agus mar sin déanaimid cinneadh chun rudaí nach bhfuil gá leo a chur ar sos go sealadach. Agus déan dearmad a thabhairt ar ais.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Cúpla mí ina dhiaidh sin chuimhnigh siad. Agus scoir an forbróir sin nó go bhfuil sé gnóthach le rud éigin eile, d'ordaigh duine eile é a thabhairt ar ais.

Sheiceáil sé ar dev, ar stáitse - tá gach rud ceart go leor. Ar ndóigh, ní mór duit fós a ghlanadh suas cad atá carntha. Sheiceáil sé go n-oibríonn gach rud.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Cad a tharlóidh ina dhiaidh sin? Ansin titeann gach rud as a chéile dúinn. Titeann sé ionas go dtiteann gach rud síos ag pointe éigin. Tá gach duine i turraing, ní thuigeann aon duine cad atá ag tarlú. Agus ansin tharlaíonn sé go raibh an t-ábhar sa DELETE seo.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Chuaigh rud eigin mícheart? Seo liosta de na rudaí a d’fhéadfadh a bheith mícheart. Cé acu seo is tábhachtaí?

  • Mar shampla, ní raibh aon athbhreithniú, i.e. níor fhéach an saineolaí DBA air. Bheadh ​​​​sé ag teacht ar an bhfadhb láithreach le súil le taithí, agus sa bhreis air sin, tá rochtain aige ar phróitéin, áit a bhfuil roinnt milliún línte carntha.

  • B'fhéidir gur sheiceáil siad rud éigin mícheart.

  • B'fhéidir go bhfuil na crua-earraí as dáta agus go gcaithfidh tú an bonn seo a uasghrádú.

  • Nó tá rud éigin cearr leis an mbunachar sonraí féin, agus ní mór dúinn bogadh ó Postgres go MySQL.

  • Nó b'fhéidir go bhfuil rud éigin cearr leis an oibríocht.

  • B'fhéidir go bhfuil roinnt botúin ann maidir le heagrú na hoibre agus go gcaithfidh tú duine a thine agus na daoine is fearr a fhostú?

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Ní raibh aon seiceáil DBA. Dá mbeadh DBA ann, d'fheicfeadh sé na milliún línte seo agus fiú gan aon turgnaimh déarfadh sé: "Ní dhéanann siad é sin." Cuir i gcás dá mbeadh an cód seo i GitLab, GitHub agus go mbeadh próiseas athbhreithnithe cóid ann agus nach raibh a leithéid de rud ann go ndéanfaí an oibríocht seo ar tháirgí gan ceadú an DBA, is léir go ndéarfadh an DBA: “Ní féidir é seo a dhéanamh. .”

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Agus déarfadh sé go mbeidh fadhbanna agat le diosca IO agus beidh gach próiseas ag dul ar mire, d'fhéadfadh go mbeadh glais ann, agus freisin cuirfidh tú bac ar autovacuum ar feadh cúpla nóiméad, mar sin níl sé seo go maith.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

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

An dara botún - sheiceáil siad san áit mícheart. Chonaic muid tar éis go raibh go leor sonraí junk carntha ar tháirgí, ach ní raibh sonraí carntha ag an bhforbróir sa bhunachar sonraí seo, agus níor chruthaigh aon duine an junk seo le linn an stáitse. Dá réir sin, bhí 1 líne ann a d’oibrigh amach go tapa.

Tuigimid go bhfuil ár dtástálacha lag, is é sin, ní ghlacann an próiseas a thógtar fadhbanna. Ní dhearnadh turgnamh imleor DB.

Is fearr turgnamh idéalach a dhéanamh ar an trealamh céanna. Ní i gcónaí is féidir é seo a dhéanamh ar an trealamh céanna, ach tá sé an-tábhachtach go mbeadh sé ina chóip lánmhéide den bhunachar sonraí. Is é seo a bhfuil mé ag seanmóir le roinnt blianta anuas. Agus bliain ó shin labhair mé faoi seo, is féidir leat féachaint air go léir ar YouTube.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

B'fhéidir go bhfuil ár dtrealamh olc? Má fhéachann tú, ansin léim an latency. Tá sé feicthe againn go bhfuil an úsáid 100%. Ar ndóigh, dá mba thiomáineann NVMe nua-aimseartha iad seo, is dócha go mbeadh sé i bhfad níos éasca dúinn. Agus b'fhéidir nach mbeadh muid ag leagan síos uaidh.

Má tá scamaill agat, déantar an t-uasghrádú go héasca ansin. Ardaíodh macasamhla nua ar na crua-earraí nua. lasc-aistriú. Agus tá gach go maith. Éasca go leor.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

An féidir teagmháil a dhéanamh leis na dioscaí beaga ar bhealach éigin? Agus anseo, díreach le cabhair ó DBA, tumaimid isteach i dtopaic áirithe ar a dtugtar tiúnadh seicphointe. Tharlaíonn sé nach raibh tiúnadh seicphointe againn.

Cad is seicphointe ann? Tá sé in aon DBMS. Nuair a bhíonn sonraí i gcuimhne agat a athraíonn, ní scríobhtar ar an diosca láithreach é. Scríobhtar an t-eolas gur athraigh na sonraí chuig an loga réamhscríofa ar dtús. Agus ag pointe éigin, cinneann an DBMS go bhfuil sé in am fíor-leathanaigh a dhumpáil chuig diosca, ionas gur féidir linn níos lú REDO a dhéanamh má bhíonn teip orainn. Tá sé cosúil le bréagán. Má mharaítear sinn, cuirfimid tús leis an gcluiche ón seicphointe deiridh. Agus cuireann gach DBMS i bhfeidhm é.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Tá na socruithe i Postgres tite ar gcúl. Tá siad deartha le haghaidh toirteanna sonraí agus idirbhearta 10-15 bliana d'aois. Agus ní haon eisceacht é seicphointe.

Seo an t-eolas ónár dtuarascáil seiceála Postgres, i.e. seiceáil sláinte uathoibríoch. Agus seo roinnt bunachar sonraí de roinnt terabytes. Agus is féidir a fheiceáil go maith go bhfuil iachall ar sheicphointí i mbeagnach 90% de na cásanna.

Céard is brí leis? Tá dhá shuíomh ann. Is féidir le seicphointe teacht faoin teorainn ama, mar shampla, ag 10 nóiméad. Nó d'fhéadfadh sé teacht nuair a bhíonn go leor sonraí líonta.

Agus de réir réamhshocraithe tá max_wal_saze socraithe go 1 gigabyte. Go deimhin, tarlaíonn sé seo i ndáiríre i Postgres tar éis 300-400 meigibheart. Tá an oiread sin sonraí athraithe agat agus tarlaíonn do sheicphointe.

Agus más rud é nach bhfuil aon duine tiúnta é, agus d'fhás an tseirbhís, agus tuilleann an chuideachta a lán airgid, tá a lán na n-idirbheart, ansin tagann an seicphointe uair sa nóiméad, uaireanta gach 30 soicind, agus uaireanta fiú forluí. Tá sé seo dona go leor.

Agus ní mór dúinn a chinntiú go dtagann sé chomh minic. Is é sin, is féidir linn max_wal_size a ardú. Agus tiocfaidh sé chomh minic.

Ach tá modheolaíocht iomlán forbartha againn maidir le conas é a dhéanamh i gceart, is é sin, conas cinneadh a dhéanamh maidir le socruithe a roghnú, bunaithe go soiléir ar shonraí sonracha.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Dá réir sin, táimid ag déanamh dhá shraith turgnamh ar bhunachair shonraí.

An chéad sraith - athraíonn muid max_wal_size. Agus táimid ag déanamh oibríocht ollmhór. Ar dtús, déanaimid é ar an socrú réamhshocraithe de 1 gigabyte. Agus déanaimid scriosadh ollmhór ar na milliúin línte.

Is féidir leat a fheiceáil cé chomh deacair is atá sé dúinn. Feicimid go bhfuil diosca IO an-dona. Breathnaímid ar cé mhéad WAL a ghineamar, mar tá sé seo an-tábhachtach. Feicfimid cé mhéad uair a tharla an seicphointe. Agus feicimid nach bhfuil sé go maith.

Ansin méadóimid max_wal_size. Déanaimid arís. Méadaíonn muid, déanaimid arís. Agus an oiread sin uaireanta. I bprionsabal, tá 10 bpointe go maith, áit a bhfuil 1, 2, 4, 8 ghigibheart. Agus féachaimid ar iompar córais ar leith. Tá sé soiléir gur chóir go mbeadh an trealamh anseo mar a bheadh ​​ar tháirgí. Ní mór na dioscaí céanna a bheith agat, an méid céanna cuimhne, agus na socruithe céanna Postgres.

Agus ar an mbealach seo déanfaimid ár gcóras a mhalartú, agus tá a fhios againn conas a dhéanfaidh an DBMS iad féin a iompar i gcás mais olc DELETE, conas a dhéanfaidh sé seicphointe.

Is seicphointí iad seicphointí i Rúisis.

Sampla: Scrios roinnt milliún sraitheanna de réir innéacs, déantar sraitheanna a "scaipeadh" thar leathanaigh.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Seo sampla. Seo roinnt bonn. Agus leis an socrú réamhshocraithe de 1 gigabyte le haghaidh max_wal_size, tá sé an-soiléir go dtéann ár dioscaí chuig an seilf le haghaidh taifeadta. Is symptom tipiciúil é an pictiúr seo d’othar an-tinn, is é sin, bhraith sé go dona. Agus aon oibríocht amháin a bhí ann, ní raibh ann ach scriosadh de roinnt milliún línte.

Má cheadaítear oibríocht den sórt sin i dtáirgí, ansin beimid ag luí síos, toisc go bhfuil sé soiléir go mharaíonn SÍOS amháin sinn sa reisimint.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Thairis sin, i gcás 16 ghigibheart, tá sé soiléir go bhfuil na fiacla imithe cheana féin. Tá fiacla níos fearr cheana féin, is é sin, táimid ag cnagadh ar an uasteorainn, ach níl sé chomh dona. Bhí saoirse éigin ann. Ar dheis tá an taifead. Agus líon na n-oibríochtaí - an dara graf. Agus tá sé soiléir go bhfuil muid ag análú cheana féin beagán níos éasca nuair a 16 ghigibheart.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Agus nuair is féidir 64 ghigibheart a fheiceáil go bhfuil sé tar éis éirí go hiomlán níos fearr. Cheana féin déantar na fiacla a fhuaimniú, tá níos mó deiseanna ann maireachtáil oibríochtaí eile agus rud éigin a dhéanamh leis an diosca.

Cén fáth go bhfuil sin?

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Léimfidh mé isteach na sonraí beagán, ach is féidir tuairisc iomlán a bheith mar thoradh ar an ábhar seo, conas tiúnadh seicphointe a dhéanamh, mar sin ní lódálfaidh mé mórán, ach leagfaidh mé amach beagán cad iad na deacrachtaí atá ann.

Má tharlaíonn an seicphointe go ró-mhinic, agus go ndéanaimid ár línte a nuashonrú ní go seicheamhach, ach go bhfaighidh muid de réir innéacs, rud atá go maith, toisc nach scriosaimid an tábla ar fad, ansin d'fhéadfadh sé tarlú go ndearna muid teagmháil leis an gcéad leathanach ar dtús, ansin an míleú, agus ansin ar ais go dtí an chéad . Agus más rud é idir na cuairteanna seo ar an gcéad leathanach, tá an seicphointe tar éis é a shábháil ar diosca cheana féin, ansin sábhálfaidh sé arís é, toisc go bhfuair muid salach an dara huair é.

Agus cuirfimid bhfeidhm seicphointe chun é a shábháil go leor uaireanta. Conas a bheadh ​​oibríochtaí iomarcacha ann dó.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Ach ní hé sin go léir. Is iad na leathanaigh ná 8 cilibheart i Postgres agus 4 cilibheart i Linux. Agus tá socrú full_page_writes ann. Tá sé cumasaithe de réir réamhshocraithe. Agus tá sé seo ceart, mar má mhúchtaimid é, ansin tá an baol ann nach mbeidh ach leath den leathanach a shábháil má tuairteanna sé.

Is é an chaoi a n-iompraítear scríobh chuig WAL an réamh-logála ná nuair a bhíonn seicphointe againn agus go n-athraíonn muid an leathanach den chéad uair, téann an leathanach iomlán, i.e., na 8 cilibheart ar fad, isteach sa réamhlogáil, cé nár athraigh muid ach an líne, a bhfuil meáchan 100 bytes . Agus caithfimid an leathanach iomlán a scríobh síos.

In athruithe ina dhiaidh sin ní bheidh ach tuple ar leith, ach den chéad uair scríobhann muid gach rud síos.

Agus, dá réir sin, má tharla an seicphointe arís, ansin ní mór dúinn gach rud a thosú ón tús arís agus an leathanach iomlán a bhrú. Le seicphointí go minic, agus muid ag siúl tríd na leathanaigh chéanna, beidh full_page_writes = ar aghaidh níos mó ná mar a d’fhéadfadh sé a bheith, i.e. gineann muid níos mó WAL. Seoltar tuilleadh chuig macasamhla, chuig an gcartlann, chuig diosca.

Agus, dá réir sin, tá dhá iomarcaíocht againn.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Má mhéadaímid max_wal_size, tarlaíonn sé go ndéanaimid é níos éasca don seicphointe agus don scríbhneoir balla araon. Agus is iontach sin.

A ligean ar a chur i terabyte agus beo leis. Cad atá go dona faoi? Tá sé seo olc, mar i gcás teipe, beimid ag dreapadh ar feadh uaireanta, toisc go raibh an seicphointe i bhfad ó shin agus tá go leor athraithe cheana féin. Agus ní mór dúinn REDO seo go léir a dhéanamh. Agus mar sin déanaimid an dara sraith turgnaimh.

Déanaimid oibríocht agus feicimid nuair a bhíonn an seicphointe ar tí a bheith críochnaithe, maraíonn muid -9 Postgres de réir a chéile.

Agus ina dhiaidh sin cuirimid tús leis arís, agus feicimid cé chomh fada agus a ardóidh sé ar an trealamh seo, i.e. cé mhéad a athdhéanfaidh sé sa droch-staid seo.

Faoi dhó tabharfaidh mé faoi deara go bhfuil an scéal go dona. Ar dtús, thuairteálamar díreach sula raibh an seicphointe thart, agus mar sin tá go leor le cailleadh againn. Agus ar an dara dul síos, bhí oibríocht ollmhór againn. Agus dá mbeadh na seicphointí laistigh den teorainn ama, is dócha go mbeadh níos lú WAL á ghiniúint ón seicphointe deiridh. Is é sin, is fear caillte na himeartha dúbailte é.

Déanaimid a leithéid de chás a thomhas le haghaidh méideanna éagsúla max_wal_size agus tuigimid má tá max_wal_size 64 ghigibheart, ansin i gcás dúbailte is measa beimid ag dreapadh ar feadh 10 nóiméad. Agus is dóigh linn cibé an oireann sé dúinn nó nach bhfuil. Ceist ghnó í seo. Ní mór dúinn an pictiúr seo a thaispeáint dóibh siúd atá freagrach as cinntí gnó agus fiafraí de, “Cá fhad is féidir linn luí síos ar a mhéad i gcás fadhb? An féidir linn luí síos sa chás is measa ar feadh 3-5 nóiméad? Agus déanann tú cinneadh.

Agus seo pointe suimiúil. Tá cúpla tuairisc againn faoi Patroni ag an gcomhdháil. Agus b'fhéidir go bhfuil tú ag baint úsáide as. Is é seo uath-theipeann do Postgres. Labhair GitLab agus Data Egret faoi seo.

Agus má tá uath-mhainniúnas agat a thagann i 30 soicind, ansin b'fhéidir gur féidir linn luí síos ar feadh 10 nóiméad? Toisc go mbeidh muid ag aistriú chuig an macasamhail ag an bpointe seo, agus beidh gach rud go breá. Is pointe moot é seo. Níl a fhios agam freagra soiléir. Is dóigh liom nach mbaineann an t-ábhar seo ach le hathshlánú tuairteála.

Má tá téarnamh fada againn tar éis cliseadh, ansin beidh muid míchompordach i go leor cásanna eile. Mar shampla, sna turgnaimh chéanna, nuair a dhéanaimid rud éigin agus uaireanta ní mór dúinn fanacht ar feadh 10 nóiméad.

Ní rachainn rófhada go fóill, fiú dá mbeadh uath-thiomsú againn. De ghnáth, is luachanna maith iad luachanna cosúil le 64, 100 ghigibheart. Uaireanta is fiú fiú níos lú a roghnú. Go ginearálta, is eolaíocht subtle é seo.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Chun atriallta a dhéanamh, mar shampla, max_wal_size = 1, 8, ní mór duit an oibríocht mais a dhéanamh arís agus arís eile. Rinne tú é. Agus ar an mbonn céanna is mian leat é a dhéanamh arís, ach tá gach rud scriosta agat cheana féin. Cad atá le déanamh?

Labhróidh mé níos déanaí faoinár réiteach, cad a dhéanaimid chun athrá a dhéanamh i gcásanna den sórt sin. Agus is é seo an cur chuige is ceart.

Ach sa chás seo, bhí an t-ádh linn. Más rud é, mar a deir sé anseo "TÚS, SÍOS, ROLLBACK", ansin is féidir linn a athdhéanamh SCRÍOBH. Is é sin, má chuireamar ar ceal é féin, ansin is féidir linn é a dhéanamh arís. Agus go fisiciúil agatsa beidh na sonraí suite san áit chéanna. Ní fhaigheann tú aon bloat fiú. Is féidir leat atriall thar a leithéid de DELETEs.

Tá an Scrios seo le ROLLBACK oiriúnach le haghaidh tiúnadh seicphointí, fiú mura bhfuil saotharlanna bunachar sonraí atá imlonnaithe i gceart agat.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Rinneamar pláta le colún amháin "i". Tá colúin áirgiúlachta ag Postgres. Tá siad dofheicthe mura n-iarrtar go sonrach orthu. Is iad seo: ctid, xmid, xmax.

Is seoladh fisiceach é Ctid. Leathanach nialais, an chéad tuple ar an leathanach.

Is féidir a fheiceáil gur fhan an tuple san áit chéanna tar éis ROOLBACK. Is é sin, is féidir linn iarracht a dhéanamh arís, beidh sé féin a iompar ar an mbealach céanna. Is é seo an rud is mó.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Is é Xmax am báis an tuple. Rinneadh é a stampáil, ach tá a fhios ag Postgres go ndearnadh an t-idirbheart a rolladh ar ais, mar sin is cuma má tá sé 0 nó más idirbheart rollta siar é. Tugann sé seo le tuiscint gur féidir atriall thar DELETE agus seiceáil a dhéanamh ar oibríochtaí mórchóir iompraíochta an chórais. Is féidir leat saotharlanna bunachar sonraí a dhéanamh do na boicht.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Tá sé seo faoi ríomhchláraitheoirí. Maidir le DBA, freisin, bíonn siad i gcónaí ag magadh ar ríomhchláraitheoirí as seo: “Cén fáth a bhfuil oibríochtaí fada agus deacra á ndéanamh agat?”. Is ábhar ingearach iomlán difriúil é seo. Bhíodh riarachán ann, agus anois beidh forbairt ann.

Ar ndóigh, nach bhfuil muid briste i bpíosaí. Tá sé soiléir. Tá sé dodhéanta gan a leithéid de DELETE a bhriseadh ar feadh carn de na milliúin línte i gcodanna. Déanfar é ar feadh 20 nóiméad, agus luífidh gach rud síos. Ach, ar an drochuair, déanann fiú forbróirí a bhfuil taithí acu botúin, fiú i gcuideachtaí an-mhór.

Cén fáth a bhfuil sé tábhachtach briseadh?

  • Má fheiceann muid go bhfuil an diosca crua, ansin déanaimis é a mhoilliú. Agus má tá muid briste, ansin is féidir linn a chur sosanna, is féidir linn a mhoilliú throttling.

  • Agus ní chuirfimid bac ar dhaoine eile ar feadh i bhfad. I gcásanna áirithe is cuma, má tá tú ag scriosadh truflais fíor nach bhfuil aon duine ag obair air, ansin is dóichí nach gcuirfidh tú bac ar dhuine ar bith ach amháin an obair uathoibríoch, mar fanfaidh sé go gcríochnófar an t-idirbheart. Ach má bhaineann tú rud éigin a d'fhéadfadh duine eile a iarraidh, ansin cuirfear bac orthu, beidh imoibriú slabhra de shaghas éigin ann. Ba cheart idirbhearta fada a sheachaint ar shuíomhanna gréasáin agus ar fheidhmchláir shoghluaiste.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Tá sé seo suimiúil. Feicim go minic go n-iarrann forbróirí: "Cén méid pacáiste ba cheart dom a roghnú?".

Tá sé soiléir dá mhéad méid an chuachta, is lú an forchostas idirbhirt, i.e., an forchostas breise ó idirbhearta. Ach ag an am céanna, méadaíonn an t-am don idirbheart seo.

Tá riail an-simplí agam: tóg oiread agus is féidir leat, ach ná téigh thar earraí inrite in aghaidh an tsoicind.

Cén fáth soicind? Tá an míniú an-simplí agus intuigthe do gach duine, fiú daoine neamhtheicniúla. Feicimid imoibriú. Tógaimis 50 milleasoicind. Má tá rud éigin athraithe, ansin beidh ár súl ag freagairt. Más lú, ansin níos deacra. Má fhreagraíonn rud éigin tar éis 100 milleasoicind, mar shampla, chliceáil tú ar an luch, agus d'fhreagair sé tú tar éis 100 milleasoicindí, mothaíonn tú an mhoill bheag seo cheana féin. Breathnaítear ar an dara ceann cheana féin mar choscáin.

Dá réir sin, má bhriseann muid ár n-oibríochtaí mais i bpléascanna 10-soicind, ansin tá an baol ann go gcuirfimid bac ar dhuine. Agus oibreoidh sé ar feadh cúpla soicind, agus tabharfaidh daoine faoi deara cheana féin é. Mar sin, is fearr liom gan níos mó ná soicind a dhéanamh. Ach ag an am céanna, ná é a bhriseadh suas go mín, mar go mbeidh an t-idirbheart forchostais a bheith faoi deara. Beidh an bonn níos deacra, agus d'fhéadfadh fadhbanna éagsúla eile teacht chun cinn.

Roghnaimid méid an phacáiste. I ngach cás, is féidir linn é a dhéanamh ar bhealach difriúil. Is féidir é a uathoibriú. Agus táimid cinnte faoi éifeachtúlacht próiseála pacáiste amháin. Is é sin le rá, déanaimid SCRÍOFA de phacáiste amháin nó NUASHONRUITHE.

Dála an scéil, ní hamháin go bhfuil gach rud a bhfuilim ag caint faoi DELETE. Mar a rinne tú buille faoi thuairim, is aon olloibríochtaí iad seo ar shonraí.

Agus feicimid go bhfuil an plean ar fheabhas. Is féidir leat an scanadh innéacs a fheiceáil, tá scanadh innéacs amháin níos fearr fós. Agus tá méid beag sonraí i gceist. Agus comhlíonann níos lú ná soicind. Sár.

Agus ní mór dúinn a chinntiú go fóill nach bhfuil aon díghrádú ann. Tarlaíonn sé go n-oibríonn na chéad phacáistí amach go tapa, agus ansin bíonn sé níos measa, níos measa agus níos measa. Tá an próiseas den sórt sin gur gá duit a thástáil go leor. Is é seo go díreach cad atá i saotharlanna bunachar sonraí.

Agus ní mór dúinn fós rud éigin a ullmhú ionas go ligfidh sé dúinn é seo a leanúint i gceart i dtáirgeadh. Mar shampla, is féidir linn an t-am a scríobh sa logáil, is féidir linn a scríobh cá bhfuil muid anois agus cé atá scriosta againn anois. Agus ligfidh sé seo dúinn tuiscint a fháil ar cad atá ag tarlú níos déanaí. Agus i gcás go dtéann rud éigin mícheart, faigh an fhadhb go tapa.

Más gá dúinn éifeachtacht na n-iarratas a sheiceáil agus go gcaithfimid athrá a dhéanamh go minic, tá a leithéid de rud ann agus bot eile. Tá sé réidh cheana féin. Úsáideann mórán forbróirí é go laethúil. Agus tá a fhios aige conas bunachar sonraí terabyte ollmhór a thabhairt ar iarratas i 30 soicind, do chóip féin. Agus is féidir leat rud éigin a scriosadh ansin agus athshocrú a rá, agus é a scriosadh arís. Is féidir leat triail a bhaint as ar an mbealach seo. Feicim todhchaí don rud seo. Agus tá sé á dhéanamh againn cheana féin.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Cad iad straitéisí deighilte? Feicim 3 straitéis deighilte éagsúla atá á n-úsáid ag na forbróirí ar an bpacáiste.

Tá an chéad cheann an-simplí. Tá ID uimhriúil againn. Agus déanaimis é a bhriseadh síos i dtréimhsí éagsúla agus oibriú leis sin. Tá an míbhuntáiste soiléir. Sa chéad deighleog, is féidir linn a bheith 100 línte de truflais fíor, sa dara 5 línte nó nach bhfuil ar chor ar bith, nó beidh gach 1 línte dul amach a bheith truflais. Obair an-mhíchothrom, ach tá sé éasca a bhriseadh. Thóg siad an ID uasta agus smashed é. Is cur chuige naive é seo.

Is cur chuige cothromaithe an dara straitéis. Úsáidtear é i Gitlab. Thóg siad agus scanadh siad an tábla. Fuaireamar teorainneacha na bpacáistí aitheantais ionas go raibh 10 taifead díreach ag gach paca. Agus iad a chur i scuaine. Agus ansin déanaimid próiseáil. Is féidir leat é seo a dhéanamh i snáitheanna éagsúla.

Sa chéad straitéis, freisin, dála an scéil, is féidir leat é seo a dhéanamh i snáitheanna éagsúla. Níl sé deacair.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

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

Ach tá cur chuige níos fuaire agus níos fearr. Is é seo an tríú straitéis. Agus nuair is féidir, is fearr é a roghnú. Déanaimid é seo ar bhonn innéacs speisialta. Sa chás seo, is dóichí go mbeidh sé ina innéacs de réir ár riocht truflais agus ár ID. Cuirfimid an ID san áireamh ionas gur scanadh innéacs amháin atá ann ionas nach rachaimid chuig an gcarn.

Go ginearálta, bíonn scanadh innéacs amháin níos tapúla ná scanadh innéacs.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Agus aimsímid go tapa ár n-aitheantais a theastaíonn uainn a bhaint. BATCH_SIZE a roghnóimid roimh ré. Agus ní hamháin go bhfaigheann muid iad, faigheann muid iad ar bhealach speisialta agus hack láithreach iad. Ach táimid ag glasáil ionas go má tá siad faoi ghlas cheana féin, ní dhéanaimid glas orthu, ach bogadh ar aghaidh agus na cinn eile a ghlacadh. Tá sé seo le haghaidh scipeáil nuashonraithe faoi ghlas. Ligeann an sárghné seo de Postgres dúinn oibriú i roinnt snáitheanna más mian linn. Is féidir i sruth amháin. Agus anseo tá CTE - tá sé seo iarratas amháin. Agus tá fíor-scriosadh againn ar siúl sa dara hurlár den CTE seo - returning *. Is féidir leat id ar ais, ach tá sé níos fearr *mura bhfuil mórán sonraí agat ar gach líne.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Cén fáth a bhfuil sé de dhíth orainn? Is é seo a chaithfimid a thuairisciú ar ais. Tá an oiread sin línte scriosta againn anois i ndáiríre. Agus tá teorainneacha againn le haitheantas nó le created_at mar seo. Is féidir leat min, max. Is féidir rud éigin eile a dhéanamh. Is féidir leat a lán rudaí a dhéanamh anseo. Agus tá sé an-áisiúil le haghaidh monatóireachta.

Tá nóta amháin eile ann faoin innéacs. Má shocraímid go bhfuil innéacs speisialta ag teastáil uainn don tasc seo, ansin ní mór dúinn a chinntiú nach millfidh sé ach nuashonruithe tuples. Is é sin, tá staitisticí den sórt sin ag Postgres. Is féidir é seo a fheiceáil i pg_stat_user_tables do do tábla. Is féidir leat a fheiceáil an bhfuil nuashonruithe te á n-úsáid nó nach bhfuil.

Tá cásanna ann nuair is féidir le d'innéacs nua iad a ghearradh amach. Agus tá na nuashonruithe eile go léir agat atá ag obair cheana féin, mall síos. Ní hamháin mar gheall ar chuma an t-innéacs (moill ar gach innéacs nuashonruithe beagán, ach beagán), ach anseo scriosann sé fós é. Agus tá sé dodhéanta leas iomlán a bhaint speisialta a dhéanamh don tábla seo. Tarlaíonn sé seo uaireanta. Seo subtlety den sórt sin gur beag daoine cuimhneamh. Agus is furasta céim a chur ar an raca seo. Uaireanta tarlaíonn sé go gcaithfidh tú cur chuige a aimsiú ón taobh eile agus fós a dhéanamh gan an t-innéacs nua seo, nó innéacs eile a dhéanamh, nó ar bhealach éigin eile, mar shampla, is féidir leat an dara modh a úsáid.

Ach is é seo an straitéis is fearr, conas a roinnt i mbaisceanna agus shoot i mbaisceanna le haon iarratas amháin, a scriosadh beagán, etc.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Idirbhearta fada https://gitlab.com/snippets/1890447

Uathfholús bactha - https://gitlab.com/snippets/1889668

fadhb blocála - https://gitlab.com/snippets/1890428

Is mór an botún é #5. Labhair Nikolai ó Okmeter faoi mhonatóireacht Postgres. Ar an drochuair, níl monatóireacht Ideal Postgres ann. Tá cuid acu níos dlúithe, tá cuid eile níos faide. Tá okmeter gar go leor le bheith foirfe, ach tá go leor in easnamh agus ní mór é a chur leis. Ní mór duit a bheith réidh le haghaidh seo.

Mar shampla, is fearr monatóireacht a dhéanamh ar thuples marbh. Má tá a lán rudaí marbh agat sa tábla, tá rud éigin mícheart. Is fearr freagairt anois, nó d'fhéadfadh díghrádú a bheith ann, agus is féidir linn luí síos. Tarlaíonn sé.

Má tá IO mór, ansin tá sé soiléir nach bhfuil sé seo go maith.

Idirbhearta fada freisin. Níor cheart idirbhearta fada a cheadú ar OLTP. Agus seo nasc chuig blúire a ligeann duit an píosa seo a ghlacadh agus roinnt rianú a dhéanamh ar idirbhearta fada cheana féin.

Cén fáth a bhfuil idirbhearta fada go dona? Toisc go mbeidh na glais a scaoileadh ach amháin ag an deireadh. Agus scriú muid gach duine. Ina theannta sin, cuirimid bac ar uathfholús do gach tábla. Níl sé go maith ar chor ar bith. Fiú má tá fuireachas te cumasaithe agat ar an macasamhail, tá sé go dona fós. Go ginearálta, níl áit ar bith níos fearr chun idirbhearta fada a sheachaint.

Má tá go leor táblaí againn nach bhfuil bhfolús orthu, ní mór dúinn foláireamh a bheith againn. Anseo is féidir a leithéid de chás. Is féidir linn cur isteach go hindíreach ar oibriú autovacuum. Seo blúire ó Avito, a d’fheabhsaigh mé beagán. Agus d'éirigh sé amach a bheith ina uirlis suimiúil a fheiceáil cad atá againn le autovacuum. Mar shampla, tá roinnt táblaí ag fanacht ann agus ní bheidh siad ag fanacht ar a seal. Ní mór duit freisin é a chur i monatóireacht agus foláireamh a bheith agat.

Agus eisíonn sé bloic. Foraoise na gcrann bloc. Is maith liom rud éigin a ghlacadh ó dhuine éigin agus é a fheabhsú. Anseo, ghlac Data Egret CTE athfhillteach fionnuar a thaispeánann foraois de chrainn ghlas. Is uirlis dhiagnóiseach mhaith é seo. Agus ar a bhonn, is féidir leat monatóireacht a thógáil freisin. Ach ní mór é seo a dhéanamh go cúramach. Ní mór duit ráiteas_ama beag a dhéanamh duit féin. Agus tá lock_timeout inmhianaithe.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Uaireanta tarlaíonn na hearráidí seo go léir go hachomair.

I mo thuairimse, is é an botún is mó anseo ná eagraíochtúil. Tá sé eagraíochtúil, toisc nach bhfuil an teicníc ag tarraingt. Is é seo uimhir 2 - sheiceáil siad san áit mícheart.

Rinneamar seiceáil san áit mícheart, toisc nach raibh clón táirgeachta againn, atá éasca le seiceáil. D’fhéadfadh sé nach mbeadh rochtain ag forbróir ar tháirgeadh ar chor ar bith.

Agus ní sheiceáil muid ann. Dá mbeadh seiceáil déanta againn ann, bheadh ​​sé feicthe againn féin. Chonaic an forbróir go léir fiú gan DBA má sheiceáil sé é i dtimpeallacht mhaith, áit a bhfuil an méid céanna sonraí agus suíomh comhionann. Bheadh ​​​​an díghrádú seo go léir feicthe aige agus bheadh ​​náire air.

Tuilleadh faoi autovacuum. Tar éis dúinn scuabadh ollmhór de roinnt milliún línte a dhéanamh, ní mór dúinn fós REPACK a dhéanamh. Tá sé seo tábhachtach go háirithe maidir le hinnéacsanna. Mothóidh siad go dona tar éis dúinn gach rud a ghlanadh ann.

Agus más mian leat an obair ghlantacháin laethúil a thabhairt ar ais, mholfainn é a dhéanamh níos minice, ach níos lú. Is féidir é a bheith uair amháin sa nóiméad nó fiú níos minice beagán. Agus ní mór duit monatóireacht a dhéanamh ar dhá rud: nach bhfuil aon earráidí ag an rud seo agus nach bhfuil sé taobh thiar de. Ní dhéanfaidh an cleas a léirigh mé ach é seo a réiteach.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Is é an rud a dhéanaimid ná foinse oscailte. Tá sé postáilte ar GitLab. Agus déanaimid é ionas gur féidir le daoine seiceáil fiú gan DBA. Tá saotharlann bunachar sonraí á dhéanamh againn, is é sin, tugaimid an bhunchomhpháirt ar a bhfuil Joe ag obair faoi láthair. Agus is féidir leat cóip de tháirgeadh a grab. Anois go bhfuil Joe for slack á chur i bhfeidhm, is féidir leat a rá ansin: “mínigh a leithéid d’iarratas” agus faigh an toradh láithreach ar do chóip den bhunachar sonraí. Is féidir leat a scriosadh fiú ann, agus ní bheidh aon duine faoi deara é.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Ligean le rá go bhfuil tú 10 terabytes, a dhéanamh linn saotharlainne bunachar sonraí freisin 10 terabytes. Agus le bunachair shonraí comhuaineacha 10 terabyte, is féidir le 10 bhforbróir oibriú go comhuaineach. Is féidir le gach duine a dhéanamh cad ba mhaith leo. Is féidir a scriosadh, titim, etc Sin a leithéid de Fantasy. Labhróidh muid faoi seo amárach.

A chara DELETE. Nikolay Samokhvalov (Postgres.ai)

Tugtar soláthar tanaí air seo. Is soláthar caolchúiseach é seo. Is fantaisíocht de chineál éigin é seo a chuireann deireadh go mór le moilleanna forbartha, i dtástáil agus a dhéanann áit níos fearr don domhan maidir leis seo. Is é sin le rá go gceadaíonn sé duit fadhbanna le mór-oibríochtaí a sheachaint.

Sampla: 5 bunachar terabyte, ag fáil cóip i níos lú ná 30 soicind. Agus ní fiú ag brath ar an méid, is é sin, níl sé cuma cé mhéad terabytes.

Sa lá atá inniu is féidir leat dul go dtí postgres.ai agus tochailt isteach inár n-uirlisí. Is féidir leat clárú chun a fheiceáil cad atá ann. Is féidir leat an bot seo a shuiteáil. Tá sé saor. Scríobh.

ceisteanna

Go minic i gcásanna fíor tharlaíonn sé go raibh na sonraí ba chóir fanacht sa tábla i bhfad níos lú ná an méid is gá a scriosadh. Is é sin, i gcás den sórt sin, is minic a bhíonn sé níos éasca cur chuige den sórt sin a chur i bhfeidhm, nuair a bhíonn sé níos éasca rud nua a chruthú, gan ach na sonraí riachtanacha a chóipeáil ann, agus an sean tábla a thrasnú. Is léir go bhfuil gá le cur chuige clárach don nóiméad seo, agus tú ag aistriú. Conas atá an cur chuige seo?

Is cur chuige an-mhaith é seo agus tasc an-mhaith. Tá sé an-chosúil leis an méid a dhéanann pg_repack, tá sé an-chosúil leis an méid a chaithfidh tú a dhéanamh nuair a dhéanann tú IDanna 4 bytes. Rinne go leor creataí é seo cúpla bliain ó shin, agus níl ach na plátaí tar éis fás suas, agus ní mór iad a thiontú go 8 bytes.

Tá an tasc seo deacair go leor. Rinneamar é. Agus caithfidh tú a bheith an-chúramach. Tá glais, srl Ach tá sé á dhéanamh. Is é sin, is é an cur chuige caighdeánach ná dul le pg_repack. Dearbhaíonn tú lipéad den sórt sin. Agus sula dtosaíonn tú ag uaslódáil sonraí seat isteach ann, dearbhaíonn tú freisin pláta amháin a rianaíonn gach athrú. Tá cleas ann nach féidir leat roinnt athruithe a rianú fiú. Tá subtleties. Agus ansin aistríonn tú trí athruithe rollta. Beidh sos gairid ann nuair a dhúnfaimid gach duine síos, ach go ginearálta tá sé seo á dhéanamh.

Má fhéachann tú ar pg_repack ar GitHub, ansin, nuair a bhí tasc ann ID a thiontú ó int 4 go int 8, bhí smaoineamh ann pg_repack féin a úsáid. Tá sé seo indéanta freisin, ach tá sé beagán de hack, ach beidh sé ag obair le haghaidh seo freisin. Is féidir leat idirghabháil a dhéanamh sa truicear a úsáideann pg_repack agus a rá ann: "Níl na sonraí seo de dhíth orainn", i.e. ní aistrímid ach a bhfuil de dhíth orainn. Agus ansin lasca sé díreach agus sin é.

Leis an gcur chuige seo, faigheann muid an dara cóip den tábla fós, ina bhfuil na sonraí innéacsaithe cheana féin agus cruachta go han-chothrom le hinnéacsanna áille.

Níl bloat i láthair, is cur chuige maith é. Ach tá a fhios agam go bhfuil iarrachtaí ar bun chun uathoibriú a fhorbairt chuige seo, i.e. réiteach uilíoch a dhéanamh. Is féidir liom tú a chur i dteagmháil leis an uathoibriú seo. Tá sé scríofa i Python, rud maith é.

Níl mé ach beagán ó shaol MySQL, mar sin tháinig mé chun éisteacht. Agus bainimid úsáid as an gcur chuige seo.

Ach níl ann ach má tá 90% againn. Má tá 5% againn, ansin níl sé an-mhaith é a úsáid.

Go raibh maith agat as an tuairisc! Mura bhfuil acmhainní ann chun cóip iomlán de tháirgí a dhéanamh, an bhfuil aon algartam nó foirmle ann chun an t-ualach nó an méid a ríomh?

Ceist mhaith. Go dtí seo, táimid in ann bunachair shonraí il-terabyte a aimsiú. Fiú mura bhfuil na crua-earraí mar an gcéanna, mar shampla, níl níos lú cuimhne, níos lú próiseálaí agus dioscaí díreach mar an gcéanna, ach fós déanaimid é. Mura bhfuil áit ar bith ann, ní mór duit smaoineamh. Lig dom smaoineamh go dtí amárach, tháinig tú, beidh muid ag caint, tá sé seo ceist mhaith.

Go raibh maith agat as an tuairisc! Thosaigh tú ar dtús mar gheall ar an bhfíric go bhfuil Postgres fionnuar, a bhfuil teorainneacha den sórt sin agus den sórt sin, ach tá sé ag forbairt. Agus tá sé seo go léir crutch tríd is tríd. Nach bhfuil sé seo go léir ag teacht salach ar fhorbairt Postgres féin, ina mbeidh roinnt delighters deferent le feiceáil nó rud éigin eile ba chóir a choinneáil ar leibhéal íseal cad atá muid ag iarraidh a smearaidh le roinnt dár modhanna aisteach anseo?

Má dúirt muid i SQL go leor taifead a scriosadh nó a nuashonrú in idirbheart amháin, ansin conas is féidir Postgres a dháileadh ann? Táimid teoranta ó thaobh oibríochtaí de. Déanfaimid fós é ar feadh i bhfad. Agus cuirfimid glas ar an am seo, etc.

Arna dhéanamh le hinnéacsanna.

Is féidir liom glacadh leis go bhféadfaí an tiúnadh seicphointe céanna a uathoibriú. Lá éigin d’fhéadfadh sé a bheith. Ach ansin ní thuigim an cheist i ndáiríre.

Is í an cheist, an bhfuil a leithéid de veicteoir forbartha a théann anseo agus ansiúd, agus anseo a théann mise comhthreomhar? Iad siúd. Nár smaoinigh siad air go fóill?

Labhair mé faoi na prionsabail is féidir a úsáid anois. Tá bot eile ann Nancy, leis seo is féidir leat tiúnadh seicphointe uathoibrithe a dhéanamh. An mbeidh sé i Postgres lá éigin? Níl a fhios agam, níl sé fiú pléite fós. Táimid fós i bhfad uaidh sin. Ach tá eolaithe ann a dhéanann córais nua. Agus chuir siad isteach innéacsanna uathoibríocha sinn. Tá forbairtí ann. Mar shampla, is féidir leat breathnú ar thiúnta uathoibríoch. Roghnaíonn sé paraiméadair go huathoibríoch. Ach ní dhéanfaidh sé tiúnadh seicphointe duit go fóill. Is é sin, beidh sé ag piocadh suas le haghaidh feidhmíochta, maolán bhlaosc, etc.

Agus le haghaidh tiúnadh seicphointe, is féidir leat é seo a dhéanamh: má tá míle braisle agus crua-earraí éagsúla agat, meaisíní fíorúla éagsúla sa scamall, is féidir leat ár bot a úsáid Nancy uathoibriú a dhéanamh. Agus roghnófar max_wal_size de réir do shocruithe sprice go huathoibríoch. Ach go dtí seo níl sé seo gar fiú sa chroílár, ar an drochuair.

Tráthnóna maith Labhair tú faoi na contúirtí a bhaineann le hidirbhearta fada. Dúirt tú go bhfuil bac ar uathfholús i gcás scriosta. Conas eile a dhéanann sé dochar dúinn? Toisc go bhfuil muid ag caint níos mó faoi spás a shaoradh agus a bheith in ann é a úsáid. Cad eile atá in easnamh orainn?

B'fhéidir nach é Autovacuum an fhadhb is mó anseo. Agus ar an bhfíric gur féidir le hidirbheart fada idirbhearta eile a ghlasáil, tá an fhéidearthacht seo níos contúirtí. Féadfaidh sí nó ní fhéadfaidh sí teacht le chéile. Má bhuail sí, ansin is féidir é a bheith an-dona. Agus le autovacuum - is fadhb é seo freisin. Tá dhá fhadhb ann le hidirbhearta fada in OLTP: glais agus uathfholús. Agus má tá aiseolas te ar fuireachas cumasaithe agat ar an macasamhail, gheobhaidh tú glas uathoibríoch fós ar an máistir, tiocfaidh sé ón macasamhail. Ach ar a laghad ní bheidh aon glais ann. Agus beidh loks ann. Táimid ag caint faoi athruithe sonraí, mar sin is pointe tábhachtach iad glais anseo. Agus má tá sé seo go léir ar feadh i bhfad, fada, ansin tá idirbhearta níos mó agus níos mó faoi ghlas. Is féidir leo daoine eile a ghoid. Agus feictear crainn lok. Chuir mé nasc ar fáil don bhlúire. Agus éiríonn an fhadhb seo níos suntasaí níos tapúla ná an fhadhb le autovacuum, is féidir a charnadh ach amháin.

Go raibh maith agat as an tuairisc! Chuir tú tús le do thuairisc trína rá go ndearna tú tástáil mícheart. Leanamar ar aghaidh lenár smaoineamh go gcaithfimid an trealamh céanna a ghlacadh, leis an mbonn ar an mbealach céanna. Ligean le rá thugamar bonn don fhorbróir. Agus chomhlíon sé an t-iarratas. Agus is cosúil go bhfuil sé ceart go leor. Ach ní dhéanann sé seiceáil le haghaidh beo, ach le haghaidh beo, mar shampla, ní mór dúinn ualach de 60-70%. Agus fiú má úsáidimid an tiúnadh seo, ní oibríonn sé go han-mhaith.

Tá sé tábhachtach saineolaí a bheith ar an bhfoireann agus saineolaithe DBA a úsáid ar féidir leo a thuar cad a tharlóidh le fíorualach cúlra. Nuair a thiomáin muid díreach ár n-athruithe glan, feicimid an pictiúr. Ach cur chuige níos forbartha, nuair a rinne muid an rud céanna arís, ach le ualach insamhladh le táirgeadh. Tá sé fionnuar go leor. Go dtí sin, caithfidh tú fás suas. Tá sé cosúil le duine fásta. Ní dhearnamar ach féachaint ar a bhfuil againn agus freisin féachaint an bhfuil go leor acmhainní againn. Sin ceist mhaith.

Nuair a bhíonn truflais á roghnú againn cheana féin agus tá, mar shampla, bratach scriosta againn

Is é seo a dhéanann autovacuum go huathoibríoch i Postgres.

Ó, a dhéanann sé é?

Is é Autovacuum an bailitheoir truflais.

Go raibh maith agat!

Go raibh maith agat as an tuairisc! An bhfuil rogha ann bunachar sonraí a dhearadh láithreach le deighilt ar bhealach a fhágann go n-éireoidh an truflais go léir salach ón bpríomhthábla áit éigin go dtí an taobh?

Ar ndóigh tá.

An féidir mar sin sinn féin a chosaint má tá bord faoi ghlas againn nár cheart a úsáid?

Ar ndóigh tá. Ach tá sé cosúil le ceist sicín agus uibheacha. Má tá a fhios againn go léir cad a tharlóidh sa todhchaí, ansin, ar ndóigh, déanfaimid gach rud fionnuar. Ach tá an gnó ag athrú, tá colúin nua, iarratais nua. Agus ansin – oops, ba mhaith linn é a bhaint di. Ach an staid idéalach, i saol a tharlaíonn sé, ach ní i gcónaí. Ach ar an iomlán is smaoineamh maith é. Just a teascadh agus sin é.

Foinse: will.com

Add a comment