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
- ACID atitiktis: NewSQL duomenų bazės teikia pirmenybę ACID savybėms, siekdamos užtikrinti duomenų vientisumą ir nuoseklumą. Tai yra esminis reikalavimas programoms, kurios tvarko jautrius duomenis arba reikalauja griežtų transakcinių garantijų, pavyzdžiui, finansų sistemoms ar el. prekybos platformoms.
- Mastelio keitimas: Jos sukurtos horizontaliai keisti mastelį, paskirstant duomenis ir apdorojimą per kelis mazgus. Tai leidžia joms tvarkyti didėjančius darbo krūvius ir duomenų kiekius neaukojant našumo.
- SQL sąsaja: Dauguma NewSQL duomenų bazių suteikia su SQL suderinamą sąsają, todėl kūrėjams lengviau perkelti esamas programas arba panaudoti turimus SQL įgūdžius.
- Paskirstyta architektūra: NewSQL duomenų bazės paprastai yra sukurtos remiantis paskirstyta architektūra, kuri leidžia joms pasiekti aukštą prieinamumą ir atsparumą gedimams.
- Našumas: Jos optimizuotos didelio našumo transakcijų apdorojimui, dažnai naudojant tokias technikas kaip duomenų saugojimas atmintyje, paskirstytas užklausų apdorojimas ir be užraktų veikianti konkurencijos kontrolė.
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
- Mastelio keitimas: NewSQL duomenų bazės gali keisti mastelį horizontaliai, kad susidorotų su didėjančiais darbo krūviais ir duomenų apimtimis.
- ACID atitiktis: Jos suteikia tvirtas ACID garantijas, užtikrinančias duomenų vientisumą ir nuoseklumą.
- Našumas: Jos yra optimizuotos didelio našumo transakcijų apdorojimui.
- Atsparumas gedimams: Jos sukurtos taip, kad būtų atsparios gedimams, o tai reiškia, kad jos gali toliau veikti net sugedus kai kuriems mazgams.
- Suderinamumas su SQL: Dauguma NewSQL duomenų bazių suteikia su SQL suderinamą sąsają, todėl lengviau perkelti esamas programas.
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ų:
- Google Spanner: Globaliai paskirstyta, mastelį keičianti ir stipriai nuosekli duomenų bazės paslauga.
- CockroachDB: Paskirstyta SQL duomenų bazė, sukurta ant transakcinės ir stipriai nuoseklios raktų-verčių saugyklos.
- TiDB: Atvirojo kodo paskirstyta SQL duomenų bazė, palaikanti tiek internetinių transakcijų apdorojimo (OLTP), tiek internetinės analitinės apdorojimo (OLAP) darbo krūvius.
- VoltDB: Atmintyje veikianti, išplečiama SQL duomenų bazė, skirta didelės spartos duomenims ir greitiems sprendimams.
- NuoDB: Paskirstyta SQL duomenų bazė, skirta debesų kompiuterijos aplinkoms.
Tinkamos NewSQL duomenų bazės pasirinkimas
Tinkamos NewSQL duomenų bazės pasirinkimas jūsų programai priklauso nuo kelių veiksnių, įskaitant:
- Mastelio keitimo reikalavimai: Kiek duomenų ir srauto jums reikia valdyti?
- ACID reikalavimai: Kiek svarbios yra ACID garantijos jūsų programai?
- Našumo reikalavimai: Kaip greitai jums reikia apdoroti transakcijas?
- Diegimo aplinka: Kur diegsite duomenų bazę (pvz., nuosavoje infrastruktūroje, debesyje)?
- Suderinamumas su SQL: Kiek svarbus yra suderinamumas su SQL jūsų esamoms programoms ir kūrėjų komandai?
- Kaina: Koks jūsų biudžetas duomenų bazei?
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:
- Daugiau debesų kompiuterijai pritaikytų duomenų bazių: NewSQL duomenų bazės vis dažniau bus kuriamos debesų kompiuterijos aplinkoms, išnaudojant tokias debesų kompiuterijos technologijas kaip „Kubernetes“ ir „serverless“ kompiuterija.
- Patobulintas geografinis paskirstymas: NewSQL duomenų bazės taps dar geresnės tvarkant geografiškai paskirstytus duomenis ir suteikiant mažos delsos prieigą prie duomenų iš bet kurios pasaulio vietos.
- Integracija su mašininiu mokymusi: NewSQL duomenų bazės bus vis labiau integruojamos su mašininio mokymosi platformomis, leidžiančiomis atlikti realaus laiko analizę ir priimti duomenimis pagrįstus sprendimus.
- Patobulintas saugumas: NewSQL duomenų bazės įdiegs pažangesnes saugumo funkcijas, siekdamos apsaugoti jautrius duomenis nuo neteisėtos prieigos.
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.