Nga whakawhitinga i roto i te ao InterSystems IRIS

Nga whakawhitinga i roto i te ao InterSystems IRISKei te tautoko te InterSystems IRIS DBMS i nga hanganga whakamere mo te penapena raraunga - ao. Ko te tikanga, he taviri taumata-maha enei me nga momo pai taapiri i te ahua o nga whakawhitinga, nga mahi tere mo te whakawhiti i nga rakau raraunga, nga raka me tana ake reo ObjectScript.

Pānuihia atu mo te ao i roto i te raupapa o nga tuhinga "Ko nga Ao he taonga-hoari mo te rokiroki raraunga":

Nga rakau. Wāhanga 1
Nga rakau. Wāhanga 2
Nga rarangi iti. Wāhanga 3

I aro atu ahau ki te whakatinanatanga o nga whakawhitinga ki te ao, he aha nga ahuatanga kei reira. I muri i nga mea katoa, he hanganga rereke tenei mo te rokiroki raraunga mai i nga ripanga o mua. He taumata iti rawa.

E mohiotia ana mai i te ariā o nga paaunga hononga, ko te whakatinanatanga pai o nga whakawhitinga me tutuki nga whakaritenga ACID:

A - Ngota (ngota). Ko nga huringa katoa i mahia i roto i te tauwhitinga, karekau ranei ka tuhia.

C - Tauritenga. I muri i te otinga o te tauwhitinga, me noho rite te ahua arorau o te papaaarangi. He maha nga huarahi e pa ana tenei whakaritenga ki te kaiwhakaputa, engari mo nga papaa raraunga SQL e pa ana ki nga taviri ke.

Ahau - Wehewehe. Ko nga whakawhitinga e rere whakarara ana kia kaua e pa tetahi ki tetahi.

D - Maamaa. I muri i te otinga angitu o te tauwhitinga, ko nga raruraru i nga taumata iti (te korenga o te hiko, hei tauira) kaua e pa ki nga raraunga i whakarerekehia e te tauwhitinga.

Ko nga ao he hanganga raraunga kore hononga. I hoahoatia kia rere tere rawa i runga i nga taputapu iti rawa. Kia titiro tatou ki te whakatinanatanga o nga whakawhitinga i roto i te ao ma te whakamahi whakaahua IRIS docker mana.

Hei tautoko i nga whakawhitinga i roto i te IRIS, ka whakamahia nga whakahau e whai ake nei: TIMA, TCOMMIT, TROLLBACK.

1. Atomicity

Ko te huarahi ngawari ki te tirotiro ko te atomicity. Ka tirohia e matou mai i te papatohu pātengi raraunga.

Kill ^a
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TCOMMIT

Na ka whakatau tatou:

Write ^a(1), “ ”, ^a(2), “ ”, ^a(3)

Ka whiwhi tatou:

1 2 3

He pai nga mea katoa. Ka mau tonu te Atomicity: ka tuhia nga huringa katoa.

Kia whakaraeraehia te mahi, whakauruhia he hapa ka kite me pehea te penapena o te tauwhitinga, he waahanga, kaore ranei.

Kia tirohia ano te atomicity:

Kill ^A
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3

Katahi ka kaha te aukati i te ipu, ka whakarewahia ka kite.

docker kill my-iris

He rite tonu tenei whakahau ki te katinga kaha, na te mea ka tukuna he tohu SIGKILL kia mutu tonu te mahi.

I tiakina pea te tauwhitinga?

WRITE ^a(1), ^a(2), ^a(3)
^
<UNDEFINED> ^a(1)

- Kaore, kaore i ora.

Me ngana i te whakahau whakamuri:

Kill ^A
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TROLLBACK

WRITE ^a(1), ^a(2), ^a(3)
^
<UNDEFINED> ^a(1)

Kaore ano he mea i ora.

2. Te riterite

I te mea i roto i nga papaaarangi i runga i te ao, ka mahia ano nga taviri i runga i te ao (kia whakamahara ahau ki a koe ko te ao he hanganga taumata-iti ake mo te rokiroki raraunga i te ripanga hononga), ki te whakatutuki i te whakaritenga rite, me whakauru he huringa ki te matua. i roto i te tauwhitinga rite ki te huringa i roto i te ao.

Hei tauira, he tangata ^ao tatou, kei roto i a tatou te pupuri i nga ahuatanga me te whakamahi i te TIN hei taviri.

^person(1234567, ‘firstname’) = ‘Sergey’
^person(1234567, ‘lastname’) = ‘Kamenev’
^person(1234567, ‘phone’) = ‘+74995555555
...

