Tha an InterSystems IRIS DBMS aâ toirt taic do structaran inntinneach airson dĂ ta a stòradh - cruinneachan. Gu bunaiteach, is e iuchraichean ioma-ĂŹre a tha seo le diofar rudan math a bharrachd ann an cruth ghnothaichean, gnĂŹomhan luath airson a dhol thairis air craobhan dĂ ta, glasan agus a chĂ nan ObjectScript fhèin.
Leugh tuilleadh mu shaoghal cruinne anns an t-sreath artaigilean âIs e claidheamhan ulaidh airson stòradh dĂ ta a thâ ann an cruinneachan:
Ghabh mi Ăšidh anns mar a tha gnothaichean air an cur an gnĂŹomh ann an cruinne-cè, dè na feartan a thâ ann. Ăs deidh na h-uile, is e structar gu tur eadar-dhealaichte a tha seo airson stòradh dĂ ta na na clĂ ran Ă bhaisteach. Ăre gu math nas ĂŹsle.
Mar a tha fios bho theòiridh stòran-dà ta dà imh, feumaidh deagh bhuileachadh de ghnothaichean na riatanasan a choileanadh :
A - Atamach (atomicity). Tha a h-uile atharrachadh a chaidh a dhèanamh sa ghnothach no gin idir air a chlà radh.
C - Co-chòrdadh. Ăs deidh crĂŹoch a chuir air malairt, feumaidh staid loidsigeach an stòr-dĂ ta a bhith cunbhalach a-staigh. Ann an iomadh dòigh tha an riatanas seo a 'buntainn ris a' phrògramadair, ach a thaobh stòran-dĂ ta SQL tha e cuideachd a 'buntainn ri iuchraichean cèin.
I â Iomallach. Cha bu chòir gnĂŹomhan a tha a 'ruith aig an aon Ă m buaidh a thoirt air a chèile.
D - Seasmhach. Ăs deidh crĂŹoch a chuir air malairt gu soirbheachail, cha bu chòir duilgheadasan aig ĂŹrean nas ĂŹsle (fĂ illigeadh cumhachd, mar eisimpleir) buaidh a thoirt air an dĂ ta a chaidh atharrachadh leis aâ ghnothach.
Is e structaran dĂ ta neo-dĂ imheach a thâ ann an cruinneachan. Chaidh an dealbhadh gus ruith gu math luath air bathar-cruaidh glè bheag. Bheir sinn sĂšil air buileachadh ghnothaichean ann an cruinne-cè aâ cleachdadh .
Gus taic a thoirt do ghnothaichean ann an IRIS, thathas aâ cleachdadh na h-òrdughan a leanas: , , .
1. Atomity
Is e an dòigh as fhasa sgrĂšdadh a dhèanamh air atomachd. Bidh sinn aâ sgrĂšdadh bhon consol stòr-dĂ ta.
Kill ^a
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TCOMMITAn uairsin tha sinn a 'co-dhĂšnadh:
Write ^a(1), â â, ^a(2), â â, ^a(3)Gheibh sinn:
1 2 3Tha a h-uile dad gu math. Tha Atomity air a chumail suas: tha gach atharrachadh air a chlĂ radh.
Dèanamaid an obair duilich, bheir sinn a-steach mearachd agus faic mar a tha an gnothach air a shà bhaladh, ann am pà irt no nach eil idir.
Feuch an dèan sinn sgrÚdadh air an atomachd a-rithist:
Kill ^A
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3An uairsin cuiridh sinn stad air an t-soitheach gu lĂ idir, cuir air bhog e agus faic.
docker kill my-irisTha an Ă ithne seo cha mhòr co-ionann ri dĂšnadh feachd, leis gu bheil e aâ cur comharra SIGKILL gus stad a chuir air aâ phròiseas sa bhad.
Is dòcha gun deach an gnothach a shà bhaladh gu Ïre?
WRITE ^a(1), ^a(2), ^a(3)
^
<UNDEFINED> ^a(1)- Chan e, chan eil e air tighinn beò.
Feuchaidh sinn ris an òrdugh tilleadh air ais:
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)Chan eil dad air tighinn beò idir.
2. Co-chòrdadh
Leis gu bheil stòran-dĂ ta stèidhichte air cruinneagan, cuideachd air an dèanamh air cruinneagan (leig dhomh do chuimhneachadh gur e structar aig ĂŹre nas ĂŹsle a thâ ann an cruinne-cruinne airson dĂ ta a stòradh na clĂ r dĂ imh), gus coinneachadh ris an riatanas cunbhalachd, feumar atharrachadh san iuchair a thoirt a-steach. anns an aon ghnothach ri atharrachadh san t-saoghal.
Mar eisimpleir, tha neach cruinne againn, anns am bi sinn aâ stòradh phearsachan agus bidh sinn aâ cleachdadh an TIN mar iuchair.
^person(1234567, âfirstnameâ) = âSergeyâ
^person(1234567, âlastnameâ) = âKamenevâ
^person(1234567, âphoneâ) = â+74995555555
...Gus sgrÚdadh sgiobalta a dhèanamh a rèir ainm mu dheireadh agus ciad ainm, rinn sinn an iuchair ^ index.
^index(âKamenevâ, âSergeyâ, 1234567) = 1Gus am bi an stòr-dĂ ta cunbhalach, feumaidh sinn am persona mar seo a chur ris:
TSTART
^person(1234567, âfirstnameâ) = âSergeyâ
^person(1234567, âlastnameâ) = âKamenevâ
^person(1234567, âphoneâ) = â+74995555555
^index(âKamenevâ, âSergeyâ, 1234567) = 1
TCOMMITMar sin, nuair a sguabas sinn Ă s feumaidh sinn malairt a chleachdadh cuideachd:
TSTART
Kill ^person(1234567)
ZKill ^index(âKamenevâ, âSergeyâ, 1234567)
TCOMMITAnn am faclan eile, tha coileanadh an riatanas cunbhalachd gu tur an urra ris a âphrògramadair. Ach nuair a thig e gu cruinnean, tha seo Ă bhaisteach, air sgĂ th an ĂŹre ĂŹosal de nĂ dar.
3. Iomallachd
Seo far a bheil an fhĂ sach aâ tòiseachadh. Bidh mòran de luchd-cleachdaidh ag obair aig an aon Ă m air an aon stòr-dĂ ta, ag atharrachadh an aon dĂ ta.
Tha an suidheachadh coimeasach ri nuair a bhios mòran de luchd-cleachdaidh ag obair aig an aon Ă m leis an aon stòr còd agus aâ feuchainn ri atharrachaidhean a dhèanamh air mòran fhaidhlichean aig an aon Ă m.
Bu chòir don stòr-dà ta a h-uile cà il a rèiteachadh ann an à m fÏor. Leis gu bheil eadhon neach sònraichte ann an droch chompanaidhean a tha an urra ri smachd dreach (airson meuran a chur còmhla, còmhstrithean fhuasgladh, msaa), agus feumaidh an stòr-dà ta seo a dhèanamh ann an à m fÏor, iom-fhillteachd na h-obrach agus ceartachd an dealbhadh stòr-dà ta agus còd a tha ga fhrithealadh.
Chan urrainn don stòr-dà ta brÏgh nan gnÏomhan a rinn luchd-cleachdaidh a thuigsinn gus còmhstrithean a sheachnadh ma tha iad ag obair air an aon dà ta. Chan urrainn dha ach aon ghnothach a thoirt air falbh a tha an aghaidh malairt eile, no an cur an gnÏomh ann an òrdugh.
Is e duilgheadas eile a thâ ann, nuair a thèid gnothach a chuir gu bĂ s (mus tèid gealltanas), gum faodadh staid an stòr-dĂ ta a bhith neo-chunbhalach, agus mar sin tha e ion-mhiannaichte nach bi cothrom aig gnothaichean eile air staid neo-chunbhalach an stòr-dĂ ta, a tha air a choileanadh ann an stòran-dĂ ta co-cheangailte. ann an iomadh dòigh: cruthachadh dealbhan-camara, sreathan ioma-dhreach is msaa.
Nuair a bhios sinn aâ dèanamh ghnothaichean aig an aon Ă m, tha e cudromach dhuinn nach cuir iad bacadh air a chèile. Is e seo seilbh aonaranachd.
Tha SQL aâ mĂŹneachadh 4 ĂŹrean iomallachd:
- LĂRR-CHUNNART
- LĂIRMHEAS COMATAIDH
- ATH-LEASACHADH
- SRAIDIACH
Bheir sinn sĂšil air gach ĂŹre fa leth. Bidh cosgaisean buileachaidh gach ĂŹre aâ fĂ s cha mhòr gun samhail.
LĂRR-CHUNNART - is e seo an ĂŹre as ĂŹsle de aonaranachd, ach aig an aon Ă m as luaithe. Faodaidh gnĂŹomhan atharrachaidhean a rinn a chèile a leughadh.
LĂIRMHEAS COMATAIDH is e an ath ĂŹre de dhâ aonaranachd, a tha na cho-rèiteachadh. Chan urrainn do ghnĂŹomhachd atharraichean cĂ ch a chèile a leughadh ron ghealladh, ach faodaidh iad atharrachaidhean sam bith a chaidh a dhèanamh Ă s deidh aâ gheallaidh a leughadh.
Ma tha malairt fhada T1 againn, nuair a thachair geallaidhean ann an gnothaichean T2, T3 ... Tn, a dhâ obraich leis an aon dĂ ta ri T1, an uairsin nuair a dhâ iarras sinn dĂ ta ann an T1 gheibh sinn toradh eadar-dhealaichte gach turas. Canar leughadh nach gabh ath-aithris ris an iongantas seo.
ATH-LEASACHADH - anns an Ïre iomallachd seo chan eil iongantas againn air leughadh nach gabh ath-aithris, leis gu bheil dealbh den dà ta toraidh air a chruthachadh airson gach iarrtas airson dà ta a leughadh agus nuair a thèid ath-chleachdadh san aon ghnothach, an dà ta bhon dealbh air a chleachdadh. Ach, tha e comasach dà ta phantom a leughadh aig an Ïre iomallachd seo. Tha seo a 'toirt iomradh air a bhith a' leughadh sreathan Úra a chaidh a chur ris le gnothaichean gealltanas co-shÏnte.
SRAIDIACH - an ĂŹre as Ă irde de insulation. Tha e air a chomharrachadh leis gu bheil dĂ ta air a chleachdadh ann an dòigh sam bith ann an malairt (leughadh no atharrachadh) ri fhaighinn do ghnothaichean eile dĂŹreach Ă s deidh aâ chiad ghnothach a chrĂŹochnachadh.
An toiseach, leig dhuinn faighinn a-mach a bheil gnĂŹomhachd ann an malairt bhon phrĂŹomh snĂ ithlean. Fosglaidh sinn 2 uinneag terminal.
Kill ^t
Write ^t(1)
2
TSTART
Set ^t(1)=2Chan eil aonaranachd ann. Tha aon snĂ ithlean aâ faicinn dè tha an dĂ rna fear a dhâ fhosgail an gnothach aâ dèanamh.
Feuch sinn a bheil gnothaichean de dhiofar snà ithleanan a 'faicinn dè tha a' tachairt taobh a-staigh iad.
Fosglaidh sinn 2 uinneag crĂŹche agus fosgail 2 ghnothach aig an aon Ă m.
kill ^t
TSTART
Write ^t(1)
3
TSTART
Set ^t(1)=3
Bidh gnothaichean co-shÏnte a 'faicinn dà ta a chèile. Mar sin, fhuair sinn an Ïre aonaranachd as sÏmplidh, ach cuideachd an Ïre as luaithe, READ UNCOMMITED.
Ann am prionnsabal, dh'fhaodadh seo a bhith air a shĂšileachadh airson cruinne, agus bha coileanadh air a bhith na phrĂŹomhachas a-riamh.
Dè ma tha feum againn air ĂŹre nas Ă irde de dhâ aonaranachd ann an gnĂŹomhachd air cruinne-cè?
An seo feumaidh tu smaoineachadh carson a tha feum air ĂŹrean aonaranachd idir agus mar a tha iad ag obair.
Tha an ĂŹre iomallachd as Ă irde, SERIALIZE, aâ ciallachadh gu bheil toradh ghnothaichean a chaidh a dhèanamh ann an co-shĂŹnte co-ionann ris an coileanadh sreath aca, a tha aâ gealltainn nach bi tubaistean ann.
Is urrainn dhuinn seo a dhèanamh le bhith aâ cleachdadh ghlasan snasail ann an ObjectScript, aig a bheil tòrr feuman eadar-dhealaichte: faodaidh tu glasadh cunbhalach, mean air mhean a dhèanamh leis an Ă ithne .
Tha Ïrean iomallachd nas Ïsle mar mhalairtean air an dealbhadh gus astar stòr-dà ta à rdachadh.
ChĂŹ sinn mar as urrainn dhuinn diofar ĂŹrean de aonaranachd a choileanadh le bhith aâ cleachdadh ghlasan.
Leigidh an gnĂŹomhaiche seo leat chan e a-mhĂ in glasan sònraichte a dhâ fheumar gus dĂ ta atharrachadh, ach glasan co-roinnte ris an canar, a dhâ fhaodas grunn snĂ ithleanan a ghabhail aig an aon Ă m nuair a dhâ fheumas iad dĂ ta a leughadh nach bu chòir atharrachadh le pròiseasan eile tron ââââphròiseas leughaidh.
Barrachd fiosrachaidh mun dòigh bacaidh dà -Ïre ann an Ruisis agus Beurla:
â
â
Is e an duilgheadas a thâ ann gum faodadh suidheachadh an stòr-dĂ ta a bhith neo-chunbhalach rè malairt, ach tha an dĂ ta neo-chunbhalach seo ri fhaicinn le pròiseasan eile. Ciamar a sheachnadh seo?
A 'cleachdadh ghlasan, cruthaichidh sinn uinneagan faicsinneach anns am bi staid an stòr-dà ta cunbhalach. Agus bidh a h-uile cothrom air na h-uinneagan sin de fhaicsinneachd na stà ite aontaichte fo smachd glasan.
Faodar glasan co-roinnte air an aon dĂ ta ath-chleachdadh - faodaidh grunn phròiseasan an toirt. Bidh na glasan sin aâ cur casg air pròiseasan eile bho bhith ag atharrachadh dĂ ta, i.e. bidh iad air an cleachdadh gus uinneagan de staid stòr-dĂ ta cunbhalach a chruthachadh.
Bithear a âcleachdadh glasan sònraichte airson atharrachaidhean dĂ ta - chan urrainn ach aon phròiseas a leithid de ghlas a ghabhail. Faodar glas sònraichte a ghabhail le:
- Pròiseas sam bith ma tha an dà ta an-asgaidh
- Is e dĂŹreach am pròiseas aig a bheil glas co-roinnte air an dĂ ta seo agus bâ e a âchiad fhear a dhâ iarr glas toirmeasgach.

