KLP teorÄma ir sadalÄ«to sistÄmu teorijas stÅ«rakmens. Protams, strÄ«ds ap to nerimst: definÄ«cijas tajÄ nav kanoniskas, un nav arÄ« stingru pierÄdÄ«jumu... TomÄr, stingri nostÄjoties uz ikdienas veselÄ saprÄtaā¢ pozÄ«cijÄm, mÄs intuitÄ«vi saprotam, ka teorÄma ir patiesa.
VienÄ«gais, kas nav acÄ«mredzams, ir burta "P" nozÄ«me. Kad klasteris ir sadalÄ«ts, tas izlemj, vai neatbildÄt, kamÄr nav sasniegts kvorums, vai atdot atpakaļ pieejamos datus. AtkarÄ«bÄ no Ŕīs izvÄles rezultÄtiem sistÄma tiek klasificÄta kÄ CP vai AP. PiemÄram, Cassandra var uzvesties jebkurÄ veidÄ, pat ne atkarÄ«bÄ no klastera iestatÄ«jumiem, bet gan no katra konkrÄtÄ pieprasÄ«juma parametriem. Bet, ja sistÄma nav "P" un tÄ sadalÄs, ko tad?
Atbilde uz Å”o jautÄjumu ir nedaudz negaidÄ«ta: CA klasteris nevar sadalÄ«ties.
Kas tas par kopu, kas nevar sadalīties?
Å Äda klastera neaizstÄjams atribÅ«ts ir koplietoÅ”anas datu uzglabÄÅ”anas sistÄma. LielÄkajÄ daÄ¼Ä gadÄ«jumu tas nozÄ«mÄ savienojuma izveidi, izmantojot SAN, kas ierobežo CA risinÄjumu izmantoÅ”anu lieliem uzÅÄmumiem, kas spÄj uzturÄt SAN infrastruktÅ«ru. Lai vairÄki serveri varÄtu strÄdÄt ar vieniem un tiem paÅ”iem datiem, ir nepiecieÅ”ama klasteru failu sistÄma. Å Ädas failu sistÄmas ir pieejamas HPE (CFS), Veritas (VxCFS) un IBM (GPFS) portfeļos.
Oracle RAC
Real Application Cluster opcija pirmo reizi parÄdÄ«jÄs 2001. gadÄ, izlaižot Oracle 9i. Å ÄdÄ klasterÄ« vairÄki servera gadÄ«jumi strÄdÄ ar vienu un to paÅ”u datu bÄzi.
Oracle var strÄdÄt gan ar klasteru failu sistÄmu, gan ar savu risinÄjumu ā ASM, Automatic Storage Management.
Katram eksemplÄram ir savs žurnÄls. DarÄ«jumu izpilda un apÅemas viena instance. Ja gadÄ«jums neizdodas, viens no izdzÄ«vojuÅ”ajiem klastera mezgliem (gadÄ«jumiem) nolasa tÄ Å¾urnÄlu un atjauno zaudÄtos datus, tÄdÄjÄdi nodroÅ”inot pieejamÄ«bu.
Visas instances uztur savu keÅ”atmiÅu, un tÄs paÅ”as lapas (bloki) var atrasties vairÄku gadÄ«jumu keÅ”atmiÅÄ vienlaikus. TurklÄt, ja vienai instancei ir nepiecieÅ”ama lapa un tÄ atrodas citas instances keÅ”atmiÅÄ, tÄ var to iegÅ«t no kaimiÅa, izmantojot keÅ”atmiÅas sapludinÄÅ”anas mehÄnismu, nevis nolasot no diska.
Bet kas notiek, ja kÄdam no gadÄ«jumiem ir jÄmaina dati?
Oracle Ä«patnÄ«ba ir tÄda, ka tai nav speciÄla bloÄ·ÄÅ”anas pakalpojuma: ja serveris vÄlas bloÄ·Ät rindu, tad bloÄ·ÄÅ”anas ieraksts tiek ievietots tieÅ”i atmiÅas lapÄ, kurÄ atrodas bloÄ·ÄtÄ rinda. Pateicoties Å”ai pieejai, Oracle ir veiktspÄjas Äempions monolÄ«tu datu bÄzu vidÅ«: bloÄ·ÄÅ”anas pakalpojums nekad nekļūst par vÄjo vietu. TaÄu klastera konfigurÄcijÄ Å”Äda arhitektÅ«ra var izraisÄ«t intensÄ«vu tÄ«kla trafiku un strupceļus.
Kad ieraksts ir bloÄ·Äts, gadÄ«jums paziÅo visiem pÄrÄjiem gadÄ«jumiem, ka lapai, kurÄ ieraksts tiek glabÄts, ir ekskluzÄ«va aizturÄÅ”ana. Ja citai instancei ir jÄmaina ieraksts tajÄ paÅ”Ä lapÄ, tai ir jÄgaida, lÄ«dz tiek veiktas lapas izmaiÅas, tas ir, izmaiÅu informÄcija tiek ierakstÄ«ta žurnÄlÄ diskÄ (un darÄ«jumu var turpinÄt). Var gadÄ«ties arÄ« tÄ, ka lapa tiks mainÄ«ta secÄ«gi par vairÄkiem eksemplÄriem, un tad, rakstot lapu diskÄ, bÅ«s jÄnoskaidro, kas glabÄ Å”Ä«s lapas aktuÄlo versiju.
NejauÅ”i atjauninot vienas un tÄs paÅ”as lapas dažÄdos RAC mezglos, datu bÄzes veiktspÄja krasi samazinÄs lÄ«dz vietai, kur klastera veiktspÄja var bÅ«t zemÄka nekÄ viena gadÄ«juma veiktspÄja.
Pareiza Oracle RAC izmantoÅ”ana ir datu fiziska sadalÄ«Å”ana (piemÄram, izmantojot sadalÄ«tÄs tabulas mehÄnismu) un piekļuve katrai nodalÄ«jumu kopai, izmantojot Ä«paÅ”u mezglu. RAC galvenais mÄrÄ·is nebija horizontÄlÄ mÄrogoÅ”ana, bet gan kļūdu tolerances nodroÅ”inÄÅ”ana.
Ja mezgls pÄrstÄj reaÄ£Ät uz sirdspukstiem, mezgls, kas to atklÄja pirmais, diskÄ sÄk balsoÅ”anas procedÅ«ru. Ja trÅ«kstoÅ”ais mezgls Å”eit nav atzÄ«mÄts, viens no mezgliem uzÅemas atbildÄ«bu par datu atkopÅ”anu:
- āiesaldÄā visas lapas, kas atradÄs trÅ«kstoÅ”Ä mezgla keÅ”atmiÅÄ;
- nolasa trÅ«kstoÅ”Ä mezgla žurnÄlus (pÄrtaisa) un atkÄrtoti piemÄro Å”ajos žurnÄlos ierakstÄ«tÄs izmaiÅas, vienlaikus pÄrbaudot, vai citos mezglos nav jaunÄkas mainÄmo lapu versijas;
- atceļ nepabeigtos darījumus.
Lai vienkÄrÅ”otu pÄrslÄgÅ”anos starp mezgliem, Oracle ir pakalpojuma jÄdziens ā virtuÄla instance. EksemplÄrs var apkalpot vairÄkus pakalpojumus, un pakalpojums var pÄrvietoties starp mezgliem. Lietojumprogrammas instance, kas apkalpo noteiktu datu bÄzes daļu (piemÄram, klientu grupa), strÄdÄ ar vienu pakalpojumu, un pakalpojums, kas ir atbildÄ«gs par Å”o datu bÄzes daļu, tiek pÄrvietots uz citu mezglu, ja mezgls neizdodas.
IBM Pure Data Systems darījumiem
2009. gadÄ Blue Giant portfelÄ« parÄdÄ«jÄs klasteru risinÄjums DBVS. IdeoloÄ£iski tas ir Parallel Sysplex klastera pÄctecis, kas veidots uz āparastÄmā iekÄrtÄm. 2009. gadÄ DB2 pureScale tika izlaists kÄ programmatÅ«ras komplekts, un 2012. gadÄ IBM piedÄvÄja ierÄ«ci ar nosaukumu Pure Data Systems for Transactions. To nevajadzÄtu sajaukt ar Pure Data Systems for Analytics, kas ir nekas cits kÄ pÄrdÄvÄts Netezza.
No pirmÄ acu uzmetiena pureScale arhitektÅ«ra ir lÄ«dzÄ«ga Oracle RAC: tÄdÄ paÅ”Ä veidÄ vairÄki mezgli ir savienoti ar kopÄju datu glabÄÅ”anas sistÄmu, un katrs mezgls vada savu DBVS gadÄ«jumu ar saviem atmiÅas apgabaliem un darÄ«jumu žurnÄliem. TaÄu atŔķirÄ«bÄ no Oracle DB2 ir Ä«paÅ”s bloÄ·ÄÅ”anas pakalpojums, ko pÄrstÄv db2LLM* procesu kopa. Klastera konfigurÄcijÄ Å”is pakalpojums ir novietots atseviÅ”Ä·Ä mezglÄ, ko sauc par savienoÅ”anas iekÄrtu (CF) Parallel Sysplex un PowerHA Pure Data.
PowerHA sniedz Å”Ädus pakalpojumus:
- slÄdzenes pÄrvaldnieks;
- globÄlÄ bufera keÅ”atmiÅa;
- starpprocesu sakaru joma.
Lai pÄrsÅ«tÄ«tu datus no PowerHA uz datu bÄzes mezgliem un atpakaļ, tiek izmantota attÄlÄ piekļuve atmiÅai, tÄpÄc klastera starpsavienojumam ir jÄatbalsta RDMA protokols. PureScale var izmantot gan Infiniband, gan RDMA, izmantojot Ethernet.
Ja mezglam ir nepiecieÅ”ama lapa un Ŕī lapa nav keÅ”atmiÅÄ, tad mezgls pieprasa lapu globÄlajÄ keÅ”atmiÅÄ un tikai tad, ja tÄs nav, nolasa to no diska. AtŔķirÄ«bÄ no Oracle, pieprasÄ«jums tiek nosÅ«tÄ«ts tikai uz PowerHA, nevis uz blakus esoÅ”ajiem mezgliem.
Ja gadÄ«jums mainÄ«s rindu, tas bloÄ·Ä to ekskluzÄ«vajÄ režīmÄ un lapu, kurÄ rinda atrodas, koplietoÅ”anas režīmÄ. Visas slÄdzenes ir reÄ£istrÄtas globÄlajÄ slÄdzeÅu pÄrvaldniekÄ. Kad transakcija ir pabeigta, mezgls nosÅ«ta ziÅojumu bloÄ·ÄÅ”anas pÄrvaldniekam, kas kopÄ modificÄto lapu globÄlajÄ keÅ”atmiÅÄ, atbrÄ«vo bloÄ·ÄÅ”anu un padara modificÄto lapu nederÄ«gu citu mezglu keÅ”atmiÅÄ.
Ja lapa, kurÄ atrodas modificÄtÄ rinda, jau ir bloÄ·Äta, bloÄ·ÄÅ”anas pÄrvaldnieks nolasÄ«s modificÄto lapu no tÄ mezgla atmiÅas, kurÅ” veicis izmaiÅas, atbrÄ«vos bloÄ·ÄÅ”anu, padarÄ«s modificÄto lapu nederÄ«gu citu mezglu keÅ”atmiÅÄs un pieŔķiriet lapas bloÄ·ÄÅ”anu mezglam, kas to pieprasÄ«ja.
āNetÄ«rasā, tas ir, mainÄ«tas, lapas var ierakstÄ«t diskÄ gan no parastÄ mezgla, gan no PowerHA (castout).
Ja kÄds no pureScale mezgliem neizdodas, atkopÅ”ana tiek ierobežota ar tikai tÄm transakcijÄm, kuras kļūmes brÄ«dÄ« vÄl nebija pabeigtas: lapas, ko Å”is mezgls modificÄjis pabeigtajos darÄ«jumos, atrodas PowerHA globÄlajÄ keÅ”atmiÅÄ. Mezgls tiek restartÄts samazinÄtÄ konfigurÄcijÄ vienÄ no klastera serveriem, atgriež neapstiprinÄtÄs transakcijas un atbrÄ«vo bloÄ·ÄÅ”anas.
PowerHA darbojas divos serveros, un galvenais mezgls sinhroni atkÄrto tÄ stÄvokli. Ja primÄrais PowerHA mezgls neizdodas, klasteris turpina darboties ar rezerves mezglu.
Protams, ja piekļūstat datu kopai, izmantojot vienu mezglu, kopas kopÄjÄ veiktspÄja bÅ«s augstÄka. PureScale pat var pamanÄ«t, ka noteiktu datu apgabalu apstrÄdÄ viens mezgls, un tad mezgls lokÄli apstrÄdÄs visas ar Å”o apgabalu saistÄ«tÄs slÄdzenes, nesazinoties ar PowerHA. TaÄu, tiklÄ«dz lietojumprogramma mÄÄ£inÄs piekļūt Å”iem datiem, izmantojot citu mezglu, tiks atsÄkta centralizÄtÄ bloÄ·ÄÅ”anas apstrÄde.
IBM iekÅ”Äjie testi ar 90% lasÄ«Å”anas un 10% rakstÄ«Å”anas slodzi, kas ir ļoti lÄ«dzÄ«ga reÄlÄs pasaules ražoÅ”anas darba slodzei, parÄda gandrÄ«z lineÄru mÄrogoÅ”anu lÄ«dz 128 mezgliem. DiemžÄl pÄrbaudes apstÄkļi netiek izpausti.
HPE NonStop SQL
Hewlett-Packard Enterprise portfelim ir arÄ« sava augsti pieejama platforma. Å Ä« ir NonStop platforma, ko 1976. gadÄ tirgÅ« laida Tandem Computers. 1997. gadÄ uzÅÄmumu iegÄdÄjÄs Compaq, kas savukÄrt 2002. gadÄ apvienojÄs ar Hewlett-Packard.
NonStop tiek izmantots, lai izveidotu kritiskas lietojumprogrammas, piemÄram, HLR vai bankas karÅ”u apstrÄdi. Platforma tiek piegÄdÄta programmatÅ«ras un aparatÅ«ras kompleksa (ierÄ«ces) veidÄ, kas ietver skaitļoÅ”anas mezglus, datu uzglabÄÅ”anas sistÄmu un sakaru iekÄrtas. ServerNet tÄ«kls (modernÄs sistÄmÄs - Infiniband) kalpo gan apmaiÅai starp mezgliem, gan piekļuvei datu uzglabÄÅ”anas sistÄmai.
SistÄmas sÄkotnÄjÄs versijÄs tika izmantoti patentÄti procesori, kas tika sinhronizÄti viens ar otru: visas darbÄ«bas sinhroni veica vairÄki procesori, un, tiklÄ«dz kÄds no procesoriem pieļÄva kļūdu, tas tika izslÄgts, bet otrais turpinÄja darboties. VÄlÄk sistÄma pÄrgÄja uz parastajiem procesoriem (vispirms MIPS, tad Itanium un visbeidzot x86), un sinhronizÄcijai sÄka izmantot citus mehÄnismus:
- ziÅojumi: katram sistÄmas procesam ir āÄnuā dvÄ«nis, kuram aktÄ«vais process periodiski sÅ«ta ziÅojumus par tÄ statusu; ja galvenais process neizdodas, Änu process sÄk darboties no pÄdÄjÄ ziÅojuma noteiktÄ brīža;
- balsoÅ”ana: krÄtuves sistÄmai ir Ä«paÅ”s aparatÅ«ras komponents, kas pieÅem vairÄkas identiskas pieejas un izpilda tÄs tikai tad, ja piekļuves sakrÄ«t; FiziskÄs sinhronizÄcijas vietÄ procesori darbojas asinhroni, un to darba rezultÄti tiek salÄ«dzinÄti tikai I/O momentos.
KopÅ” 1987. gada NonStop platformÄ darbojas relÄciju DBVS ā vispirms SQL/MP, vÄlÄk SQL/MX.
Visa datu bÄze ir sadalÄ«ta daļÄs, un katra daļa ir atbildÄ«ga par savu Data Access Manager (DAM) procesu. Tas nodroÅ”ina datu ierakstÄ«Å”anas, keÅ”atmiÅas saglabÄÅ”anas un bloÄ·ÄÅ”anas mehÄnismus. Datu apstrÄdi veic Executor Server Processes, kas darbojas tajos paÅ”os mezglos kÄ attiecÄ«gie datu pÄrvaldnieki. SQL/MX plÄnotÄjs sadala uzdevumus starp izpildÄ«tÄjiem un apkopo rezultÄtus. Ja nepiecieÅ”ams veikt saskaÅotas izmaiÅas, tiek izmantots TMF (Transaction Management Facility) bibliotÄkas nodroÅ”inÄtais divu fÄzu saistÄ«bu izpildes protokols.
NonStop SQL var noteikt prioritÄti procesiem, lai ilgi analÄ«tiskie vaicÄjumi netraucÄtu darÄ«jumu izpildi. TomÄr tÄ mÄrÄ·is ir tieÅ”i Ä«su darÄ«jumu apstrÄde, nevis analÄ«tika. IzstrÄdÄtÄjs garantÄ NonStop klastera pieejamÄ«bu piecu ādeviÅuā lÄ«menÄ«, tas ir, dÄ«kstÄves laiks ir tikai 5 minÅ«tes gadÄ.
SAP-HANA
PirmÄ stabilÄ HANA DBMS (1.0) izlaiÅ”ana notika 2010. gada novembrÄ«, un SAP ERP pakotne tika pÄrslÄgta uz HANA 2013. gada maijÄ. Platformas pamatÄ ir iegÄdÄtÄs tehnoloÄ£ijas: TREX Search Engine (meklÄÅ”ana kolonnu krÄtuvÄ), P*TIME DBMS un MAX DB.
Pats vÄrds āHANAā ir akronÄ«ms, augstas veiktspÄjas analÄ«tiskÄ ierÄ«ce. Å Ä« DBVS tiek piegÄdÄta koda veidÄ, kas var darboties jebkurÄ x86 serverÄ«, tomÄr rÅ«pnieciskÄs instalÄcijas ir atļautas tikai sertificÄtÄm iekÄrtÄm. RisinÄjumi pieejami no HP, Lenovo, Cisco, Dell, Fujitsu, Hitachi, NEC. Dažas Lenovo konfigurÄcijas pat ļauj darboties bez SAN ā kopÄ«gas uzglabÄÅ”anas sistÄmas lomu pilda GPFS klasteris vietÄjos diskos.
AtŔķirÄ«bÄ no iepriekÅ” minÄtajÄm platformÄm, HANA ir atmiÅÄ esoÅ”a DBVS, t.i., primÄrais datu attÄls tiek glabÄts RAM, un tikai žurnÄli un periodiski momentuzÅÄmumi tiek ierakstÄ«ti diskÄ, lai tos atkoptu katastrofas gadÄ«jumÄ.
Katrs HANA klastera mezgls ir atbildÄ«gs par savu datu daļu, un datu karte tiek glabÄta Ä«paÅ”Ä komponentÄ - Name Server, kas atrodas koordinatora mezglÄ. Dati netiek dublÄti starp mezgliem. BloÄ·ÄÅ”anas informÄcija tiek saglabÄta arÄ« katrÄ mezglÄ, taÄu sistÄmai ir globÄls strupceļa detektors.
Kad HANA klients izveido savienojumu ar klasteru, tas lejupielÄdÄ savu topoloÄ£iju un pÄc tam var tieÅ”i piekļūt jebkuram mezglam atkarÄ«bÄ no tÄ, kÄdi dati tam ir nepiecieÅ”ami. Ja transakcija ietekmÄ viena mezgla datus, tad to var izpildÄ«t lokÄli Å”is mezgls, bet, ja mainÄs vairÄku mezglu dati, iniciÄjoÅ”ais mezgls sazinÄs ar koordinatora mezglu, kas atver un koordinÄ sadalÄ«to darÄ«jumu, veicot to, izmantojot optimizÄts divfÄzu apstiprinÄÅ”anas protokols.
Koordinatora mezgls tiek dublÄts, tÄpÄc, ja koordinators neizdodas, rezerves mezgls nekavÄjoties pÄrÅem. Bet, ja mezgls ar datiem neizdodas, vienÄ«gais veids, kÄ piekļūt tÄ datiem, ir mezgla restartÄÅ”ana. Parasti HANA kopas saglabÄ rezerves serveri, lai pÄc iespÄjas ÄtrÄk restartÄtu tajÄ pazaudÄto mezglu.
Avots: www.habr.com