Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Sengoloa sa puo ea Bruce Momjian ea 2020 "Ho notlolla Motsamaisi oa Lock ea Postgres".

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

(Tlhokomeliso: Lipotso tsohle tsa SQL ho li-slide li ka fumanoa sehokelong sena: http://momjian.us/main/writings/pgsql/locking.sql)

Lumela! Ho monate ho ba mona Russia hape. Ke masoabi hore ebe ha kea khona ho tla selemong se fetileng, empa selemong sena 'na le Ivan re na le merero e meholo. Ke tšepa ho ba mona hangata ho feta. Ke rata ho tla Russia. Ke tla etela Tyumen, Tver. Ke thabile haholo hore ebe ke tla khona ho etela litoropo tsena.

Lebitso la ka ke Bruce Momjian. Ke sebetsa ho EnterpriseDB mme esale ke sebetsa le Postgres ka lilemo tse fetang 23. Ke lula Philadelphia, USA. Ke tsamaea matsatsi a ka bang 90 ka selemo. 'Me ke ea likopanong tse ka bang 40. Ea ka Webosaete, e nang le li-slide tseo ke tla u bontša tsona hona joale. Ka hona, ka mor'a seboka u ka li kopitsa ho websaeteng ea ka ea botho. E boetse e na le linehelano tse ka bang 30. Hape ho na le livideo le palo e kholo ea li-blog tse kentsoeng, tse fetang 500. Ena ke mohloli o nang le tsebo e nepahetseng. 'Me haeba u thahasella boitsebiso bona, joale ke u mema hore u bo sebelise.

Ke ne ke le mosuoe, moprofesa pele ke qala ho sebetsa le Postgres. Mme ke thabile haholo hore ebe jwale ke tla kgona ho le bolella seo ke tla tloha ke le bolella sona. Ena ke e 'ngoe ea linehelano tsa ka tse khahlisang haholo. 'Me tlhahiso ena e na le li-slide tse 110. Re tla qala ho bua ka lintho tse bonolo, 'me qetellong tlaleho e tla ba e rarahaneng le ho feta,' me e tla ba e rarahaneng haholo.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ena ke moqoqo o seng monate. Ho thibela ha se taba e tsebahalang haholo. Re batla hore sena se nyamele kae-kae. Ho tšoana le ho ea ngakeng ea meno.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

  1. Ho notlela ke bothata ho batho ba bangata ba sebetsang litsing tsa polokelo ea litaba mme ba na le lits'ebetso tse ngata tse sebetsang ka nako e le 'ngoe. Ba hloka ho thibela. Ke hore, kajeno ke tla u fa tsebo ea motheo mabapi le ho thibela.
  2. Li-ID tsa transaction. Ena ke karolo e tenang ea nehelano, empa e hloka ho utloisisoa.
  3. E latelang re tla bua ka mefuta ea ho thibela. Ena ke karolo e sebetsang hantle.
  4. 'Me ka tlase re tla fana ka mehlala e meng ea ho thibela. 'Me ho tla ba thata haholo ho utloisisa.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ha re bue ka ho thibela.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mareo a rona a rarahane haholo. Ke ba bakae ba lona ba tsebang moo temana ena e hlahang teng? Batho ba babeli. Sena se tsoa papaling e bitsoang Colossal Cave Adventure. E ne e le papali ea khomphutha e thehiloeng ho mongolo lilemong tsa bo-80, ke nahana. Ha u le moo u ne u tlameha ho kena ka lehaheng, ka labyrinth, 'me mongolo oa fetoha, empa litaba li ne li batla li tšoana nako le nako. Ke kamoo ke hopolang papali ena.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me mona re bona lebitso la liloko tse tlileng ho rona ho tsoa Oracle. Re li sebelisa.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mona re bona mantsoe a mpherekanya. Ka mohlala, SHARE UPDATE EXXLUSIVE. E latelang Abelana RAW EXXLUSIVE. Ho bua 'nete, mabitso ana ha a hlake hantle. Re tla leka ho li hlahloba ka botlalo. A mang a na le lentsoe “karolelano”, le bolelang ho arohana. Tse ling li na le lentsoe "exclusive". A mang a na le mantsoe ana ka bobeli. Ke kopa ho qala ka hore na liloko tsena li sebetsa joang.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me lentsoe "phihlello" le lona le bohlokoa haholo. 'Me mantsoe "mola" ke khoele. Ke hore access distribution, row distribution.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Taba e 'ngoe e hlokang ho utloisisoa ho Postgres, eo ka bomalimabe nke keng ka khona ho e bua puong ea ka, ke MVCC. Ke na le nehelano e arohaneng ka sehlooho sena webosaeteng ea ka. 'Me haeba u nahana hore tlhahiso ena e thata, mohlomong MVCC ke eona e thata ka ho fetisisa. 'Me haeba u thahasella, u ka e shebella webosaeteng. U ka shebella video.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ntho e 'ngoe eo re lokelang ho e utloisisa ke li-ID tsa transaction. Lichelete tse ngata li ke ke tsa sebetsa ntle le li-identifiers tse ikhethang. Mona re na le tlhaloso ea hore na transaction ke eng. Postgres e na le litsamaiso tse peli tsa linomoro tsa transaction. Kea tseba hore sena ha se tharollo e ntle haholo.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Hape hopola hore li-slide li tla ba thata ho utloisisa, kahoo se totobalitsoeng ka bofubelu ke seo u lokelang ho se ela hloko.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

http://momjian.us/main/writings/pgsql/locking.sql

Ha re bone. Nomoro ea khoebo e totobalitsoe ka bofubelu. Mosebetsi oa KHETHA pg_back o bontšoa mona. E khutlisa transaction ea ka le ID ea transaction.

Ntho e 'ngoe hape, haeba u rata tlhahiso ena 'me u batla ho e tsamaisa ho database ea hau, joale u ka ea sehokelong sena ka pinki ebe u khoasolla SQL bakeng sa nehelano ena. Mme o ka e tsamaisa feela ho PSQL ea hau mme nehelano eohle e tla ba skrineng sa hau hanghang. E ke ke ea ba le lipalesa, empa bonyane re ka e bona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Tabeng ena re bona ID ea transaction. Ena ke nomoro eo re ileng ra mo abela eona. Hape ho na le mofuta o mong oa ID ea transaction ho Postgres, e bitsoang ID ea transaction ea sebele

Mme re lokela ho utlwisisa sena. Sena se bohlokoa haholo, ho seng joalo re ke ke ra khona ho utloisisa ho notlela Postgres.

ID ea transaction ea sebele ke ID ea transaction e se nang litekanyetso tse phehellang. Mohlala, haeba ke tsamaisa taelo ea KHETHA, mohlomong nke ke ka fetola database, nke ke ka notlela letho. Kahoo ha re tsamaisa KHETHA e bonolo, ha re fe transaction eo ID e phehellang. Re mo fa ID feela moo.

'Me sena se ntlafatsa ts'ebetso ea Postgres, se ntlafatsa bokhoni ba ho hloekisa, kahoo ID ea transaction ea sebele e na le linomoro tse peli. Nomoro ea pele pele ho slash ke ID ea backend. Mme ka ho le letona re bona khaontara feela.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ka hona, haeba ke tsamaisa kopo, e re ID ea backend ke 2.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me haeba ke tsamaisa letoto la litšebelisano tse joalo, joale rea bona hore counter e eketseha nako le nako ha ke botsa potso. Ka mohlala, ha ke botsa 2/10, 2/11, 2/12, joalo-joalo.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Hopola hore ho na le litšiea tse peli mona. Ka ho le letšehali re bona ID ea transaction e fumanehang - 2/12. Mme ka ho le letona re na le ID ea transaction e sa feleng. Mme lebala lena ha le na letho. 'Me transaction ena ha e fetole database. Kahoo ha ke e fe ID ea transaction e sa feleng.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Hang ha ke tsamaisa taelo ea ho sekaseka ((ANALYZE)), potso e tšoanang e mpha ID ea transaction e sa feleng. Sheba kamoo sena se fetohileng kateng ho rona. Ke ne ke se na ID ena pele, empa joale ke na le eona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Kahoo kopo e 'ngoe ke ena, transaction e' ngoe. Nomoro ea nnete ea transaction ke 2/13. 'Me haeba ke kopa ID e tsitsitseng ea transaction, joale ha ke botsa potso, ke tla e fumana.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Kahoo, nako e 'ngoe hape. Re na le ID ea transaction le ID e phehellang ea transaction. Utloisisa ntlha ena feela ho utloisisa boitšoaro ba Postgres.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Re fetela karolong ea boraro. Mona re tla tsamaea feela ka mefuta e fapaneng ea liloko ho Postgres. Ha e thahaselle haholo. Karolo ea ho qetela e tla thahasellisa haholo. Empa re lokela ho nahana ka lintho tsa motheo, hobane ho seng joalo re ke ke ra utloisisa se tla etsahala ka mor’a moo.

Re tla feta karolong ena, re tla sheba mofuta o mong le o mong oa senotlolo. 'Me ke tla u bontša mehlala ea hore na li kentsoe joang, li sebetsa joang, ke tla u bontša lipotso tseo u ka li sebelisang ho bona hore na ho notlela ho sebetsa joang ho Postgres.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho theha potso le ho bona se etsahalang Postgres, re hloka ho fana ka potso ponong ea sistimi. Tabeng ena, pg_lock e totobalitsoe ka bofubelu. Pg_lock ke tafole ea sistimi e re bolellang hore na linotlolo li ntse li sebelisoa joang ho Postgres.

Leha ho le joalo, ho thata haholo ho 'na ho u bontša pg_lock ka boeona hobane e rarahane haholo. Kahoo ke thehile pono e bonts'ang pg_locks. Hape e nketsetsa mosebetsi o ntumellang ho utloisisa hamolemo. Ke hore, ha e kenyeletse liloko tsa ka, nako ea ka, joalo-joalo Ke SQL e tloaelehileng feela 'me e u lumella ho u bontša hantle se etsahalang.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Bothata bo bong ke hore pono ena e pharaletseng haholo, kahoo ke tlameha ho theha ea bobeli - lockview2.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian 'Me e mpontša litšiea tse ling tse tsoang tafoleng. Mme e nngwe e mpontshang dikholomo tse ding. Sena se rarahane haholo, kahoo ke lekile ho se hlahisa ka mokhoa o bonolo kamoo ho ka khonehang.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Kahoo re thehile tafole e bitsoang Lockdemo. Mme re thehile mola o le mong moo. Ena ke tafole ea rona ea mohlala. 'Me re tla be re theha likarolo ho u bontša mehlala ea liloko.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Kahoo, mola o le mong, kholomo e le 'ngoe. Mofuta oa pele oa senotlolo o bitsoa ACCESS SHARE. Ena ke thibelo e fokolang haholo. Sena se bolela hore ha e hohlane le liloko tse ling.

'Me haeba re batla ho hlalosa senotlolo ka ho hlaka, re tsamaisa taelo ea "lock table". 'Me ho hlakile hore e tla thibela, ke hore, ka ACCESS SHARE mode re qala tafole ea senotlolo. 'Me haeba ke matha PSQL ka morao, joale ke qala lenaneo la bobeli ho tloha lenaneong la ka la pele ka tsela ena. Ke hore, ke tla etsa joang moo? Ke ea sebokeng se seng 'me ke se bolella "mpontša lockview bakeng sa kopo ena." 'Me mona ke na le AccessShareLock tafoleng ena. Sena ke sona seo ke se kopileng. Mme o re boloko bo abetsoe. E bonolo haholo.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho feta moo, haeba re sheba kholomo ea bobeli, ha ho na letho moo. Ha ba na letho.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me haeba ke tsamaisa taelo ea "KHETHA", ena ke tsela e hlakileng (e hlakileng) ea ho kopa AccessShareLock. Kahoo ke lokolla tafole ea ka ebe ke tsamaisa potso mme potso e khutlisa mela e mengata. 'Me ho e' ngoe ea mela re bona AccessShareLock. Kahoo, KHETHA e bitsa AccessShareLock tafoleng. 'Me ha e hohlane le hoo e batlang e le eng kapa eng hobane ke senotlolo sa boemo bo tlase.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho thoe'ng haeba ke tsamaisa KHETHA 'me ke na le litafole tse tharo tse fapaneng? Pele ke ne ke tsamaisa tafole e le 'ngoe feela, joale ke matha tse tharo: pg_class, pg_namespace le pg_attribute.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me joale ha ke sheba potso, ke bona 9 AccessShareLocks ka litafole tse tharo. Hobaneng? Litafole tse tharo li totobalitsoe ka boputsoa: pg_attribute, pg_class, pg_namespace. Empa u ka boela ua bona hore li-index tsohle tse hlalosoang ka litafole tsena le tsona li na le AccessShareLock.

'Me sena ke senotlolo se sa thulaneng le ba bang. 'Me sohle seo e se etsang ke ho re thibela ho hlophisa tafole bocha ha re ntse re e khetha. Hoa utloahala. Ke hore, haeba re khetha tafole, e nyamela ka nako eo, joale sena se fosahetse, kahoo AccessShare ke senotlolo sa boemo bo tlase se re bolellang "o seke oa liha tafole ena ha ke ntse ke sebetsa". Ha e le hantle, ke phetho seo a se etsang.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

ROW SHARE - Senotlolo sena se fapane hanyane.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ha re nke mohlala. KHETHA ROW SHARE mokhoa oa ho notlela mola o mong le o mong ka bonngoe. Ka tsela ena ha ho motho ea ka li hlakolang kapa ho li fetola re ntse re li shebile.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce MomjianJoale SHARE LOCK e etsa'ng? Rea bona hore ID ea transaction ke 681 bakeng sa KHETHA. 'Me sena sea thahasellisa. Ho etsahetseng moo? Lekhetlo la pele ha re bona nomoro e le tšimong ea "Lock". Re nka ID ea transaction mme e re e e thibela ka mokhoa o ikhethileng. Seo e se etsang feela ke hore ke na le mola o notletsoeng ka botekgeniki kae-kae tafoleng. Empa ha a bolele moo hantle. Re tla sheba sena ka botlalo hamorao.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mona re re lock e sebelisoa ke rona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Kahoo, senotlolo se ikhethileng se bolela ka ho hlaka hore se ikhethile. Hape haeba u hlakola mola tafoleng ena, joale sena ke se tla etsahala, joalo ka ha u bona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

SHARE EXCLUSIVE ke senotlolo se selelele.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ena ke taelo ea (ANALYZE) analyzer e tla sebelisoa.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

SHARE LOCK - o ka notlela ka mokhoa o hlakileng ka mokhoa oa ho arolelana.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

U ka boela ua etsa index e ikhethang. Mme moo o ka bona SHARE LOCK, eo e leng karolo ya tsona. Mme e notlela tafole mme e beye LOCK YA KABELO hodima yona.

Ka linako tsohle, SHARE LOCK tafoleng e bolela hore batho ba bang ba khona ho bala tafole, empa ha ho motho ea ka e fetolang. 'Me sena ke sona se etsahalang ha u theha index e ikhethang.

Haeba ke theha index e ikhethang ea nako e le 'ngoe, ke tla ba le mofuta o fapaneng oa ho notlela hobane, joalo ka ha u hopola, ho sebelisa li-index tsa nako e le 'ngoe ho fokotsa tlhoko ea ho notlela. 'Me haeba ke sebelisa senotlolo se tloaelehileng, index e tloaelehileng, joale ke tla thibela ho ngola ho index ea tafole ha e ntse e etsoa. Haeba ke sebelisa index ea nako e le 'ngoe, joale ke hloka ho sebelisa mofuta o fapaneng oa ho notlela.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

AROLA MOLAO O KHETHEHILENG - hape o ka beoa ka ho hlaka (ka ho hlaka).

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Kapa re ka etsa molao, ke hore, nka nyeoe e itseng eo e tla sebelisoa ho eona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

HO notlela ka mokhoa o ikhethileng ho bolela hore ha ho motho e mong ea ka fetolang tafole.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mona re bona mefuta e fapaneng ea liloko.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

ACCESS EXCLUSIVE, mohlala, ke taelo e thibelang. Ka mohlala, haeba u etsa joalo CLUSTER table, joale sena se tla bolela hore ha ho motho ea tla khona ho ngola moo. 'Me ha e notlele tafole feela, empa hape le li-index.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Lena ke leqephe la bobeli la thibelo ea ACCESS EXCLUSIVE, moo re bonang hantle hore na e thibela eng ka har'a tafole. E notlela mela ea litafole ka bomong, e leng ntho e khahlisang haholo.

Ke lintlha tsohle tsa motheo tseo ke neng ke batla ho fana ka tsona. Re buile ka liloko, ka li-ID tsa transaction, ra bua ka virtual transaction IDs, ka permanent transaction IDs.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me joale re tla feta ka mehlala e thibelang. Ena ke karolo e khahlisang haholo. Re tla sheba linyeoe tse thahasellisang haholo. 'Me sepheo sa ka tlhahisong ena ke ho u fa kutloisiso e molemo ea seo Postgres e hlileng e se etsang ha e leka ho thibela lintho tse itseng. Ke nahana hore o tseba ho thibela likarolo tse itseng.

A re shebeng mehlala e itseng e tobileng.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Re tla qala ka litafole le mola o le mong tafoleng. Ha ke kenya ntho e 'ngoe ke na le ExclusiveLock, Transaction ID le ExclusiveLock tse hlahang tafoleng.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho etsahalang ha ke kenya mela e meng e mmedi? 'Me joale tafole ea rona e na le mela e meraro. Mme ke kentse mola o le mong mme ka fumana sena e le tlhahiso. Mme ha ke kenya mela e meng e mmedi, ke eng e makatsang ka seo? Ho na le ntho e makatsang mona hobane ke kentse mela e meraro tafoleng ena, empa ke ntse ke e-na le mela e ’meli holim’a tafole ea notlela. Mme ha e le hantle ona ke boitšoaro ba mantlha ba Postgres.

Batho ba bangata ba nahana hore haeba polokelong ea polokelo u notlela mela e 100, joale u tla hloka ho etsa lipehelo tse 100 tsa senotlolo. Haeba ke thiba mela e 1 hang, ke tla hloka 000 lipotso tse joalo. Mme haeba ke hloka milione kapa bilione ho thibela. Empa ha re etsa sena, se ke ke sa sebetsa hantle haholo. Haeba u sebelisitse sistimi e etsang hore ho be le ho thibela melato bakeng sa mola o mong le o mong, joale u ka bona hore sena se rarahane. Hobane o hloka ho hlalosa hanghang tafole ea senotlolo e ka khaphatsehang, empa Postgres ha e etse joalo.

'Me seo e hlileng e leng sa bohlokoa ka slide ena ke hore e bontša ka ho hlaka hore ho na le tsamaiso e' ngoe e sebetsang ka hare ho MVCC e notlelang mela e ikemetseng. Kahoo ha o notlela mela e libilione, Postgres ha e thehe litaelo tsa ho notlela tse limilione tse likete. Mme sena se na le phello e ntle haholo tlhahisong.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho thoe'ng ka ntlafatso? Ke ntse ke ntlafatsa mola hona joale, 'me u ka bona hore e entse liopereishene tse peli tse fapaneng ka nako e le ngoe. E notlela tafole ka nako e le 'ngoe, empa hape e notletse index. Mme o ne a hloka ho notlela index hobane ho na le litšitiso tse ikhethang tafoleng ena. 'Me re batla ho etsa bonnete ba hore ha ho motho ea e fetolang, kahoo rea e thibela.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho etsahala'ng haeba ke batla ho nchafatsa mela e 'meli? 'Me rea bona hore o itšoara ka tsela e tšoanang. Re etsa liapdeite tse habeli, empa palo e ts'oanang ea mela ea senotlolo.

Haeba u ntse u ipotsa hore na Postgres e etsa sena joang, u tla hloka ho mamela lipuo tsa ka ho MVCC ho ithuta hore na Postgres ka hare e tšoaea mela ena eo e fetohang. 'Me Postgres e na le tsela eo e etsang sena ka eona, empa ha e e etse boemong ba ho notlela tafole, e e etsa ka boemo bo tlase le bo sebetsang haholoanyane.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho thoe'ng haeba ke batla ho hlakola ntho e itseng? Haeba ke hlakola, mohlala, mola o le mong 'me ke ntse ke e-na le lintho tse peli tse thibelang,' me leha ke batla ho li hlakola kaofela, li ntse li le teng.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me, ho etsa mohlala, ke batla ho kenya mela e 1, ebe ke hlakola kapa ho eketsa mela e 000, ebe mela eo ke e eketsang kapa ke e fetolang, ha e ea ngoloa mona. Li ngotsoe boemong bo tlaase ka hare ho letoto ka bolona. 'Me nakong ea puo ea MVCC ke buile ka taba ena ka botlalo. Empa ho bohlokoa haholo ha u ntse u hlahloba linotlolo ho etsa bonnete ba hore u notlela boemong ba tafole le hore ha u bone hore na mela ka 'ngoe e rekotoa joang mona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho thoe'ng ka ho thibela ka mokhoa o hlakileng?

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Haeba ke tobetsa refresh, ke na le mela e 'meli e notletsoeng. 'Me haeba ke li khetha kaofela ebe ke tobetsa "update hohle," joale ke ntse ke e-na le lirekoto tse peli tse thibelang.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ha re etse lirekoto tse arohaneng bakeng sa mola o mong le o mong. Hobane joale tlhahiso e theoha, ho ka ba le ho hongata haholo. ’Me re ka ’na ra iphumana re le boemong bo sa thabiseng.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me ntho e tšoanang, haeba re arolelana, re ka e etsa ka makhetlo a 30 kaofela.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Re tsosolosa tafole ea rona, re hlakola ntho e 'ngoe le e' ngoe, ebe re kenya mola o le mong hape.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Boitšoaro bo bong boo u bo bonang ho Postgres bo tsebahalang haholo le boits'oaro bo lakatsehang ke hore u ka etsa ntlafatso kapa khetha. 'Me u ka etsa sena ka nako e le' ngoe. 'Me khetha ha e thibele ntlafatso le ntho e tšoanang ka lehlakoreng le leng. Re bolella 'mali hore a se ke a thibela mongoli, 'me mongoli ha aa ka a thibela 'mali.

Ke tla u bontša mohlala oa sena. Ke tla etsa khetho hona joale. Joale re tla etsa INSERT. 'Me joale u ka bona - 694. U ka bona ID ea transaction e entseng kenyelletso ena. 'Me ke kamoo e sebetsang kateng.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mme ha ke sheba ID ea ka ea morao-rao joale, e se e le 695.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mme ke bona 695 e hlaha tafoleng yaka.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me haeba ke ntlafatsa mona ka tsela ena, joale ke fumana nyeoe e fapaneng. Tabeng ena, 695 ke senotlolo se ikhethileng, 'me ntlafatso e na le boitšoaro bo tšoanang, empa ha ho na khohlano pakeng tsa bona, e leng ntho e sa tloaelehang.

'Me u ka bona hore ka holimo ke ShareLock,' me ka tlase ke ExclusiveLock. 'Me litšebelisano ka bobeli li ile tsa sebetsa.

'Me u hloka ho mamela puo ea ka ho MVCC ho utloisisa hore na sena se etsahala joang. Empa sena ke papiso ea hore u ka e etsa ka nako e le 'ngoe, ke hore, etsa KHETHA le UPDATE ka nako e le 'ngoe.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ha re setang bocha 'me re etse tšebetso e' ngoe hape.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Haeba u leka ho tsamaisa liapdeite tse peli ka nako e le 'ngoe moleng o le mong, e tla thibeloa. Mme hopola, ke itse mmadi ha a thibele mongodi, le mongodi ha a thibele mmadi, empa mongodi e mong o thiba mongodi e mong. Ke hore, re ke ke ra ba le batho ba babeli ba ntlafatsang mola o le mong ka nako e le 'ngoe. U tlameha ho ema ho fihlela e 'ngoe ea tsona e qeta.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

E le ho etsa mohlala oa sena, ke tla sheba tafole ea Lockdemo. Mme re tla sheba mola o le mong. Ka ts'ebetso ea 698.

Re ntlafalitse sena ho 2. 699 ke ntlafatso ea pele. 'Me e atlehile kapa e ntse e tsoela pele 'me e emetse hore re netefatse kapa re hlakole.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Empa sheba ntho e 'ngoe hape - 2/51 ke khoebo ea rona ea pele, karolo ea rona ea pele. 3/112 ke kopo ea bobeli e tsoang holimo e ileng ea fetola boleng boo ho 3. 'Me haeba u hlokomela, e ka holimo e ile ea notlela, e leng 699. Empa 3/112 ha ea ka ea fana ka senotlolo. Kholomo ea Lock_mode e bolela seo e se emetseng. E lebeletse 699. Ha u sheba moo 699 e leng teng, e phahame. Mme lenaneo la pele le entse eng? O iketselitse senotlolo se ikhethileng ID ea hae ea transaction. Ena ke tsela eo Postgres a e etsang ka eona. E thibela ID ea eona ea transaction. 'Me haeba u batla ho emela hore motho e mong a tiise kapa a hlakole, joale u lokela ho ema ha ho ntse ho e-na le transaction. Mme ke ka hona re ka bonang mola o makatsang.

Ha re shebeng hape. Ka ho le letšehali re bona ID ea rona ea ho sebetsa. Karolong ea bobeli re bona ID ea rona ea transaction, 'me ho ea boraro re bona lock_type. See se bolelang? Ha e le hantle seo e se buang ke hore e thibela ID ea transaction. Empa hlokomela hore mela eohle e ka tlaase e bolela kamano. 'Me kahoo u na le mefuta e' meli ea linotlolo tafoleng. Ho na le senotlolo sa kamano. 'Me joale ho na le ho thibela transactionid, moo u thibelang u le mong, e leng hantle se etsahalang moleng oa pele kapa ka tlaase haholo, moo transactionid e leng teng, moo re emelang 699 ho qeta ts'ebetso ea eona.

Ke tla bona se etsahalang mona. Mme mona ho etsahala dintho tse pedi ka nako e le nngwe. U shebile senotlolo sa ID ea transaction moleng oa pele o notlellang. Mme o a thiba ho etsa hore batho ba eme.

Haeba u sheba mola oa 6, ke mokhoa o tšoanang le oa pele. 'Me ka hona transaction 699 e thibetsoe. 700 e boetse e itsoela. Ebe moleng o ka tlase u tla bona hore re emetse 699 ho qeta tšebetso ea eona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mme ka lock_type, tuple o bona dinomoro.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

U ka bona hore ke 0/10. 'Me ena ke nomoro ea leqephe, hape le tharollo ea mola ona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me u bona e fetoha 0/11 ha re ntlafatsa.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Empa ha e le hantle ke 0/10, hobane ho na le ho leta bakeng sa ts'ebetso ena. Re na le monyetla oa ho bona hore lena ke letoto leo ke emetse ho le tiisa.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ha re se re e netefalitse le ho hatella boitlamo, 'me ha ntlafatso e felile, sena ke seo re se fumanang hape. Transaction 700 ke senotlolo feela, ha e emele motho e mong hobane e ne e ikemiselitse. E mpa e emetse hore transaction e phethehe. Hang ha 699 e felile, ha re sa emela letho. 'Me joale transaction 700 e re ntho e' ngoe le e 'ngoe e lokile, e na le linotlolo tsohle tseo e li hlokang litafoleng tsohle tse lumelletsoeng.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me ho etsa hore ntho ena e be thata le ho feta, re theha pono e' ngoe, eo lekhetlong lena e tla re fa bolaoli. Ha kea lebella hore o utloisise kopo ena. Empa sena se tla re fa pono e hlakileng haholoanyane ea se etsahalang.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ena ke pono e iphetang hape e nang le karolo e 'ngoe. Mme ebe e kgutlisetsa tsohle mmoho hape. Ha re sebeliseng sena.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho thoe'ng haeba re ka etsa liapdeite tse tharo ka nako e le 'ngoe ebe re re mola joale ke tse tharo. Mme re tla fetola 3 ho isa ho 4.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me mona re bona 4. Le transaction ID 702.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me ke tla fetola 4 ho isa ho 5. Le 5 ho isa ho 6, le 6 ho isa ho 7. 'Me ke tla thathamisa palo ea batho ba tla emela hore transaction ena e le 'ngoe e fele.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mme tsohle di a hlaka. Mola oa pele ke ofe? Ena ke 702. Ena ke ID ea transaction e ileng ea beha boleng bona qalong. Ho ngoliloe eng kholomong ea ka e fanoeng? Ke na le matšoao f. Tsena ke lintlafatso tsa ka tseo (5, 6, 7) li ke keng tsa amoheloa hobane re emetse transaction ID 702 ho fela. Moo re na le transaction ID blocking. 'Me sena se fella ka liloko tse 5 tsa transactional ID.

'Me ha u sheba 704, ho 705, ha ho letho le ngotsoeng moo, hobane ha ba tsebe se etsahalang. Ba ngola feela hore ha ba tsebe se etsahalang. 'Me ba tla robala feela hobane ba emetse hore motho a qete le ho tsosoa ha monyetla o hlaha oa ho fetola mela.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Sena ke kamoo se shebahalang kateng. Ho hlakile hore kaofela ba emetse mola oa leshome le metso e 'meli.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Sena ke seo re se boneng mona. Mona ke 0/12.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Kahoo hang ha transaction ea pele e amohetsoe, u ka bona mona hore na bolaoli bo sebetsa joang. 'Me joale tsohle lia hlaka. Kaofela ba hloeka. Mme ha e le hantle ba ntse ba emetse.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ke sena se etsahalang. 702 boitlamo. 'Me joale 703 e fumana senotlolo sena, ebe 704 e qala ho emela 703 ho itlama. Mme 705 le eona e emetse sena. Mme ha tsena tsohle di phethilwe, ba itlhwekisa. 'Me ke rata ho bontša hore bohle ba kolokile. 'Me sena se tšoana haholo le boemo ba tšubuhlellano ea sephethephethe ha bohle ba emetse koloi ea pele. Koloi ea pele ea ema 'me bohle ba koloka moleng o molelele. Ebe e tsamaea, ebe koloi e latelang e ka khanna pele 'me ea fumana sebaka sa eona, joalo-joalo.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me haeba sena se ne se bonahala se sa rarahane ho lekana ho uena, joale re tla bua le uena ka li-deadlocks. Ha ke tsebe hore na ke ofe ho lona ea kileng a kopana le tsona. Ena ke bothata bo atileng haholo lits'ebetsong tsa database. Empa li-deadlocks ke ha lenaneo le le leng le emetse lenaneo le leng ho etsa ho hong. 'Me motsotsong ona lenaneo le leng le emetse lenaneo la pele ho etsa ho hong.

’Me, ka mohlala, haeba Ivan a re: “Mphe ho hong,” ’me ’na ke re: “Che, ke tla u fa eona feela haeba u ka mpha ntho e ’ngoe hape.” Mme a re, “Tjhe, nke ke ka o fa yona ha o sa nnee yona.” 'Me re qetella re le boemong bo sa tsitsang. Ke kholisehile hore Ivan a ke ke a etsa sena, empa u utloisisa moelelo oa hore re na le batho ba babeli ba batlang ho fumana ntho e itseng 'me ba sa itokisetsa ho fana ka eona ho fihlela motho e mong a ba fa seo ba se batlang. 'Me ha ho na tharollo.

Ha e le hantle, database ea hau e hloka ho bona sena. Ebe o hloka ho hlakola kapa ho koala e 'ngoe ea mananeo, hobane ho seng joalo li tla lula li le teng ka ho sa feleng. 'Me re e bona ka har'a datha, re e bona lits'ebetsong tsa ts'ebetso. 'Me libakeng tsohle moo re nang le mekhoa e tšoanang, sena se ka etsahala.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me joale re tla kenya li-deadlocks tse peli. Re tla beha 50 le 80. Moleng oa pele, ke tla ntlafatsa ho tloha ho 50 ho isa ho 50. Ke tla fumana nomoro ea transaction 710.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ebe ke fetola 80 ho isa ho 81, le 50 ho isa ho 51.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me sena ke kamoo e tla shebahala kateng. 'Me kahoo 710 e na le mola o thibetsoe,' me 711 e emetse tiiso. Re bone sena ha re ntlafatsa. 710 ke mong'a letoto la rona. Mme 711 e emetse 710 ho phethela khoebo.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ebile e bolela hore na li-deadlocks li etsahala moleng ofe. Mme mona ke moo ho qalang ho makatsa.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Hona joale re ntlafatsa 80 ho isa ho 80.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me mona ke moo li-deadlocks li qalang teng. 710 e emetse karabo e tsoang ho 711, mme 711 e emetse 710. 'Me sena se ke ke sa fela hantle. Mme haho tsela ya hotswa ho sena. 'Me ba tla lebella karabo ho e mong.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me e tla qala feela ho liehisa tsohle. Mme ha re batle seo.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mme Postgres o na le mekhoa ea ho hlokomela ha sena se etsahala. Mme ha sena se etsahala, o fumana phoso ena. 'Me ho tloha ho sena ho hlakile hore ts'ebetso e joalo le e joalo e emetse SHARE LOCK ho tloha ts'ebetsong e' ngoe, ke hore, e thibetsoeng ke ts'ebetso ea 711. Mme ts'ebetso eo e ne e emetse hore ho fanoe ka SHARE LOCK ho ID ea transaction e joalo le e joalo, 'me e ne e thibetsoe ke ts'ebetso e joalo. Ka hona, ho na le boemo ba deadlock mona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho na le li-deadlocks tse tharo? Na ho oa khonahala? Ee.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Re kenya linomoro tsena tafoleng. Re fetola 40 ho ea ho 40, re etsa thibela.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Re fetola 60 ho isa ho 61, 80 ho isa ho 81.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ebe re fetola 80 ebe rea phahama!

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mme 714 jwale e emetse 715. Ya 716 e emetse 715. Mme ha ho letho le ka etsoang ka hona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ha ho sa le batho ba babeli mona, ho se ho se ho le batho ba bararo mona. Ke batla ho hong ho uena, enoa o batla ho hong ho motho oa boraro, athe motho oa boraro o batla ho hong ho nna. 'Me re qetella re eme ka litsela tse tharo hobane bohle re emetse hore motho e mong a phethe seo a lokelang ho se etsa.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mme Postgres oa tseba hore na sena se etsahala ka tatellano efe. 'Me kahoo e tla u fa molaetsa o latelang, o bontšang hore u na le bothata moo li-input tse tharo li thibelang. 'Me ha ho na lithibelo mona. Ho ka 'na ha e-ba joalo moo lipehelo tse 20 li thibelanang.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Bothata bo latelang bo ka khoneha.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Haeba e khethehileng serialzable loko.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me re khutlela ho 719. Sephetho sa eona se tloaelehile.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me u ka tobetsa ho etsa transaction ho tloha serialisable.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me ua hlokomela hore joale u na le mofuta o fapaneng oa SA lock - ho bolela ho srializable.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mme ka hona re na le mofuta o mocha oa senotlolo se bitsoang SARiadLock, e leng senotlolo sa serial mme se o lumella ho kenya li-serial.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Hape o ka kenya li-index tse ikhethang.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Tafoleng ena re na le li-index tse ikhethang.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Kahoo ha ke kenya nomoro ea 2 mona, kahoo ke na le 2. Empa holimo haholo, ke kenya 2 e 'ngoe. 'Me u ka bona hore 721 e na le senotlolo se ikhethileng. Empa joale 722 e emetse hore 721 e phethe tšebetso ea eona hobane ha e khone ho kenya 2 ho fihlela e tseba hore na ho tla etsahala eng ka 721.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me haeba re etsa subtransaction.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Mona re na le 723.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me haeba re boloka ntlha ebe re e ntlafatsa, joale re fumana ID e ncha ea transaction. Ena ke mokhoa o mong oa boitšoaro oo u lokelang ho o ela hloko. Haeba re khutlisa sena, joale ID ea transaction e ea fela. 724 makhasi. Empa joale re na le 725.

Joale ke leka ho etsa eng moo? Ke leka ho u bontša mehlala ea liloko tse sa tloaelehang tseo u ka li fumanang: ebang ke liloko tse ka khonang kapa SAVEPOINT, tsena ke mefuta e fapaneng ea liloko tse tla hlaha tafoleng ea linotlolo.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ena ke tlhahiso ea linotlolo tse hlakileng (tse hlakileng), tse nang le pg_advisory_lock.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me ua bona hore mofuta oa ho thibela o thathamisitsoe e le keletso. 'Me mona e re "boeletsi" ka bofubelu. 'Me u ka thibela ka nako e tšoanang ka pg_advisory_unlock.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me qetellong, ke rata ho u bontša ntho e' ngoe hape e otlang kelello. Ke tla theha pono e 'ngoe. Empa ke tla ikopanya le tafole ea pg_locks le tafole ea pg_stat_activity. Hona ke hobane'ng ha ke batla ho etsa see? Hobane sena se tla ntumella ho sheba le ho bona mananeo ohle a hajoale le ho bona hantle hore na ba emetse liloko tsa mofuta ofe. 'Me sena se khahla haholo ha re kopanya tafole ea senotlolo le tafole ea lipotso.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me mona re theha pg_stat_view.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me re ntlafatsa mola ka bonngoe. 'Me mona re bona 724. 'Me joale re ntlafatsa mola oa rona ho isa ho boraro. Hona joale u bona eng moo? Tsena ke likopo, ke hore, u bona lenane lohle la likopo tse thathamisitsoeng ka lehlakoreng le letšehali. 'Me ka lehlakoreng le letona u ka bona li-blockages le seo ba se bōpang. 'Me e ka hlakeloa haholoanyane ho uena e le hore u se ke ua tlameha ho khutlela lenaneong le leng le le leng ho bona hore na u hloka ho kena kapa che. Ba re etsetsa eona.

Tšobotsi e 'ngoe e molemo haholo ke pg_blocking_pids. Mohlomong ha u e-s'o utloele ka eena. O etsa'ng? E re lumella ho bolela hore bakeng sa seboka sena 11740 hore na e emetse li-ID tsa ts'ebetso efe. Mme o ka bona hore 11740 e emetse 724. Mme 724 e ka hodimo haholo. Mme 11306 ke ID ea hau ea ts'ebetso. Ha e le hantle, ts'ebetso ena e feta tafoleng ea hau ea senotlolo. 'Me kea tseba hore e batla e rarahane, empa u khona ho e utloisisa. Ha e le hantle, ts'ebetso ena e feta tafoleng ena ea senotlolo 'me e leka ho fumana moo ID ea ts'ebetso ena e fuoang linotlolo tseo e ntseng e e emetse. Mme e boetse e leka ho fumana hore na ts'ebetso e emetseng senotlolo e na le ID ea ts'ebetso efe. Kahoo o ka tsamaisa ts'ebetso ena pg_blocking_pids.

'Me sena se ka ba molemo haholo. Re kentse sena feela ka mofuta oa 9.6, kahoo karolo ena e na le lilemo tse 5 feela, empa e bohlokoa haholo. 'Me ho joalo le ho kopo ea bobeli. E bontša hantle seo re lokelang ho se bona.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Sena ke seo ke neng ke batla ho bua le uena ka sona. ’Me joalokaha ke ne ke lebeletse, re ile ra qeta nako eohle ea rōna hobane ho ne ho e-na le li-slide tse ngata haholo. 'Me li-slide lia fumaneha bakeng sa ho khoasolla. Ke rata ho le leboha ka ho ba teng mona. Kea kholoa u tla thabela seboka se setseng, ke leboha haholo!

Lipotso:

Ka mohlala, haeba ke leka ho ntlafatsa mela, 'me lenaneo la bobeli le leka ho hlakola tafole eohle. Ho ea kamoo ke utloisisang, ho lokela ho ba le ntho e kang senotlolo sa maikemisetso. Na ho na le ntho e joalo ho Postgres?

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

Ha re khutleleng qalong. U ka hopola hore ha u etsa ntho leha e le efe, ka mohlala ha u etsa KHETHA, re fana ka AccessShareLock. 'Me sena se thibela tafole ho theoha. Kahoo haeba, ka mohlala, u batla ho ntlafatsa mola tafoleng kapa ho hlakola mola, joale motho e mong a ke ke a hlakola tafole eohle ka nako e le 'ngoe hobane u tšoere AccessShareLock ena holim'a tafole eohle le ka holim'a tatellano. 'Me hang ha u qetile, ba ka e hlakola. Empa ha u ntse u fetola ntho ka kotloloho moo, ba ke ke ba khona ho e etsa.

Ha re e etseng hape. Ha re feteleng ho mohlala oa ho hlakola. 'Me u bona kamoo ho nang le senotlolo se ikhethileng moleng o kaholimo ho tafole eohle.

Sena se tla shebahala joalo ka senotlolo se ikhethileng, na ha ho joalo?

E, e shebahala joalo. Ke utloisisa seo u buang ka sona. U re ha ke etsa KHETHA ebe ke na le ShareExclusive ebe ke e etsa Row Exclusive, na hoo e ba bothata? Empa ho makatsang ke hore sena ha se fane ka bothata. Sena se shebahala joalo ka ho eketsa degree ea senotlolo, empa ha e le hantle ke na le senotlolo se thibelang ho hlakoloa. 'Me joale, ha ke etsa hore senotlolo sena se be matla le ho feta, se ntse se thibela ho hlakoloa. Kahoo ha se hore ke ea holimo. E leng hore e ile ea thibela hore e se ke ea etsahala ha e ne e le boemong bo tlaase le eona, joale ha ke phahamisa boemo ba eona e ntse e thibela hore tafole e se ke ea hlakoloa.

Ke utloisisa seo u buang ka sona. Ha ho na nyeoe ea ho nyoloha ha senotlolo mona, moo o lekang ho tela senotlolo se le seng ho hlahisa e matla. Mona e mpa e eketsa thibelo ena hohle, kahoo ha e bake likhohlano leha e le life. Empa ke potso e ntle. Ke leboha haholo ka ho botsa sena!

Re hloka ho etsa eng ho qoba boemo bo sa tsitsang ha re e-na le linako tse ngata, palo e kholo ea basebelisi?

Postgres e lemoha ka bo eona maemo a ho qetela. 'Me e tla hlakola e' ngoe ea mananeo ka bo eona. Mokhoa o le mong feela oa ho qoba ho thibela batho ba shoeleng ke ho thibela batho ka tatellano e tšoanang. Kahoo ha u sheba kopo ea hau, hangata lebaka la li-deadlocks ... Ha re nahane hore ke batla ho thibela lintho tse peli tse fapaneng. Sesebelisoa se le seng se notlela tafole ea 1, 'me sesebelisoa se seng se notlela 2, ebe tafole ea 1. 'Me tsela e bonolo ka ho fetisisa ea ho qoba li-deadlocks ke ho sheba kopo ea hau le ho leka ho etsa bonnete ba hore ho notlela ho etsahala ka tatellano e ts'oanang lits'ebetsong tsohle. 'Me hangata sena se felisa 80% ea mathata, hobane mefuta eohle ea batho e ngola likopo tsena. 'Me haeba u li thibela ka tatellano e tšoanang, joale ha u kopane le boemo ba deadlock.

Ke leboha haholo ka ts'ebetso ea hau! U buile ka vacuum e tletse, 'me haeba ke utloisisa hantle, vacuum e felletseng e sotha tatellano ea lirekoto sebakeng se arohaneng sa polokelo, kahoo li boloka lirekoto tsa hajoale li sa fetohe. Hobaneng ha vacuum e felletseng e nka phihlello e ikhethileng ea senotlolo mme hobaneng e hohlana le ts'ebetso ea ho ngola?

Ke potso e ntle eo. Lebaka ke hore vacuum e tletse tafoleng. 'Me ha e le hantle re theha mofuta o mocha oa tafole. 'Me tafole e tla ba ncha. Hoa bonahala hore ena e tla ba mofuta o mocha oa tafole. ‘Me bothata ke hore ha re etsa tjena, ha re batle hore batho ba e bale hobane re hloka hore ba bone tafole e ncha. Mme ka hona sena se hokahana le potso e fetileng. Haeba re ne re ka bala ka nako e le ’ngoe, re ne re ke ke ra khona ho e tsamaisa le ho lebisa batho tafoleng e ncha. Re tla hloka ho emela hore motho e mong le e mong a qete ho bala tafole ena, ka hona, ke boemo bo ikhethileng ba senotlolo.
Re mpa re re re notlela ho tloha qalong hobane rea tseba hore qetellong re tla hloka senotlolo se ikhethileng e le hore re ka isa bohle kopi e ncha. Kahoo re ka khona ho rarolla bothata bona. Mme re e etsa ka tsela ena ka indexing ea nako e le 'ngoe. Empa sena se thata le ho feta ho se etsa. 'Me sena se amana haholo le potso ea hau ea nakong e fetileng mabapi le senotlolo.

Na hoa khoneha ho eketsa nako ea ho notlela ho Postgres? Ho Oracle, ka mohlala, nka ngola "khetha ho ntlafatsa" 'me ke eme metsotsoana e 50 pele ke ntlafatsa. E ne e le molemo bakeng sa kopo. Empa ho Postgres, ke hloka ho e etsa hang-hang mme ke se ke ka emela ho hang, kapa ho ema ho fihlela nako e itseng.

Ee, o ka khetha nako ea ho koala liloko tsa hau, lilokong tsa hau. U ka boela ua fana ka taelo ea "no way", e tla ... haeba u sa khone ho fumana senotlolo hang-hang. Ka hona, e ka ba nako ea ho koala kapa ntho e 'ngoe e tla u lumella ho etsa sena. Sena ha se etsoe boemong ba syntactic. Sena se etsoa e le phetoho ho seva. Ka linako tse ling sena ha se khonehe ho sebelisoa.

A na u ka bula slide 75?

E.

Ho notlolla Motsamaisi oa Lock ea Postgres. Bruce Momjian

'Me potso ea ka ke e latelang. Hobaneng ha lits'ebetso ka bobeli li lebelletse 703?

Mme ena ke potso e kgolo. Ha ke utloisise, ka tsela, hore na ke hobane'ng ha Postgres a etsa sena. Empa ha 703 e ne e bōptjoa, e ne e lebeletsoe 702. 'Me ha 704 le 705 li hlaha, ho bonahala eka ha ba tsebe seo ba se lebeletseng hobane ha ho na letho moo. 'Me Postgres e etsa ka tsela ena: ha u sa khone ho fumana senotlolo, e ngola "Molemo oa ho sebetsana le uena ke ofe?", Hobane u se u ntse u emetse motho. Kahoo re tla e tlohela hore e fanyehe moeeng, e ke ke ea e nchafatsa ho hang. Empa ho etsahetseng moo? Hang ha 702 e qetile ts'ebetso mme 703 e fumana senotlolo sa eona, sistimi e ile ea khutla. Mme a re jwale re na le batho ba babedi ba re emetseng. 'Me joale a re li nchafatse hammoho. 'Me a re bontše hore bobeli ba lebeletse.

Ha ke tsebe hore na ke hobane'ng ha Postgres a etsa sena. Empa ho na le bothata bo bitsoang f…. Ho 'na ho bonahala eka sena ha se lentsoe ka Serussia. Ke ha motho e mong le e mong a emetse qhobosheane e le 'ngoe, leha ho na le balaoli ba 20 ba emetse qhobosheane. 'Me ka tšohanyetso bohle ba tsoha ka nako e le' ngoe. 'Me e mong le e mong o qala ho leka ho itšoara. Empa tsamaiso e etsa hore e mong le e mong a emele 703. Hobane kaofela ba emetse, 'me hang-hang re tla ba thathamisa kaofela. 'Me haeba kopo e' ngoe e ncha e hlaha e hlahisitsoeng ka mor'a sena, mohlala, 707, joale ho tla ba le lefeela hape.

'Me ho 'na ke bona eka sena se etsoa e le hore re tle re re mothating ona 702 o emetse 703, 'me bohle ba tlang ka mor'a moo ba ke ke ba kena tšimong ena. Empa hang ha mosebeletsi oa pele a tloha, bohle ba neng ba emetse ka nako eo pele ho ntlafatso ba fumana letšoao le tšoanang. ‘Me ke bona eka taba ena e etsoe re tle re tsebe ho sebetsa ka tatellano e le hore li laeloe hantle.

Kamehla ke ne ke sheba sena e le ntho e makatsang. Hobane mona, ka mohlala, ha re li thathamise ho hang. Empa ho 'na ho bonahala eka nako le nako ha re fana ka senotlolo se secha, re sheba bohle ba ntseng ba leta. Ebe re li beha meleng kaofela. Ebe e mong le e mong e mocha ea kenang o kena feela moleng ha motho ea latelang a qeta ho sebetsa. Potso e ntle haholo. Ke leboha haholo ka potso ea hau!

Ho 'na ho bonahala eka hoa utloahala haholoanyane ha 705 e lebeletse 704.

Empa bothata mona ke bo latelang. Ka botekgeniki, o ka tsoha e le 'ngoe kapa e' ngoe. Mme ka hona re tla tsoha e mong kapa e mong. Empa ho etsahalang tsamaisong? U ka bona kamoo 703 ka holimo e thibelitseng ID ea hae ea transaction. Ena ke tsela eo Postgres e sebetsang ka eona. 'Me 703 e koetsoe ke ID ea eona ea transaction, kahoo haeba motho a batla ho ema, o tla emela 703. 'Me, ha e le hantle, 703 e phethela. 'Me feela ka mor'a ho phethoa ha e' ngoe ea mekhoa e tsosoa. 'Me ha re tsebe hore na hantle-ntle ts'ebetso ena e tla ba efe. Ebe re sebetsana le ntho e 'ngoe le e' ngoe butle-butle. Empa ha ho hlake hore na ke ts'ebetso efe e tsosoang pele, hobane e ka ba efe kapa efe ea lits'ebetso tsena. Ha e le hantle, re ne re e-na le mohlophisi ea ileng a re joale re ka tsosa leha e le efe ea mekhoa ena. Re khetha e le 'ngoe feela. Kahoo bobeli ba tsona li hloka ho eloa hloko hobane re ka tsosa e 'ngoe ea tsona.

Mme bothata ke hore re na le CP-infinity. 'Me ka hona, ho ka etsahala hore ebe re ka tsoha hamorao. 'Me haeba, ka mohlala, re tsosa ea morao, re tla emela ea sa tsoa fumana boloko, kahoo ha re tsebe hore na ke mang ea tla tsosoa pele. Re mpa re theha boemo bo joalo, 'me tsamaiso e tla ba tsosa ka tatellano e sa reroang.

Ho na le lihlooho tse mabapi le liloko ka Egor Rogov. Sheba, li boetse lia thahasellisa ebile li na le thuso. Taba eo, ehlile, e rarahane haholo. Ke leboha haholo, Bruce!

Source: www.habr.com

Eketsa ka tlhaloso