Lietuvių

Susipažinkite su NewSQL duomenų bazėmis, kurios siūlo mastelį keičiančias, paskirstytas ACID transakcijas modernioms globalioms programoms. Sužinokite apie jų architektūrą, privalumus ir realius panaudojimo atvejus.

NewSQL: Paskirstytų ACID transakcijų mastelio keitimas globalioms programoms

Šiuolaikiniame duomenimis grindžiamame pasaulyje programoms reikalingas ir mastelio keitimas, ir duomenų nuoseklumas. Tradicinės reliacinės duomenų bazės, nors ir suteikia tvirtas ACID (Atomiškumo, Nuoseklumo, Izoliacijos, Patvarumo) garantijas, dažnai sunkiai plečiasi horizontaliai. NoSQL duomenų bazės, kita vertus, siūlo mastelio keitimą, tačiau paprastai aukoja ACID savybes dėl našumo. NewSQL duomenų bazės atsiranda kaip tarpinis variantas, siekiantis sujungti geriausias abiejų pasaulių savybes: NoSQL mastelio keitimą ir našumą su tradicinių RDBMS ACID garantijomis.

Kas yra NewSQL?

NewSQL nėra viena duomenų bazės technologija, o modernių reliacinių duomenų bazių valdymo sistemų (RDBMS) klasė, kuri siekia suteikti tas pačias ACID garantijas kaip ir tradicinės duomenų bazių sistemos, tuo pačiu pasiekiant NoSQL sistemų mastelio keitimo galimybes. Jos sukurtos valdyti didelės apimties transakcijų apdorojimą ir didelius duomenų kiekius, todėl tinka šiuolaikinėms, paskirstytoms programoms.

Iš esmės, NewSQL sistemos yra suprojektuotos taip, kad pašalintų tradicinių RDBMS apribojimus veikiant dideliu mastu. Jos paskirsto duomenis ir apdorojimą per kelis mazgus, leisdamos horizontaliai keisti mastelį, tačiau vis tiek užtikrina, kad transakcijos būtų apdorojamos patikimai ir nuosekliai.

Pagrindinės NewSQL duomenų bazių savybės

Architektūriniai požiūriai NewSQL

NewSQL duomenų bazių implementacijose naudojami keli architektūriniai požiūriai. Šie požiūriai skiriasi tuo, kaip jie pasiekia mastelio keitimą ir ACID garantijas.

1. „Shared-Nothing“ architektūra

„Shared-nothing“ (atskirtųjų resursų) architektūroje kiekvienas klasterio mazgas turi savo nepriklausomus resursus (CPU, atmintį, saugyklą). Duomenys yra padalijami ir paskirstomi tarp šių mazgų. Ši architektūra suteikia puikų mastelio keitimą, nes pridedant daugiau mazgų, sistemos pajėgumas didėja tiesiogiai. NewSQL duomenų bazių, kurios naudoja „shared-nothing“ architektūrą, pavyzdžiai yra „Google Spanner“ ir „CockroachDB“.

Pavyzdys: Įsivaizduokite globalią el. prekybos platformą su vartotojais visame pasaulyje. Naudodama „shared-nothing“ NewSQL duomenų bazę, platforma gali paskirstyti savo duomenis keliuose geografiškai paskirstytuose duomenų centruose. Tai užtikrina mažą delsą vartotojams skirtinguose regionuose ir suteikia aukštą prieinamumą regioninių sutrikimų atveju.

2. Bendrosios atminties architektūra

Bendrosios atminties architektūroje visi klasterio mazgai dalijasi ta pačia atminties erdve. Tai leidžia greitai pasiekti duomenis ir bendrauti tarp mazgų. Tačiau ši architektūra paprastai yra riboto mastelio, nes bendra atmintis tampa kliūtimi didėjant mazgų skaičiui. Duomenų bazių, kurios naudoja šią architektūrą (nors ir ne griežtai NewSQL gryniausia prasme, bet pasižyminčios panašiais transakcijų mastelio keitimo požiūriais), pavyzdžiai yra tam tikri atmintyje veikiantys duomenų bazių klasteriai.

3. Bendrojo disko architektūra

Bendrojo disko architektūroje visi klasterio mazgai dalijasi tais pačiais saugojimo įrenginiais. Tai supaprastina duomenų valdymą ir suteikia aukštą prieinamumą. Tačiau ši architektūra taip pat gali tapti kliūtimi, nes visi mazgai turi pasiekti tą pačią saugyklą. Kai kurios tradicinės RDBMS sistemos, sujungtos į klasterius, gali būti laikomos platesniame mastelį keičiančio transakcijų apdorojimo kontekste, nors jos ir nebūtų vadinamos NewSQL.

