Nā hana a me kā lākou mau hana hoʻomalu

Nā ʻoihana

ʻO ke kālepa kahi kaʻina o nā hana ma ka ʻikepili i loaʻa ka hoʻomaka a me ka hopena.

ʻO ke kālepa ka hoʻokō ʻana i nā hana heluhelu a kākau. ʻO ka hopena o kahi kālepa hiki ke mālama i nā loli (commit) a i ʻole ke kāpae ʻana i nā loli (rollback). E pili ana i kahi waihona, aia kekahi mau noi i mālama ʻia ma ke ʻano he noi hoʻokahi.

Pono nā hana e hoʻokō i nā waiwai ACID

Atomicity. Hoʻopau piha ʻia ke kālepa a ʻaʻole loa.

Kūlike. I ka hoʻopau ʻana i kahi kālepa, ʻaʻole pono e uhaki ʻia nā kapu i kau ʻia ma ka ʻikepili (no ka laʻana, nā kaohi i ka waihona. ʻO ke kūlike ka manaʻo e hoʻoneʻe ʻia ka ʻōnaehana mai kekahi mokuʻāina pololei i kekahi mokuʻāina pololei.

Kaʻawale. ʻAʻole pono ka hoʻololi ʻana i nā hana like ʻole, no ka laʻana, hoʻololi i ka ʻikepili i hoʻohana ʻia e kekahi kālepa ʻē aʻe. ʻO ka hopena o ka hoʻokō ʻana i nā hana like ʻole e like me ka hoʻokō ʻia ʻana o nā hana i ka sequentially.

Hoʻomau. Ke hana ʻia, ʻaʻole e nalowale nā ​​​​hoʻololi.

Moʻoʻōlelo kālepa

Mālama ka lāʻau i nā loli i hana ʻia e nā kālepa, e hōʻoia i ka atomicity a me ka paʻa o ka ʻikepili i ka wā o ka hemahema o ka ʻōnaehana

Loaʻa i ka log nā waiwai i loaʻa i ka ʻikepili ma mua a ma hope o ka hoʻololi ʻia e ke kālepa. Pono ka hoʻolālā log kākau mua i ka hoʻohui ʻana i kahi moʻolelo e pili ana i nā waiwai mua ma mua o ka hoʻomaka ʻana, a e pili ana i nā waiwai hope ma hope o ka pau ʻana o ke kālepa. I ka hopena o ka hoʻomaha koke ʻana o ka ʻōnaehana, heluhelu ka waihona i ka log ma ka ʻaoʻao hoʻohuli a kāpae i nā loli i hana ʻia e nā kālepa. Ma hope o ka loaʻa ʻana o kahi hana i hoʻopau ʻia, hoʻokō ka waihona a hoʻololi i ka log. Aia ma ka moku'āina i ka manawa o ka hāʻule ʻana, heluhelu ka waihona i ka log i ka hoʻonohonoho mua a hoʻihoʻi i nā loli i hana ʻia e nā kālepa. Ma kēia ala, mālama ʻia ke kūpaʻa o nā hana i hana ʻia a me ka atomicity o ka hana i hoʻopau ʻia.

ʻAʻole lawa ka hoʻokō hou ʻana i nā hana i hāʻule ʻole no ka hoʻihoʻi.

Laʻana. He $500 ka mea hoʻohana i kāna moʻokāki a hoʻoholo ka mea hoʻohana e hoʻihoʻi iā ia mai kahi ATM. ʻElua mau hana e holo nei. Heluhelu ka mea mua i ka waiwai kaulike a inā lawa nā kālā ma ke koena, hāʻawi ia i ke kālā i ka mea hoʻohana. Hoʻokaʻawale ka lua i ka nui i makemake ʻia mai ke koena. E ʻōlelo kākou ua hāʻule ka ʻōnaehana a ua hāʻule ka hana mua, akā ua hana ka lua. I kēia hihia, ʻaʻole hiki iā mākou ke hāʻawi hou i ke kālā i ka mea hoʻohana me ka ʻole o ka hoʻihoʻi ʻana i ka ʻōnaehana i kona kūlana mua me kahi kaulike maikaʻi.

Nā pae insulation

Heluhelu Hooiaio

ʻO ka pilikia Dirty Read ʻo ia ka hiki ke heluhelu i ka hopena waena o kahi kālepa ʻē aʻe.

Laʻana. ʻO ka waiwai koena mua he $0. Hoʻohui ʻo T1 i $50 i kāu koena. Heluhelu ʻo T2 i ka waiwai kaulike ($50). Hoʻolei ʻo T1 i nā hoʻololi a puka. Hoʻomau ka hoʻokō ʻana o T2 me ka ʻikepili kaulike hewa.

ʻO ka hoʻonā ka heluhelu ʻana i ka ʻikepili paʻa (Read Committed), ka mea e pāpā ai i ka heluhelu ʻana i ka ʻikepili i hoʻololi ʻia e ke kālepa. Inā ua hoʻololi ke kālepa A i kekahi pūʻulu ʻikepili, a laila koi ʻia ke kālepa B, i ka wā e komo ai i kēia ʻikepili, e kali no ka hoʻopau ʻana o ke kālepa A.

Heluhelu hou

Pilikia nā mea hou nalo. Mālama ʻo T1 i nā loli ma luna o nā hoʻololi a T2.

Laʻana. ʻO ka waiwai koena mua he $0 a ʻelua mau hana e hoʻopiha i ke koena i ka manawa like. Heluhelu ʻo T1 a me T2 i ke koena o $0. Hoʻohui ʻo T2 i $200 i $0 a mālama i ka hopena. Hoʻohui ʻo T1 i $100 i $0 a mālama i ka hopena. ʻO ka hopena hope he $100 ma kahi o $300.

Pilikia heluhelu hiki ʻole ke hana hou ʻia. ʻO ka heluhelu pinepine ʻana i ka ʻikepili hoʻokahi e hoʻihoʻi i nā waiwai like ʻole.

Laʻana. Heluhelu ʻo T1 i ke koena o $0. Hoʻohui ʻo T2 i $50 i ke koena a pau. Heluhelu hou ʻo T1 i ka ʻikepili a ʻike i kahi ʻokoʻa me ka hopena mua.

Hōʻoia ka Repeatable Read e hoʻihoʻi mai ka heluhelu ʻelua i ka hopena like. ʻAʻole hiki ke hoʻololi ʻia ka ʻikepili i heluhelu ʻia e kekahi kālepa ma nā mea ʻē aʻe a hiki i ka pau ʻana o ke kālepa. Inā heluhelu ʻia ka ʻikepili A i kekahi pūʻulu ʻikepili, a laila koi ʻia ke kālepa B, i ka wā e komo ai i kēia ʻikepili, e kali no ka hoʻopau ʻana o ke kālepa A.

Heluhelu ʻia (Serializable)

Phantom Reads pilikia. ʻElua mau nīnau e koho ana i ka ʻikepili e pili ana i kekahi kūlana e hoʻihoʻi i nā waiwai like ʻole.

Laʻana. Nīnau ʻo T1 i ka helu o nā mea hoʻohana a pau i ʻoi aku ka nui o ke koena ma mua o $0 akā emi iho ma mua o $100. Wehe ʻo T2 i $1 mai kahi mea hoʻohana me ke koena o $101. Hoʻopuka hou ʻo T1 i ka noi.

Kauoha i ka heluhelu (Serializable). Hoʻokō ʻia nā hana ma ke ʻano he kaʻina holoʻokoʻa. ʻAʻole ʻae ʻia ka hōʻano hou a hoʻohui i nā moʻolelo i hāʻule i loko o nā ʻōlelo o ka noi. Inā ua noi ke kālepa A i ka ʻikepili mai ka papaʻaina holoʻokoʻa, a laila ua paʻa ka papaʻaina holoʻokoʻa no nā hana ʻē aʻe a hiki i ka pau ʻana o ke kālepa A.

Mea hoʻonohonoho

Hoʻonohonoho i ke ʻano o ka hana ʻana i ka wā o nā hana like.

Hāʻawi i kahi kūlana kaʻawale. Inā ʻaʻole i hilinaʻi ka hopena o nā hana i kā lākou kauoha, a laila ua commutative ia mau hana (Permutable). He commutative nā hana heluhelu a me nā hana ma nā ʻikepili like ʻole. ʻAʻole hoʻololi nā hana heluhelu-kākau a kākau-kākau. ʻO ka hana a ka mea hoʻonohonoho hoʻonohonoho e hoʻokaʻawale i nā hana i hana ʻia e nā hana like ʻole i like ka hopena hoʻokō me ka hoʻokō sequential o nā hana.

Mechanisms no ka hoomalu ana i na hana like (Concurrency Control)

Hoʻokumu ʻia ka Optimistic i ka ʻike ʻana a me ka hoʻoponopono ʻana i nā paio, ʻo ka pessimistic e pili ana i ka pale ʻana i nā hakakā mai ka ala ʻana.

Ma ka manaʻo manaʻo maikaʻi, loaʻa i nā mea hoʻohana he mau kope o ka ʻikepili i kā lākou makemake. ʻO ka mea mua e hoʻopau i ka hoʻoponopono e mālama i nā loli, aʻo nā mea ʻē aʻe e hoʻohui i nā loli. Hiki i kahi algorithm optimistic ke kū i ka hakakā, akā pono e hoʻōla ka ʻōnaehana mai ka hakakā.

Me ka manaʻo pessimistic, ʻo ka mea hoʻohana mua e hopu i ka ʻikepili e pale aku i ka loaʻa ʻana o ka ʻikepili. Inā kakaikahi nā paio, he mea naʻauao ke koho i ka hoʻolālā optimistic, no ka mea, hāʻawi ia i kahi kiʻekiʻe o ka concurrency.

Laka ana

Inā hoʻopaʻa ʻia ka ʻikepili hoʻokahi, a laila pono e kali nā hana ʻē aʻe a wehe ʻia ke komo ʻana i ka ʻikepili.

Hiki ke uhi ʻia kahi poloka ma kahi waihona, papaʻaina, lālani, a i ʻole nā ​​hiʻohiʻona. Hiki ke kau ʻia ka Shared Lock i ka ʻikepili like e kekahi mau hana, hiki i nā hana āpau (me ka mea i kau ʻia) e heluhelu, pāpā i ka hoʻololi a me ka hopu kūʻokoʻa. Hiki ke hoʻokau ʻia ʻo Lock Exclusive e hoʻokahi wale nō kālepa, e ʻae i nā hana o ke kālepa hoʻokūkū, pāpā i nā hana a nā poʻe ʻē aʻe.

ʻO kahi deadlock kahi kūlana kahi e pau ai nā hana i kahi kūlana e kali nei e mau loa.

Laʻana. Ke kali nei ka hana mua i ka ʻikepili i hopu ʻia e ka lua e hoʻokuʻu ʻia, aʻo ka lua e kali i ka ʻikepili i hopu ʻia e ka mea mua e hoʻokuʻu ʻia.

ʻO ka hopena maikaʻi loa i ka pilikia deadlock e hiki ai i ka deadlock ke hana, akā e hoʻihoʻi hou i ka ʻōnaehana ma ka ʻōwili ʻana i kekahi o nā hana i pili i ka deadlock.

Huli ʻia nā deadlocks ma kekahi mau manawa. ʻO kekahi o nā ʻano ʻike ma ka manawa, ʻo ia hoʻi, e noʻonoʻo ua hiki mai kahi paʻa inā lōʻihi loa ka hoʻopau ʻana. Ke ʻike ʻia kahi deadlock, ʻōwili ʻia kekahi o nā hana, e ʻae ana i nā hana ʻē aʻe e pili ana i ka deadlock e hoʻopau. Hiki ke koho ʻia ka mea i pepehi ʻia ma muli o ka waiwai o nā kālepa a i ʻole ko lākou kūlana kiʻekiʻe (Wait-Die and Wound-wait schemes).

ʻO kēlā me kēia kālepa T kau ʻia kahi hōʻailona manawa TS aia ka manawa hoʻomaka o ke kālepa.

Kali-Make.

ina TS(Ti) < TS(Tj)alaila Ti kali, i ole Ti ʻōwili i hope a hoʻomaka hou me ka hōʻailona manawa like.

Inā loaʻa i kahi kālepa ʻōpio kahi kumuwaiwai a noi ʻia kahi ʻoihana kahiko i ka waiwai like, a laila ʻae ʻia ke kālepa kahiko e kali. Inā loaʻa i kahi kālepa kahiko kahi kumuwaiwai, a laila e hoʻihoʻi ʻia ka ʻoihana ʻōpio e noi ana i ia kumuwaiwai.

ʻEha-kali.

ina TS(Ti) < TS(Tj)alaila Tj ʻōwili i hope a hoʻomaka hou me ka manawa like, i ʻole Ti ke kali nei.

Inā loaʻa i kahi kālepa ʻōpio kahi kumu waiwai a noi ʻia kahi ʻoihana kahiko i ka kumuwaiwai like, a laila e ʻōwili ʻia ke kālepa ʻōpio. Inā loaʻa i kahi kālepa kahiko kahi kumu waiwai, a laila ʻae ʻia ke kālepa ʻōpio e noi ana i ia kumuwaiwai e kali. ʻO ke koho ʻana i ka mea i hoʻopaʻa ʻia ma mua e pale i nā deadlocks, akā e hoʻihoʻi i nā hana i hoʻopaʻa ʻole ʻia. ʻO ka pilikia, hiki ke hoʻihoʻi ʻia nā kālepa i nā manawa he nui no ka mea ... hiki i kahi kālepa kahiko ke paʻa i ka waiwai no ka manawa lōʻihi.

ʻAʻole ʻae ka hoʻonā pessimistic i ka pilikia deadlock e hoʻomaka i kahi kālepa e hoʻokō inā loaʻa kahi pilikia o kahi deadlock.

No ka ʻike ʻana i kahi paʻa, kūkulu ʻia kahi pakuhi (ka pakuhi kali, kali-no-graph), nā vertice o ia mau hana, a kuhikuhi ʻia nā ʻaoʻao mai nā hana e kali ana no ka hoʻokuʻu ʻana i ka ʻikepili i ke kālepa i hopu i kēia ʻikepili. Manaʻo ʻia ua loaʻa kahi paʻa inā loaʻa ka loop loop. He hana pipiʻi ke kūkulu ʻana i ka pakuhi kali, ʻoi aku hoʻi ma nā ʻikepili i puʻunaue ʻia.

ʻO ka laka ʻelua-phase - pale i nā deadlocks ma ka hopu ʻana i nā kumuwaiwai āpau i hoʻohana ʻia e kahi kālepa i ka hoʻomaka ʻana o ke kālepa a hoʻokuʻu iā lākou i ka hopena.

Pono nā hana pale a pau ma mua o ka wehe mua ʻana. He ʻelua ʻāpana - Growing Phase, kahi e hōʻiliʻili ai nā lima, a me Shrinking Phase, kahi e hoʻokuʻu ʻia ai nā lima. Inā hiki ʻole ke hopu i kekahi o nā kumuwaiwai, hoʻomaka hou ke kālepa. ʻAʻole hiki i kahi kālepa ke loaʻa nā kumuwaiwai i koi ʻia, no ka laʻana, inā hoʻokūkū kekahi mau hana no nā kumuwaiwai like.

ʻO ka hoʻopaʻa ʻana ʻelua ʻāpana e hōʻoia i ka hoʻokō ʻia ʻana o ka hana ma nā replicas ʻikepili āpau

Hoʻokomo kēlā me kēia waihona i ka ʻike e pili ana i ka ʻikepili e hoʻololi ʻia i loko o ka log a pane i ka coordinator OK (Voting Phase). Ma hope o ka pane ʻana o nā mea a pau i ka OK, hoʻouna ka mea hoʻoponopono i kahi hōʻailona e koi ana i nā mea a pau e hana. Ma hope o ka hoʻokō ʻana, pane mai nā kikowaena OK; inā ʻaʻole i pane maikaʻi kekahi, a laila e hoʻouna ka mea hoʻonohonoho i kahi hōʻailona e hoʻopau i nā loli i nā kikowaena āpau (Completion Phase).

ʻO ke ʻano hōʻailona manawa

Hoʻihoʻi ʻia kahi kālepa kahiko i ka wā e hoʻāʻo ai e komo i ka ʻikepili i pili i kahi kālepa ʻōpio

Hāʻawi ʻia kēlā me kēia hana i kahi hōʻailona manawa TS pili i ka manawa hoʻomaka o ka hoʻokō. Ina Ti ʻelemakule Tjalaila TS(Ti) < TS(Tj).

Ke hoʻihoʻi ʻia kahi kālepa, hāʻawi ʻia ia i kahi hōʻailona manawa hou. ʻO kēlā me kēia meaʻikepili Q i komo i loko o ke kālepa ua hōʻailona ʻia me nā lepili ʻelua. W-TS(Q) — ka hōʻailona manawa o ka hana ʻōpio loa i hoʻopau pono i kahi moʻolelo Q. R-TS(Q) - ka hōʻailona manawa o ka hana ʻōpio loa i hana i kahi moʻolelo heluhelu ma Q.

I ka wā o ke kālepa T noi e heluhelu i ka ikepili Q ʻelua hiki ke koho.

ina TS(T) < W-TS(Q), ʻo ia hoʻi, ua hōʻano hou ʻia ka ʻikepili e kahi kālepa ʻōpio, a laila ke kālepa T kaʻa i hope.

ina TS(T) >= W-TS(Q), alaila, hanaia ka heluhelu a R-TS(Q) ke hoʻomaka nei MAX(R-TS(Q), TS(T)).

I ka wā o ke kālepa T noi i nā hoʻololi ʻikepili Q ʻelua hiki ke koho.

ina TS(T) < R-TS(Q), ʻo ia hoʻi, ua heluhelu mua ʻia ka ʻikepili e kahi kālepa ʻōpio a inā e hoʻololi ʻia, e kū mai kahi hakakā. Pāʻoihana T kaʻa i hope.

ina TS(T) < W-TS(Q), 'o ia ho'i, ke ho'ā'o nei ke kālepa e kākau i kahi waiwai hou a'e, ho'ohuli 'ia ke kālepa T. I nā hihia ʻē aʻe, hoʻokō ʻia ka hoʻololi a W-TS(Q) lilo like TS(T).

ʻAʻole koi ʻia ke kūkulu ʻana i ka pakuhi kakali pipiʻi. Pili nā hana kahiko i nā mea hou, no laila, ʻaʻohe pōʻai i ka pakuhi kali. ʻAʻohe mea paʻa no ka mea ʻaʻole kali ʻia nā hana akā ua ʻōwili koke ʻia. Hiki ke hoʻololi hou i ka Cascading. Ina Ti olokaa aku a Tj Ua heluhelu au i ka ʻikepili aʻu i hoʻololi ai Tialaila Tj pono no hoi e olokaa hope. Inā i ka manawa like Tj ua hana mua ʻia, a laila e uhaki ʻia ke kumu o ke kūpaʻa.

ʻO kekahi o nā mea hoʻonā i nā rollbacks cascading. Hoʻopau ke kālepa i nā hana kākau a pau ma ka hopena, a pono e kali nā hana ʻē aʻe a pau ia hana. Ke kali nei nā hana ma mua o ka heluhelu ʻana.

Ua kākau ʻo Thomas i ka lula - he ʻano hoʻololi o ke kaʻina timestamp kahi i pāpā ʻia ai ka ʻikepili i hoʻonui ʻia e kahi kālepa ʻōpio mai ke kākau ʻia ʻana e kahi mea kahiko.

kālepa T noi i nā hoʻololi ʻikepili Q. ^ E Ha yM. Inā TS(T) < W-TS(Q), 'o ia ho'i, ke ho'ā'o nei ke kālepa e kākau hou i ka waiwai hou, 'a'ole 'oloka'ia ke kālepa T e like me ke 'ano o ka timestamp.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka