Fefaatauaiga i InterSystems IRIS lalolagi

Fefaatauaiga i InterSystems IRIS lalolagiE lagolagoina e le InterSystems IRIS DBMS fausaga manaia mo le teuina o faʻamaumauga - lalolagi. O le mea moni, o nei ki e tele-tulaga faʻatasi ai ma isi mea lelei faʻaopoopo i le tulaga o fefaʻatauaiga, galuega vave mo le felauaiga o laʻau faʻamaumauga, loka ma lana lava gagana ObjectScript.

Faitau atili e uiga i lalolagi i le faasologa o tala "Globals o 'oa-pelu mo le teuina o faʻamatalaga":

Laau. Vaega 1
Laau. Vaega 2
Fa'asologa fa'apitoa. Vaega 3

Na amata ona ou fiafia i le faʻaogaina o fefaʻatauaiga i le lalolagi atoa, o a mea o loʻo i ai. A uma mea uma, o se fausaga e matua ese lava mo le teuina o faʻamaumauga nai lo laulau masani. Tulaga maualalo tele.

E pei ona iloa mai le talitonuga o fesoʻotaʻiga faʻamaumauga, o se faʻatinoga lelei o fefaʻatauaiga e tatau ona faʻamalieina manaʻoga ACID:

A - Atomic (atomicity). O suiga uma na faia i le fefaʻatauaʻiga poʻo leai se mea uma e faʻamaumau.

C - Fa'amaoni. A mae'a se fefa'ataua'iga, e tatau ona fa'alotoifale le tulaga sa'o o fa'amaumauga. I le tele o auala o lenei manaʻoga e faʻatatau i le tagata fai polokalame, ae i le tulaga o faʻamaumauga SQL e faʻatatau foi i ki mai fafo.

Ou - Tuuese. O fefa'atauaiga o lo'o fa'atutusa e le tatau ona a'afia ai le tasi ma le isi.

D - Tumau. A maeʻa le faʻamaeʻaina o se fefaʻatauaiga, o faʻafitauli i tulaga maualalo (faʻaleagaina o le eletise, mo se faʻataʻitaʻiga) e le tatau ona aʻafia ai faʻamatalaga ua suia e le fefaʻatauaiga.

Globals o faʻamaumauga e le o fesoʻotaʻiga. Na mamanuina e tamo'e vave tele i luga o meafaigaluega fa'atapula'a. Sei o tatou vaʻavaʻai i le faʻatinoga o fefaʻatauaiga i le lalolagi faʻaaogaina ata aloaia IRIS docker.

Ina ia lagolagoina fefaʻatauaiga i IRIS, o loʻo faʻaaogaina tulafono nei: TALA, TCOMMIT, TROLLBACK.

1. Atomicity

O le auala pito sili ona faigofie e siaki ai o le atomicity. Matou te siaki mai le faʻamafanafanaga faʻamaumauga.

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

Ona tatou faaiuina lea:

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

Matou te maua:

1 2 3

Ua lelei mea uma. Atomicity o lo'o fa'atumauina: fa'amaumau uma suiga.

Sei o tatou faʻalavelaveina le galuega, faʻaalia se mea sese ma vaʻai pe faʻafefea ona faʻasaoina le fefaʻatauaiga, vaega pe leai foi.

Sei o tatou toe siaki le atomicity:

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

Ona matou taofi malosi lea o le atigipusa, faʻalauiloa ma vaʻai.

docker kill my-iris

O lenei fa'atonuga e toetoe lava tutusa ma le fa'amalosi e tapunia, aua e tu'uina atu se fa'ailoga SIGKILL e taofi vave ai le gaioiga.

Masalo o le fefaʻatauaiga na faʻasaoina se vaega?

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

- Leai, e leʻi ola.

Sei o tatou taumafai i le rollback poloaiga:

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)

E leai foi se mea ua ola.

2. Fa'amaoni

Talu ai i faʻamaumauga e faʻavae i luga ole lalolagi, e faia foi ki i luga ole lalolagi (seʻi ou faamanatu atu ia te oe o le lalolagi o se fausaga maualalo mo le teuina o faʻamaumauga nai lo se laulau faʻafesoʻotaʻi), e faʻafetaui le manaʻoga tumau, e tatau ona aofia ai se suiga i le ki. i le fefaʻatauaʻiga tutusa e pei o se suiga i le lalolagi.

Mo se faʻataʻitaʻiga, o loʻo i ai so matou lalolagi ^tagata, lea matou te teuina ai uiga ma matou faʻaogaina le TIN e fai ma ki.

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

Ina ia maua se su'esu'ega vave i le igoa fa'ai'u ma le igoa muamua, na matou faia le ^index key.

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

Ina ia mafai ona ogatasi le database, e tatau ona tatou faʻaopopoina le tagata e pei o lenei:

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

E tusa ai, pe a tapeina e tatau foi ona tatou faʻaogaina se fefaʻatauaiga:

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

I se isi faaupuga, o le faʻataunuʻuina o mea e manaʻomia e faʻalagolago atoa i luga o tauau o le tagata fai polokalame. Ae a oʻo mai i lalolagi, e masani lava, ona o lo latou tulaga maualalo.

3. Faaesea

O iinei e amata ai le vao. O le tele o tagata fa'aoga e galulue i le taimi lava e tasi i luga o fa'amaumauga e tasi, suia fa'amaumauga tutusa.

O le tulaga e faʻatusatusa i le tele o tagata faʻaoga e galulue i le taimi e tasi ma le faʻamaumauga tutusa ma taumafai e faia suiga i le tele o faila i le taimi e tasi.

O le database e tatau ona fa'avasega uma i le taimi moni. Mafaufau i totonu o kamupani ogaoga o loʻo i ai se tagata faʻapitoa e nafa ma le faʻatonutonuina o faʻasalalauga (mo le tuʻufaʻatasia o lala, foʻia feteʻenaʻiga, ma isi), ma o le database e tatau ona faia uma nei mea i le taimi moni, le lavelave o le galuega ma le saʻo o le mamanu fa'amaumauga ma le fa'ailoga o lo'o tautua ai.

E le mafai e le database ona malamalama i le uiga o gaioiga na faia e tagata faʻaoga ina ia aloese ai mai feeseeseaiga pe a latou galulue i luga o faʻamatalaga tutusa. E na'o le tasi le fefa'atauaiga e fete'ena'i ma le isi, pe fa'atino fa'asolosolo.

O le isi faʻafitauli o le taimi o le faʻataunuʻuina o se fefaʻatauaiga (aʻo leʻi faia), o le tulaga o le database atonu e le ogatasi, o lea e manaʻomia ai isi fefaʻatauaiga e le maua le avanoa i le tulaga le mautonu o le database, lea e ausia i faʻamaumauga fesoʻotaʻiga. i le tele o auala: fatuina ata, laina tele-versioning ma isi.

Pe a faʻatinoina fefaʻatauaiga i se tulaga tutusa, e taua mo i tatou ia aua neʻi faʻalavelave le tasi i le isi. O le meatotino lea o le faaesea.

O lo'o fa'amatalaina e le SQL 4 tulaga tu'ufua:

  • FAITAU E LE FA'ATAUINA
  • FAITAU FAITAU
  • FAITAU FAATAU
  • SERIALIZABLE

Se'i o tatou va'ava'ai i tulaga ta'itasi. O tau o le faʻatinoina o laʻasaga taʻitasi e faʻatupulaia toetoe lava faʻateleina.

FAITAU E LE FA'ATAUINA - o le tulaga aupito maualalo lea o le tu'uesea, ae i le taimi lava e tasi e sili ona vave. O fefa'atauaiga e mafai ona faitau suiga na faia e le tasi ma le isi.

FAITAU FAITAU o le isi tulaga o le fa'a'esea, o le fa'afitu. E le mafai e fefa'atauaiga ona faitau suiga a le tasi a'o le'i faia le tautinoga, ae e mafai ona latou faitau i so'o se suiga e faia pe a uma le tautinoga.

Afai ei ai a matou fefaʻatauaiga umi T1, i le taimi na faia ai faʻamatalaga i fefaʻatauaiga T2, T3 ... Tn, lea na galulue faʻatasi ma faʻamatalaga tutusa e pei o T1, pe a talosagaina faʻamatalaga i T1 o le a matou maua se iʻuga eseese i taimi uma. O lea tulaga e ta'ua o le faitau lē toe faia.

FAITAU FAATAU - i lenei tulaga faʻaesea matou te le maua le faʻalavelave o le faitau le toe faʻaaogaina, ona o le mea moni e faapea mo talosaga taʻitasi e faitau faʻamaumauga, o se ata o faʻamaumauga o faʻamaumauga e faia ma pe a toe faʻaaogaina i le fefaʻatauaiga lava e tasi, o faʻamaumauga mai le ata. e fa'aaogaina. Ae ui i lea, e mafai ona faitau faʻamatalaga phantom i lenei tulaga tuʻufua. E faasino lea i le faitauina o laina fou na fa'aopoopoina i fefa'atauaiga tutusa.

SERIALIZABLE - le maualuga maualuga o le insulation. O loʻo faʻaalia i le mea moni o faʻamatalaga e faʻaaogaina i soʻo se auala i se fefaʻatauaiga (faitau pe suia) e maua i isi fefaʻatauaiga naʻo le maeʻa o le fefaʻatauaiga muamua.

Muamua, seʻi o tatou vaʻai pe o iai le faʻaesea o gaioiga i se fefaʻatauaiga mai le filo autu. Tatou tatala 2 fa'amalama fa'amau.

Kill ^t

Write ^t(1)
2

TSTART
Set ^t(1)=2

E leai se faaesea. O le tasi filo e iloa ai le mea o loʻo faia e le lona lua na tatalaina le fefaʻatauaiga.

Se'i va'ai pe va'ai fefa'ataua'iga o filo eseese le mea o lo'o tupu i totonu.

Tatou tatala 2 fa'amalama fa'amalama ma tatala 2 fefa'ataua'iga i le tutusa.

kill ^t
TSTART
Write ^t(1)
3

TSTART
Set ^t(1)=3

O fefa'atauaiga tutusa e va'aia fa'amaumauga a le tasi. O lea la, na matou maua le sili ona faigofie, ae faʻapea foʻi le tulaga faʻaesea sili ona vave, FAITAU UNCOMMITED.

I le faʻavae, e mafai ona faʻamoemoeina mo le lalolagi atoa, lea o le faʻatinoga o loʻo avea pea ma faʻamuamua.

Ae faʻapefea pe a tatou manaʻomia se maualuga maualuga o le faʻaesea i gaioiga i luga ole lalolagi?

O iinei e tatau ona e mafaufau pe aisea e manaʻomia ai le tuʻuesea ma pe faʻafefea ona latou galulue.

Ole maualuga maualuga ole tulaga, SERIALIZE, o lona uiga o le taunuuga o fefaʻatauaʻiga na faia faʻatasi e tutusa ma latou faʻasologa faʻasologa, lea e faʻamaonia ai le leai o ni faʻalavelave.

E mafai ona matou faia lenei mea e faʻaaoga ai loka atamai i le ObjectScript, lea e tele naua faʻaoga eseese: e mafai ona e faia masani, faʻaopoopoga, tele lokaina ma le poloaiga LOCK.

O tulaga tu'utasi maualalo o fefa'ataua'iga ua fuafuaina e fa'ateleina ai le saoasaoa o fa'amaumauga.

Se'i va'ai pe fa'afefea ona tatou ausia tulaga eseese o le tu'ufua e fa'aaoga ai loka.

O lenei tagata fa'afoe e mafai ai ona e ave e le gata o loka faʻapitoa e manaʻomia e sui ai faʻamaumauga, ae o loʻo taʻua o loka fefaʻasoaaʻi, lea e mafai ona ave ni filo faʻatasi pe a manaʻomia ona faitau faʻamatalaga e le tatau ona suia e isi faiga i le faagasologa o le faitauga.

O nisi faʻamatalaga e uiga i le lua-vaega poloka auala ile Rusia ma le Igilisi:

Lua-vaega poloka
Loka vaega lua

O le faigata o le taimi o se fefaʻatauaʻiga o le tulaga o le database atonu e le o gatasi, ae o lenei faʻamatalaga le fetaui e iloa atu i isi faiga. E faapefea ona aloese mai lenei mea?

I le faʻaaogaina o loka, o le a matou fatuina faʻamalama faʻaalia lea o le a tumau ai le tulaga o le database. Ma o avanoa uma i ia faamalama o le vaʻaia o le setete maliliega o le a pulea e loka.

Loka fefa'asoaa'i i luga o fa'amaumauga e tasi e mafai ona toe fa'aaogaina—e tele faiga e mafai ona ave ai. O loka nei e taofia ai isi faiga mai le suia o faʻamaumauga, i.e. o lo'o fa'aaogaina e fai ai fa'amalama o fa'amaumauga tumau.

O loka fa'apitoa e fa'aoga mo suiga o fa'amaumauga - e na'o le tasi le fa'agasologa e mafai ona ave sea loka. E mafai ona ave se loka faapitoa e:

  1. Soʻo se faʻagasologa pe afai o faʻamaumauga e leai se totogi
  2. Na'o le fa'agasologa o lo'o i ai se loka fa'asoa i luga o nei fa'amaumauga ma o le mea muamua na talosagaina se loka fa'apitoa.

Fefaatauaiga i InterSystems IRIS lalolagi

O le vaapiapi o le faʻamalama vaʻaia, o le umi o isi faiga e tatau ona faʻatali mo ai, ae o le sili atu ona tumau le tulaga o le database i totonu e mafai.