ACID transakcijos paskirstytoje aplinkoje

ACID savybių palaikymas paskirstytoje aplinkoje yra sudėtingas iššūkis. NewSQL duomenų bazės naudoja įvairias technikas, kad užtikrintų duomenų nuoseklumą ir patikimumą.

1. Dviejų fazių fiksavimas (2PC)

2PC yra plačiai naudojamas protokolas, užtikrinantis atomiškumą tarp kelių mazgų. 2PC protokole koordinatoriaus mazgas koordinuoja transakciją tarp visų dalyvaujančių mazgų. Transakcija vyksta dviem fazėmis: paruošimo faze ir fiksavimo faze. Paruošimo fazės metu kiekvienas mazgas ruošiasi fiksuoti transakciją ir informuoja koordinatorių. Jei visi mazgai yra pasiruošę, koordinatorius nurodo jiems fiksuoti. Jei kuris nors mazgas nepasiruošia, koordinatorius nurodo visiems mazgams nutraukti operaciją.

Iššūkis: 2PC gali būti lėtas ir įvesti vieną gedimo tašką (koordinatorių). Todėl šiuolaikinės NewSQL sistemos dažnai renkasi alternatyvius protokolus.

2. „Paxos“ ir „Raft“ konsensuso algoritmai

„Paxos“ ir „Raft“ yra konsensuso algoritmai, leidžiantys paskirstytai sistemai susitarti dėl vienos vertės net esant gedimams. Šie algoritmai dažnai naudojami NewSQL duomenų bazėse siekiant užtikrinti duomenų nuoseklumą ir atsparumą gedimams. Jie suteikia tvirtesnę ir efektyvesnę alternatyvą 2PC.

Pavyzdys: „CockroachDB“ naudoja „Raft“ duomenims replikuoti tarp kelių mazgų ir užtikrinti, kad visos replikos būtų nuoseklios. Tai reiškia, kad net jei vienas mazgas sugenda, sistema gali toliau veikti neprarasdama duomenų ir išlaikydama nuoseklumą.

3. „Spanner“ „TrueTime“ API

„Google Spanner“ naudoja globaliai paskirstytą, išoriškai nuoseklią laiko žymų sistemą, vadinamą „TrueTime“. „TrueTime“ suteikia garantuotą viršutinę laikrodžio neapibrėžtumo ribą, leidžiančią „Spanner“ pasiekti stiprų nuoseklumą geografiškai paskirstytuose duomenų centruose. Tai leidžia „Spanner“ atlikti globaliai paskirstytas transakcijas su maža delsa ir dideliu pralaidumu.

Reikšmė: „TrueTime“ yra esminis „Spanner“ architektūros komponentas, nes jis leidžia duomenų bazei išlaikyti serializavimą, stipriausią izoliacijos lygį, net ir paskirstytoje aplinkoje.

NewSQL duomenų bazių privalumai

NewSQL duomenų bazių panaudojimo atvejai

NewSQL duomenų bazės tinka įvairioms programoms, kurioms reikalingas ir mastelio keitimas, ir duomenų nuoseklumas. Kai kurie įprasti panaudojimo atvejai apima:

1. Finansinės programos

Finansinėms programoms, tokioms kaip bankininkystės sistemos ir mokėjimų apdorojimo platformos, reikalingos griežtos ACID garantijos, kad būtų užtikrintas finansinių transakcijų tikslumas ir patikimumas. NewSQL duomenų bazės gali suteikti mastelio keitimą ir našumą, reikalingą didelės apimties transakcijų apdorojimui, išlaikant duomenų vientisumą.

Pavyzdys: Globaliems mokėjimų vartams, kurie per dieną apdoroja milijonus transakcijų, reikalinga duomenų bazė, galinti atlaikyti didelį srautą ir užtikrinti, kad visos transakcijos būtų apdorotos teisingai. NewSQL duomenų bazė gali suteikti mastelio keitimą ir ACID garantijas, reikalingas šiems reikalavimams patenkinti.

2. El. prekybos platformos

El. prekybos platformos turi aptarnauti didelį skaičių vienu metu prisijungusių vartotojų ir transakcijų. NewSQL duomenų bazės gali suteikti mastelio keitimą ir našumą, reikalingą šiam darbo krūviui valdyti, tuo pačiu užtikrinant, kad užsakymai būtų apdorojami teisingai, o atsargos būtų tiksliai atnaujinamos.

