Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Salama daholo. Vladislav Rodin dia mifandray. Mpitarika fampianarana ho an'ny mari-pahaizana High Workload Architect ao amin'ny OTUS aho amin'izao fotoana izao ary mampianatra fampianarana momba ny maritrano rindrambaiko.

Ho fanampin'ny fampianarana, araka ny efa tsikaritrareo, dia manoratra lahatsoratra tany am-boalohany ho an'ny bilaogy OTUS ao amin'ny Habré aho ary te-hifanandrify amin'ny lahatsoratra anio mba hifanandrify amin'ny fanombohan'ny fampianarana. "PostgreSQL", izay misokatra ho an'ny fisoratana anarana amin'izao fotoana izao.

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

fampidirana

В tamin'ny fotoana farany niresaka momba ny zava-misy izahay fa ny fifanakalozana amin'ny angon-drakitra dia mamaha olana roa: miantoka ny fandeferana amin'ny fahadisoana sy ny fidirana amin'ny angon-drakitra ao anatin'ny tontolo mifaninana. Mba hanatanterahana tanteraka ireo asa ireo dia tsy maintsy manana fananana ACID ny varotra. Hiresaka amin’ny an-tsipiriany momba ilay taratasy isika anio I (isolation) amin'ity fanafohezana ity.

insulation

Ny fitokana-monina dia mamaha ny olan'ny fidirana amin'ny angon-drakitra ao anatin'ny tontolo mifaninana, indrindra ny fiarovana amin'ny toetry ny hazakazaka. Ny tsara indrindra, ny fitokana-monina dia midika hoe serialization, izay fananana izay miantoka fa ny vokatry ny fanatanterahana ny fifampiraharahana dia mitovy amin'ny hoe novonoina nisesy. Ny olana lehibe amin'ity fananana ity dia tena sarotra ny manome ara-teknika ary, vokatr'izany, dia misy fiantraikany lehibe amin'ny fahombiazan'ny rafitra. Izany no mahatonga ny fitokana-monina matetika mihamalemy, manaiky ny loza ateraky ny anomalies sasany, izay horesahina etsy ambany. Ny mety hisian'ny tsy fetezana sasany dia mamaritra tsara ny haavon'ny fitokana-monina.

Ny anomaliana malaza indrindra dia: mamaky maloto, mamaky tsy azo averina, mamaky phantom, fa raha ny marina dia misy 5 hafa: fanoratana maloto, fanavaozana very cursor, fanavaozana very, mamaky skew, manoratra skew.

Soraty maloto

Ny fototry ny anomaliana dia ny hoe afaka manodina ny angon-drakitra tsy voatanisa ny fifampiraharahana.

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Ity anomaliana ity dia mampidi-doza tsy hoe satria ny angon-drakitra dia mety mifanipaka rehefa vita ny fifampiraharahana roa (araka ny eo amin'ny sary), fa koa noho ny fanitsakitsahana ny atomika: satria avelanay hosoloina ny angon-drakitra tsy voatanisa, dia tsy mazava ny fomba hamerenana ny varotra iray nefa tsy misy fiantraikany amin'ny hafa. .

Ny anomaly dia azo tsaboina amin'ny fomba tsotra: mametraka hidy amin'ny rakitra isika alohan'ny hanombohan'ny firaketana, mandrara ny fifanakalozana hafa tsy hanova ny rakitsoratra mandra-panaisotra ny hidin-trano.

Vakina maloto

Ny famakiana maloto dia midika hoe mamaky angon-drakitra tsy voatanisa.

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Mipoitra ny olana rehefa mila raisina ny hetsika na fanapahan-kevitra mifototra amin'ny santionany.

Mba hanitsiana ny anomaliana dia azonao atao ny mametaka hidin-trano vakiana, saingy hisy fiantraikany lehibe amin'ny fampisehoana izany. Tsotra kokoa ny milaza fa ho an'ny fiverenana amin'ny fifanakalozana dia tsy maintsy tehirizina ao amin'ny rafitra ny toetry ny angon-drakitra (alohan'ny hanombohan'ny firaketana). Maninona raha mamaky avy any? Tsy lafo loatra ka ny ankamaroan'ny angon-drakitra dia manala ny vakiteny maloto amin'ny alàlan'ny default.

Very fanavaozana

Ny fanavaozam-baovao very dia midika hoe fanavaozana very, ary ny fandikan-teny dia maneho mazava tsara ny fototry ny olana:

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Raha ny marina, nivadika ny vokatry ny fifanakalozana T2. Ity toe-javatra ity dia azo ahitsy amin'ny alàlan'ny hidin-tsoratra mazava na an-kolaka. Izany hoe, na manavao fotsiny ny rakitsoratra isika, ary avy eo misy hidin-trano mipoitra, na manao izany safidio ny fanavaozana, ka miteraka fanidy mamaky sy manoratra. Mariho fa tena mampidi-doza ny fandidiana toy izany: amin'ny famakiana "tsy manan-tsiny" dia manakana ny famakiana hafa izahay. Ny angon-drakitra sasany dia manolotra azo antoka kokoa safidio ho zaraina, mamela ny angona hovakiana fa tsy ovaina.

Cursor very fanavaozana

Ho an'ny fifehezana tsara kokoa, ny bases dia afaka manolotra fitaovana hafa, toy ny cursor. Ny cursor dia rafitra misy andalana maromaro ary ahafahanao mamerina azy ireo. manambara ny anaran'ny cursor ho an'ny fanambarana_fantenana. Ny votoatin'ny cursor dia faritana amin'ny alalan'ny fisafidianana.

Nahoana ianao no mila cursor? Ny zava-misy dia ny angon-drakitra sasany dia manolotra hidin-trano amin'ny rakitra rehetra voafantina amin'ny alàlan'ny fisafidianana (mamaky stabilité), na eo amin'ny rakitra misy ny cursor amin'izao fotoana izao (stabilité cursor). Miaraka amin'ny fahamarinan-toeran'ny cursor, dia apetraka ny hidin-trano fohy, izay ahafahantsika mampihena ny isan'ny hidin-trano raha toa ka mamerina amin'ny santionan'ny angon-drakitra be dia be. Noho izany, ny anomaliana fanavaozana very dia natokana ho an'ny cursor.

Vakina tsy azo averina

Ny famakiana tsy azo averina dia ny hoe mandritra ny fanatanterahana ny fifampiraharahana, ny famakiana 2 misesy amin'ny firaketana mitovy dia hitondra vokatra hafa, satria nisy fifampiraharahana hafa niditra an-tsehatra teo amin'ireo vakiteny roa ireo, nanova ny angonay ary natao.

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Nahoana no olana izany? Alaivo sary an-tsaina fa ny tanjon'ny fifanakalozana T2 amin'ny sary dia ny mifidy ny entana rehetra izay latsaky ny 150 USD ny vidiny. Nisy olon-kafa nanavao ny vidiny ho $200. Noho izany dia tsy nandeha ny sivana napetraka.

Mitsahatra tsy misy intsony ireo tsy fetezana ireo rehefa ampiana fifandimbiasana dingana roa na rehefa ampiasaina ny mekanika MVCC, izay tiako horesahina misaraka.

Phantom mamaky

Phantom dia famakiana angon-drakitra nampian'ny fifampiraharahana hafa.

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Ohatra, azontsika atao ny mandinika ny fifantenana diso amin'ny vokatra mora indrindra rehefa misy io anomaliana io.

Ny fanesorana ny phantom reads dia efa tena sarotra. Tsy ampy ny fanakanana tsy tapaka, satria tsy afaka manakana zavatra tsy mbola misy isika. Ny rafitra 2PL dia mampiasa fanidy vinavina, raha ny rafitra MVCC kosa dia manana fandaharam-potoana ara-barotra izay mamerina ny fifampiraharahana izay mety ho voasakantsakan'ny fampidirana. Na ny mekanika voalohany sy faharoa dia tena mavesatra.

Read skew

Mitranga ny famakiana skew rehefa miasa miaraka amin'ny latabatra maromaro isika, izay tsy maintsy miova tsy tapaka ny ao anatiny.

Andeha atao hoe manana tabilao maneho ny lahatsoratra sy ny mombamomba azy ireo izahay:

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Ny fifanakalozana iray dia mamaky avy amin'ny tabilao, ny iray hafa dia manova azy ireo:

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Vokatry ny fifampiraharahana T1, ny lahatsoratra dia manana lohateny = Tsara, ary nohavaozina_by = T2, izay karazana tsy fitoviana.

Raha ny marina, ity dia vakiana tsy azo averina, fa ao anatin'ny tabilao maromaro.

Mba hamahana izany, T1 dia afaka manisy hidin-trano amin'ny andalana rehetra hovakiany, izay hanakana ny T2 tsy hanova ny vaovao. Raha misy MVCC dia hofoanana ny fifampiraharahana T2. Ny fiarovana amin'ity anomaliana ity dia mety ho lasa zava-dehibe raha mampiasa cursors isika.

Manorata skew

Ity anomaliana ity dia mora kokoa hazavaina amin'ny ohatra iray: eritrereto hoe ao amin'ny rafitra misy antsika dia tokony ho dokotera iray farafahakeliny no miasa, saingy nanapa-kevitra ny hanafoana ny adidiny ny dokotera roa:

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Ny tsy fahampiana dia midika fa tsy misy mpitsabo na dia iray aza. Nahoana no nitranga izany? Satria ny fifampiraharahana dia nanamarina fepetra iray izay mety ho voahitsakitsaka amin'ny fifampiraharahana hafa, ary noho ny fitokanana dia tsy nahita izany fiovana izany izahay.

Io ihany ilay vakiteny tsy azo averina. Raha tsy izany dia afaka mametraka hidin-trano amin'ireo rakitsoratra ireo ny mpifidy.

Manoratra mitongilana sy mamaky skew dia fitambaran'ireo tsy mety teo aloha. Azonao atao ny mihevitra ny fanoratana skew, izay tena vakiana phantom. Diniho ny tabilao misy ny anaran'ny mpiasa, ny karamany ary ny tetikasa iasany:

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Inona no mety ho vokatry ny fampihenana ny haavon'ny fitokana-monina amin'ny banky angona?

Vokatr'izany dia mahazo izao sary manaraka izao isika: nihevitra ny mpitantana tsirairay fa tsy hitarika ho amin'ny fihoaran'ny tetibola ny fiovan'izy ireo, noho izany dia nanao fanovana mpiasa izy ireo izay niafara tamin'ny fihoaram-pefy.

Ny antony mahatonga ny olana dia mitovy tanteraka amin'ny famakiana phantom.

hitany

Ny fanalefahana ny haavon'ny fitokana-monina ao amin'ny angon-drakitra dia fifanakalozam-bola eo amin'ny fiarovana sy ny fahombiazany; ny safidy amin'ity ambaratonga ity dia tokony hatonina mifototra amin'ny loza mety hitranga amin'ny orinasa raha misy ny tsy mety.

Mianara bebe kokoa momba ny fianarana.

Source: www.habr.com

Add a comment