Mar as cumhainge an uinneag faicsinneachd, is ann as fhaide a dhâ fheumas pròiseasan eile feitheamh air a shon, ach mar as cunbhalaiche a dhâ fhaodas suidheachadh an stòr-dĂ ta a bhith ann.
READ_COMMITTED - is e brĂŹgh na h-ĂŹre seo nach fhaic sinn ach dĂ ta dealasach bho snĂ ithleanan eile. Mura h-eil an dĂ ta ann an malairt eile air a ghealltainn fhathast, chĂŹ sinn an seann dreach aige.
Leigidh seo leinn an obair a cho-shĂŹnteadh an Ă ite a bhith aâ feitheamh ris aâ ghlas a leigeil ma sgaoil.
Ăs aonais cleasan sònraichte, cha bhith e comasach dhuinn an seann dreach den dĂ ta fhaicinn ann an IRIS, agus mar sin feumaidh sinn dèanamh le glasan.
Mar sin, feumaidh sinn glasan co-roinnte a chleachdadh gus leigeil le dĂ ta a bhith air a leughadh a-mhĂ in aig amannan cunbhalachd.
Canaidh sinn gu bheil bunait luchd-cleachdaidh againn ^ neach a ghluaiseas airgead gu chèile.
Mionaid gluasaid bho neach 123 gu neach 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)Feumaidh bloc sònraichte (gu bunaiteach) a bhith an cois na h-Ăšine a dhâ iarrar an t-suim airgid bho neach 123 mus tèid a phĂ igheadh:
LOCK +^person(123)
Write ^person(123)Agus ma dhâ fheumas tu inbhe aâ chunntais a nochdadh sa chunntas pearsanta agad, faodaidh tu glas co-roinnte a chleachdadh no gun a chleachdadh idir:
LOCK +^person(123)#âSâ
Write ^person(123)Ach, ma ghabhas sinn ris gu bheil gnĂŹomhachd stòr-dĂ ta air a dhèanamh cha mhòr sa bhad (leig dhomh do chuir an cuimhne gur e structar aig ĂŹre gu math nas ĂŹsle a thâ ann an cruinneachan na clĂ r dĂ imh), tha an fheum air an ĂŹre seo aâ dol sĂŹos.
ATH-LEASACHADH - Tha an ĂŹre iomallachd seo aâ ceadachadh iomadh leughadh de dhĂ ta a ghabhas atharrachadh le gnothaichean co-aontach.
Mar sin, feumaidh sinn glas co-roinnte a chuir air leughadh an dĂ ta a dhâ atharraicheas sinn agus glasan a-mhĂ in air an dĂ ta a dhâ atharraicheas sinn.
Gu fortanach, leigidh an gnÏomhaiche LOCK leat liosta mionaideach a dhèanamh de na glasan riatanach uile, agus faodaidh tòrr a bhith ann, ann an aon aithris.
LOCK +^person(123, amount)#âSâ
ŃŃонио ^person(123, amount)obrachaidhean eile (aig an Ă m seo feuchaidh snĂ ithleanan co-shĂŹnte ri atharrachadh ^ neach (123, suim), ach chan urrainn)
LOCK +^person(123, amount)
иСПононио ^person(123, amount)
LOCK -^person(123, amount)
ŃŃонио ^person(123, amount)
LOCK -^person(123, amount)#âSâNuair a bhios tu aâ clĂ radh ghlasan air an sgaradh le cromagan, thèid an toirt ann an òrdugh, ach ma nĂŹ thu seo:
LOCK +(^person(123),^person(242))an uairsin thèid an toirt gu atomically uile aig an aon à m.
SRAIDEACH - feumaidh sinn glasan a shuidheachadh gus am bi a h-uile gnothach aig a bheil dĂ ta cumanta air a chur an gnĂŹomh ann an òrdugh. Airson an dòigh-obrach seo, bu chòir aâ mhòr-chuid de ghlasan a bhith toirmeasgach agus a ghabhail air na raointean as lugha den t-saoghal airson coileanadh.
Ma bhios sinn aâ bruidhinn mu bhith aâ cur airgead do fhiachan anns an neach chruinneil, is e dĂŹreach an ĂŹre aonaranachd SERIALIZE a tha iomchaidh air a shon, leis gu feumar airgead a chosg gu teann ann an òrdugh, air neo faodar an aon suim a chosg grunn thursan.
4. Seasmhachd
Rinn mi deuchainnean le bhith a 'gearradh cruaidh an t-soithich a' cleachdadh
docker kill my-irisGhabh am bonn riutha gu math. Cha deach duilgheadasan sam bith a chomharrachadh.
co-dhĂšnadh
Airson cruinneachan, tha taic malairt aig InterSystems IRIS. Tha iad dha-rÏribh atamach agus earbsach. Gus dèanamh cinnteach à cunbhalachd stòr-dà ta stèidhichte air cruinne-cè, tha feum air oidhirpean prògramadair agus cleachdadh ghnothaichean, leis nach eil togalaichean toinnte iom-fhillte ann leithid iuchraichean cèin.
Tha an ĂŹre iomallachd de chruinne-cè gun a bhith aâ cleachdadh ghlasan air a READ UNCOMMITED, agus nuair a bhios tu aâ cleachdadh ghlasan faodar a dhèanamh cinnteach suas gu ĂŹre SERIALIZE.
Tha ceartachd agus astar nan gnothaichean air cruinne-cè gu mòr an urra ri sgil aâ phrogramaiche: mar as fharsainge a bhios glasan co-roinnte air an cleachdadh nuair a bhios iad aâ leughadh, mar as Ă irde an ĂŹre de dhâ aonaranachd, agus mar as cumhang a thèid glasan a-mhĂ in a ghabhail, is ann as luaithe a bhios an coileanadh.
Source: www.habr.com