Pavyzdys: Dideliam internetiniam mažmenininkui reikalinga duomenų bazė, galinti atlaikyti didžiausias apkrovas šventinių apsipirkimo sezonų metu. NewSQL duomenų bazė gali keisti mastelį, kad patenkintų padidėjusią paklausą ir užtikrintų, kad visi užsakymai būtų apdoroti be klaidų.

3. Žaidimų programos

Masiniai daugelio žaidėjų internetiniai žaidimai (MMO) turi aptarnauti didelį skaičių vienu metu žaidžiančių žaidėjų ir sudėtingą žaidimo logiką. NewSQL duomenų bazės gali suteikti mastelio keitimą ir našumą, reikalingą šiam darbo krūviui valdyti, tuo pačiu užtikrinant, kad žaidimo būsena būtų nuosekli ir žaidėjai negalėtų sukčiauti.

Pavyzdys: Populiariam MMO žaidimui reikalinga duomenų bazė, galinti aptarnauti milijonus vienu metu žaidžiančių žaidėjų ir užtikrinti, kad visi žaidėjų duomenys būtų nuoseklūs. NewSQL duomenų bazė gali suteikti mastelio keitimą ir ACID garantijas, reikalingas šiems reikalavimams patenkinti.

4. Tiekimo grandinės valdymas

Šiuolaikinės tiekimo grandinės yra globaliai paskirstytos ir reikalauja realaus laiko matomumo į atsargų lygius, užsakymų būseną ir siuntų sekimą. NewSQL duomenų bazės gali suteikti mastelio keitimą ir našumą, reikalingą dideliam duomenų kiekiui, generuojamam tiekimo grandinės sistemų, valdyti, tuo pačiu užtikrinant, kad duomenys būtų tikslūs ir nuoseklūs.

5. Daiktų interneto (IoT) platformos

Daiktų interneto platformos generuoja didžiulius duomenų kiekius iš prijungtų įrenginių. NewSQL duomenų bazės gali būti naudojamos šiems duomenims saugoti ir analizuoti, teikiant įžvalgas apie įrenginių našumą, naudojimo modelius ir galimas problemas. Jos taip pat užtikrina, kad kritiniai daiktų interneto duomenys, tokie kaip jutiklių rodmenys ir valdymo komandos, būtų patikimai saugomi ir apdorojami.

NewSQL duomenų bazių pavyzdžiai

Štai keletas žymių NewSQL duomenų bazių pavyzdžių:

Tinkamos NewSQL duomenų bazės pasirinkimas

Tinkamos NewSQL duomenų bazės pasirinkimas jūsų programai priklauso nuo kelių veiksnių, įskaitant:

Svarbu atidžiai įvertinti savo reikalavimus ir palyginti skirtingų NewSQL duomenų bazių savybes bei našumą prieš priimant sprendimą. Apsvarstykite galimybę atlikti našumo testus, kad patikrintumėte skirtingų duomenų bazių veikimą su jūsų konkrečiu darbo krūviu.

NewSQL ateitis

NewSQL duomenų bazės yra sparčiai besivystanti technologija. Duomenų apimtims ir programų sudėtingumui toliau augant, mastelį keičiančių ir nuoseklių duomenų bazių paklausa tik didės. Artimiausiais metais galime tikėtis tolesnių inovacijų NewSQL architektūrose, algoritmuose ir įrankiuose.

Kai kurios galimos ateities tendencijos NewSQL srityje apima:

Išvada

NewSQL duomenų bazės siūlo patrauklų sprendimą programoms, kurioms reikalingas ir mastelio keitimas, ir duomenų nuoseklumas. Sujungdamos geriausias tradicinių RDBMS ir NoSQL duomenų bazių savybes, NewSQL duomenų bazės suteikia galingą platformą šiuolaikinėms, paskirstytoms programoms kurti. Augant mastelį keičiančių ir nuoseklių duomenų bazių paklausai, NewSQL vaidmuo duomenų valdymo ateityje taps vis svarbesnis.

Nesvarbu, ar kuriate finansų sistemą, el. prekybos platformą, žaidimų programą ar daiktų interneto platformą, NewSQL duomenų bazės gali padėti jums įveikti mastelio ir sudėtingumo iššūkius, tuo pačiu užtikrinant jūsų duomenų vientisumą ir patikimumą. Apsvarstykite galimybę tyrinėti NewSQL pasaulį ir pamatyti, kaip jis gali būti naudingas jūsų organizacijai.