Kia tere te rapu ma te ingoa whakamutunga me te ingoa tuatahi, i mahia e matou te ^ index key.

^index(‘Kamenev’, ‘Sergey’, 1234567) = 1

Kia rite tonu te papaa raraunga, me taapiri te tangata penei:

TSTART
^person(1234567, ‘firstname’) = ‘Sergey’
^person(1234567, ‘lastname’) = ‘Kamenev’
^person(1234567, ‘phone’) = ‘+74995555555
^index(‘Kamenev’, ‘Sergey’, 1234567) = 1
TCOMMIT

Na reira, ina mukua me whakamahi ano he tauwhitinga:

TSTART
Kill ^person(1234567)
ZKill ^index(‘Kamenev’, ‘Sergey’, 1234567)
TCOMMIT

I etahi atu kupu, ko te whakatutuki i nga whakaritenga rite tonu kei runga i nga pakihiwi o te kaihataka. Engari ka tae ki te ao, he mea noa tenei, na te ahua o te taumata iti.

3. Wehewehenga

Koinei te waahi ka timata te mohoao. He maha nga kaiwhakamahi i te wa kotahi e mahi ana i runga i te papaunga raraunga kotahi, ka huri i nga raraunga ano.

He rite te ahuatanga ki te maha o nga kaiwhakamahi i te wa e mahi tahi ana me te putunga waehere kotahi me te ngana ki te whakarereke i nga huringa ki nga konae maha i te wa kotahi.

Ko te papaa raraunga me whakariterite katoa i roto i te waa. Ki te whakaaro kei roto i nga kamupene nui he tangata motuhake kei a ia te kawenga mo te whakahaere putanga (mo te whakakotahi i nga manga, te whakatau i nga tautohetohe, me etahi atu), me mahi katoa enei mea i roto i te paataka, te uaua o te mahi me te tika o te hoahoa pātengi raraunga me te waehere e mahi ana.

Kaore e taea e te paataka korero te mohio ki te tikanga o nga mahi e mahia ana e nga kaiwhakamahi hei karo i nga papā mena kei te mahi i runga i nga raraunga kotahi. Ka taea anake te whakakore i tetahi tauwhitinga e taupatupatu ana ki tetahi atu, ki te mahi raupapa ranei.

Ko tetahi atu raruraru ko te wa e mahia ana he whakawhitinga (i mua i te mahi), ka kore e rite te ahua o te papaarangi, na reira ko te hiahia kia kore e uru atu etahi atu whakawhitinga ki te ahua rereke o te papaarangi, e tutuki ana i roto i nga papaarangi hononga. i roto i te maha o nga huarahi: te hanga pikitia, nga rarangi whakaputa-maha me etahi atu.

I te wa e mahi whakarara ana nga whakawhitinga, he mea nui kia kaua e pokanoa tetahi ki tetahi. Ko te taonga tenei mo te wehe.

Ka tautuhia e SQL nga taumata wehe e 4:

  • PĀNUITIA KORE
  • PĀNUITIA ATU
  • PANUITANGA KAUPAPA
  • SERIALIZBLE

Me titiro motuhake ki ia taumata. Ko nga utu mo te whakatinana i ia reanga tata ka tipu haere.

PĀNUITIA KORE - koinei te taumata iti rawa o te wehe, engari i te wa ano ko te tere. Ka taea e nga whakawhitinga te panui i nga huringa i mahia e tetahi ki tetahi.

PĀNUITIA ATU ko te taumata e whai ake nei mo te wehe, he taupatupatu. Kaore e taea e nga tauwhitinga te panui i nga huringa a tetahi i mua i te tukunga, engari ka taea e raatau te panui i nga huringa i mahia i muri i te tukunga.

Mena he roa ta matou tauwhitinga T1, i te wa i mahia ai nga mahi i roto i nga whakawhitiwhitinga T2, T3 ... Tn, i mahi me nga raraunga rite ki a T1, na ka tono raraunga i roto i te T1 ka puta he hua rereke ia wa. Ko tenei ahuatanga e kiia ana ko te panui kore-rua.

PANUITANGA KAUPAPA — i roto i tenei taumata wehe karekau he ahuatanga o te panui kore-whakahoki, na te mea mo ia tono ki te panui raraunga, ka hangaia he whakaahua o nga raraunga hua ka whakamahia ano i roto i te tauwhitinga kotahi, ko nga raraunga mai i te whakaahua. ka whakamahia. Heoi, ka taea te panui i nga raraunga phantom i tenei taumata wehe. E pa ana tenei ki te panui i nga rarangi hou i taapirihia e nga tauwhitinga whakarara.

SERIALIZBLE - te taumata teitei o te whakamatao. E tohuhia ana ko nga raraunga e whakamahia ana i roto i tetahi huarahi i roto i te whakawhitinga (te panui, te whakarereke ranei) ka waatea ki etahi atu whakawhitinga i muri i te otinga o te whakawhitinga tuatahi.

Tuatahi, kia mohio tatou mehemea he wehenga o nga mahi i roto i te whakawhitinga mai i te miro matua. Kia whakatuwherahia nga matapihi 2 kati.

Kill ^t

Write ^t(1)
2

TSTART
Set ^t(1)=2

Karekau he wehenga. Ka kite tetahi miro he aha te mahi a te tuarua nana i whakatuwhera te tauwhitinga.

Kia kite tatou mena ka kite nga tauwhitinga o nga miro rereke he aha kei roto.

Kia whakatuwherahia nga matapihi e 2, ka whakatuwhera i nga tauwhitinga e 2 ki te whakarara.

kill ^t
TSTART
Write ^t(1)
3

TSTART
Set ^t(1)=3

Ka kite nga tauwhitinga whakarara i nga raraunga o tetahi ki tetahi. Na, i riro mai i a maatau te mea ngawari, engari ano hoki te taumata wehe tere, PĀNUITIA KORE.

Ko te tikanga, ka taea tenei te tumanako mo te ao, he mahi matua tonu.

He aha mena ka hiahia tatou ki te taumata teitei ake o te wehe i roto i nga mahi i runga i te ao?

I konei me whakaaro koe he aha te mea e hiahiatia ana nga taumata wehe me pehea te mahi.

Ko te taumata teitei rawa atu, SERIALIZE, ko te tikanga ko te hua o nga tauwhitinga ka mahia i roto i te whakarara e rite ana ki to raatau mahi raupapa, e whakapumau ana i te kore o nga tukinga.

Ka taea e tatou te mahi ma te whakamahi i nga raka atamai i roto i te ObjectScript, he maha nga momo whakamahinga: ka taea e koe te mahi i nga wa katoa, te taapiri, te raka maha me te whakahau. Tuhinga.

Ko nga taumata wehe iti ake he tauhokohoko i hangaia hei whakanui ake i te tere o te patengi raraunga.

Kia kite tatou me pehea e taea ai e tatou nga taumata rereke rereke ma te whakamahi raka.

Ma tenei kaiwhakahaere ka taea e koe te tango i nga raka motuhake e hiahiatia ana hei whakarereke i nga raraunga, engari ko nga mea e kiia ana ko nga raka tiritahi, ka taea te tango i nga miro maha i te wa e hiahia ana ratou ki te panui i nga raraunga kaore e tika kia whakarereketia e etahi atu tukanga i te wa o te panui.

He maha atu nga korero mo te tikanga aukati-rua i te reo Ruhia me te reo Ingarihi:

Parenga-rua
Maukati rua-waahanga

Ko te uaua i te wa o te tauwhitinga ka kore e rite te ahua o te paataka korero, engari ka kitea tenei raraunga koretake ki etahi atu tukanga. Me pehea te karo i tenei?

Ma te whakamahi i nga raka, ka hangaia e matou nga matapihi whakakitenga e rite ai te ahua o te papaarangi. A ko nga urunga katoa ki nga matapihi o te tirohanga o te whenua kua whakaaetia ka whakahaerehia e nga raka.

Ko nga raka tiritahi i runga i nga raraunga kotahi ka taea te whakamahi ano - he maha nga tukanga ka taea. Ko enei raka ka aukati i etahi atu tukanga ki te whakarereke i nga raraunga, i.e. ka whakamahia hei hanga i nga matapihi o te ahua o te papaunga raraunga.

Ka whakamahia nga raka motuhake mo nga huringa raraunga - kotahi anake te tukanga ka taea te tango i taua raka. Ka taea te tango raka motuhake ma:

  1. Tetahi tukanga mena he kore utu te raraunga
  2. Ko te tukanga anake he raka tiritahi i runga i enei raraunga, ko te mea tuatahi ki te tono raka motuhake.

Nga whakawhitinga i roto i te ao InterSystems IRIS

Ko te whaiti o te matapihi whakakitenga, ka roa te roa o etahi atu tukanga e tatari ana, engari ka rite tonu te ahua o te patengi raraunga kei roto.

READ_COMMITTED — Ko te ngako o tenei taumata ka kite noa tatou i nga raraunga pumau mai i etahi atu miro. Mena kaore ano kia mahia nga raraunga i roto i tetahi atu whakawhitinga, ka kite tatou i tana putanga tawhito.

Ma tenei ka taea e tatou te whakarara i te mahi hei utu mo te tatari kia tukuna te raka.

Ki te kore he tinihanga motuhake, kaore e taea e matou te kite i te putanga tawhito o nga raraunga i roto i te IRIS, na me mahi maatau ki nga raka.

No reira, me whakamahi tatou i nga raka tiritahi kia taea ai te panui raraunga i nga wa e rite ana.

Me kii tatou he turanga kaiwhakamahi ^te tangata e whakawhiti moni ana ki a raua.

Te wa whakawhiti mai i te tangata 123 ki te tangata 242:

LOCK +^person(123), +^person(242)
Set ^person(123, amount) = ^person(123, amount) - amount
Set ^person(242, amount) = ^person(242, amount) + amount
LOCK -^person(123), -^person(242)

Ko te wa o te tono moni mai i te tangata 123 i mua i te nama nama me whai tahi me tetahi poraka motuhake (ma te taunoa):

LOCK +^person(123)
Write ^person(123)

A, ki te hiahia koe ki te whakaatu i te mana o te kaute i roto i to putea whaiaro, katahi ka taea e koe te whakamahi i te raka tiritahi karekau ranei e whakamahi:

LOCK +^person(123)#”S”
Write ^person(123)

Heoi, ki te whakaaro tatou he tata tonu te mahi o nga mahi papaa raraunga (me whakamahara atu e au ko te ao he hanganga taumata-iti ake i te teepu hononga), ka heke te hiahia mo tenei taumata.

PANUITANGA KAUPAPA - Ma tenei taumata wehe ka taea te panui maha o nga raraunga ka taea te whakarereke ma nga whakawhitinga tukutahi.

No reira, me whakatakoto he raka tiritahi mo te panui i nga raraunga ka hurihia e matou me nga raka motuhake mo nga raraunga ka hurihia e matou.

Waimarie, ka taea e te kaiwhakahaere LOCK te whakarārangi taipitopito i nga raka katoa e tika ana, he maha pea, i roto i te korero kotahi.

LOCK +^person(123, amount)#”S”
чтение ^person(123, amount)

etahi atu mahi (i tenei wa ka ngana nga miro whakarara ki te huri ^tangata(123, nui), engari kaore e taea)

LOCK +^person(123, amount)
изменение ^person(123, amount)
LOCK -^person(123, amount)

чтение ^person(123, amount)
LOCK -^person(123, amount)#”S”

Ina whakarārangihia ngā raka e wehea ana e ngā piko, ka tangohia ā-raupapa, engari ki te mahi koe i tenei:

LOCK +(^person(123),^person(242))

katahi ka tangohia i te wa kotahi.

TUPONO — me whakarite e matou nga raka kia oti ai nga whakawhitinga katoa e whai raraunga noa ana ka mahia. Mo tenei huarahi, me noho motuhake te nuinga o nga raka ka mau ki nga waahi iti rawa o te ao mo te mahi.

Mena ka korero tatou mo te nama moni i roto i te ao ^tangata, katahi ka whakaaehia te taumata wehe SERIALIZE mo taua mea, na te mea me whakapau kaha te moni, ki te kore ka taea te whakapau i te moni kotahi i nga wa maha.

4. Te mauroa

I whakahaerehia e ahau nga whakamatautau me te tapahi pakeke o te ipu ma te whakamahi

docker kill my-iris

I pai te turanga ki a ratou. Kaore he raruraru i kitea.

mutunga

Mo te ao, kei a InterSystems IRIS te tautoko tauwhitinga. He tino ngota me te pono. Hei whakarite i te riterite o te putunga korero i runga i te ao, me whakapau kaha te hunga htaka me te whakamahi i nga tauwhitinga, na te mea karekau he hangai hanga-a-roto penei i nga taviri ke.

Ko te taumata wehe o te ao me te kore e whakamahi raka he READ UNCOMMITED, a ka whakamahi raka ka taea te whakarite ki te taumata SERIALIZE.

Ko te tika me te tere o nga whakawhitiwhitinga i runga i te ao ka whakawhirinaki ki te mohio o te kaitakataka: ko te nui ake o nga raka tiritahi ka whakamahia i te wa e panui ana, ka teitei ake te taumata o te wehe, me te kaha ake o nga kati motuhake ka tangohia, ka tere ake te mahi.

Source: will.com

Tāpiri i te kōrero