READ_COMMITTED - o le ute o lenei tulaga o le tatou vaʻaia naʻo faʻamaumauga tuʻufaʻatasia mai isi filo. Afai o faʻamatalaga i se isi fefaʻatauaiga e leʻi faia, ona matou vaʻai lea i lona tuai.

O lenei mea e mafai ai ona tatou faʻatusaina le galuega nai lo le faʻatali mo le tatalaina o le loka.

A aunoa ma ni togafiti faʻapitoa, o le a le mafai ona tatou vaʻai i le tuai o faʻamaumauga i le IRIS, o lea e tatau ai ona tatou faʻaogaina loka.

E tusa ai, e tatau ona tatou faʻaogaina loka fefaʻasoaaʻi e faʻatagaina ai faʻamatalaga e faitau naʻo taimi e tutusa ai.

Fa'apea e iai la tatou tagata e fa'aoga tagata e fa'aliliuina tupe i le tasi ma le isi.

Taimi o le fesiitaiga mai le tagata 123 i le tagata 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)

O le taimi e talosagaina ai le aofaʻi o tupe mai le tagata 123 aʻo leʻi totogiina le aitalafu e tatau ona faʻatasi ma se poloka faʻapitoa (e ala i le faaletonu):

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

Ma afai e te manaʻomia le faʻaalia o le tulaga o le tala i lau lava tala, ona mafai lea ona e faʻaogaina se loka faʻasoa pe le faʻaaogaina uma:

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

Ae peitaʻi, afai tatou te manatu o loʻo faʻatinoina faʻamaumauga faʻamaumauga e toetoe lava a vave (seʻi ou faamanatu atu ia te oe o le lalolagi o se fausaga sili atu ona maualalo nai lo se laulau faʻafesoʻotaʻi), ona faʻaitiitia lea o le manaʻoga mo lenei tulaga.

FAITAU FAATAU - O lenei tulaga tu'ufua e mafai ai mo le tele o faitauga o fa'amaumauga e mafai ona suia e ala i fefa'atauaiga fa'atasi.

E tusa ai, e tatau ona matou tuʻuina se loka faʻasoa i le faitauina o faʻamaumauga matou te suia ma loka faʻapitoa i faʻamaumauga matou te suia.

O le mea e lelei ai, o le LOCK operator e faʻatagaina oe e lisi auiliili uma loka talafeagai, lea e mafai ona tele, i se faʻamatalaga e tasi.

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

isi gaioiga (i le taimi nei o filo tutusa e taumafai e sui ^tagata(123, aofaʻi), ae le mafai)

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

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

Pe a lisiina loka e tuueseese i koma, e ave faasolosolo, ae afai e te faia lenei mea:

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

ona ave uma ai lea i le taimi e tasi.

SAUNIGA - e tatau ona matou seti loka ina ia iu ai i fefaʻatauaiga uma e iai faʻamatalaga masani e faʻatinoina faʻasolosolo. Mo lenei faiga, o le tele o loka e tatau ona faʻapitoa ma ave i luga o vaega laiti o le lalolagi mo le faʻatinoga.

Afai tatou te talanoa e uiga i le totogiina o tupe i le lalolagi ^tagata, ona naʻo le SERIALIZE isolation level e talia, talu ai o tupe e tatau ona faʻaalu faʻasolosolo faʻasolosolo, a leai e mafai ona faʻaalu le aofaʻi tutusa i le tele o taimi.

4. Tumau

Sa ou faia su'ega i le tipiina malosi o le atigipusa e fa'aaoga

docker kill my-iris

Sa talia lelei e le faavae. E leai ni fa'afitauli na iloa.

iʻuga

Mo le lalolagi atoa, InterSystems IRIS o loʻo i ai le lagolago tau fefaʻatauaiga. E moni lava atomic ma faatuatuaina. Ina ia mautinoa le tumau o se faʻamaumauga e faʻavae i luga o le lalolagi, taumafaiga a le polokalame ma le faʻaogaina o fefaʻatauaiga e manaʻomia, talu ai e leai ni faʻalavelave faʻapipiʻi faʻapipiʻi e pei o ki mai fafo.

Ole tulaga tu'ufua ole lalolagi e aunoa ma le fa'aogaina o loka o le READ UNCOMMITED, ma a fa'aoga loka e mafai ona fa'amautinoa e o'o ile SERIALIZE level.

O le saʻo ma le saoasaoa o fefaʻatauaiga i luga o le lalolagi e matua faʻalagolago lava i le tomai o le tagata fai polokalame: o le tele o loka fefaʻasoaaʻi lautele e faʻaaoga pe a faitau, o le maualuga o le tulaga o le vavae ese, ma le sili atu ona vaapiapi loka faʻapitoa, o le vave foi lea o le faʻatinoga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga