Eesti

Avastage NewSQL-i andmebaaside maailma, mis on loodud pakkuma skaleeritavaid, hajutatud ACID-tehinguid kaasaegsetele globaalsetele rakendustele. Õppige nende arhitektuuri ja eeliseid.

NewSQL: hajutatud ACID-tehingute skaleerimine globaalsete rakenduste jaoks

Tänapäeva andmepõhises maailmas nõuavad rakendused nii skaleeritavust kui ka andmete järjepidevust. Traditsioonilised relatsioonandmebaasid, pakkudes küll tugevaid ACID-garantiisid (aatomilisus, järjepidevus, isoleeritus, püsivus), on sageli hädas horisontaalse skaleerimisega. NoSQL-i andmebaasid seevastu pakuvad skaleeritavust, kuid ohverdavad tavaliselt ACID-omadused jõudluse nimel. NewSQL-i andmebaasid on tekkinud keskteena, eesmärgiga ühendada mõlema maailma parimad omadused: NoSQL-i skaleeritavus ja jõudlus koos traditsiooniliste RDBMS-ide ACID-garantiidega.

Mis on NewSQL?

NewSQL ei ole üksainus andmebaasitehnoloogia, vaid pigem kaasaegsete relatsioonandmebaaside haldussüsteemide (RDBMS) klass, mille eesmärk on pakkuda samu ACID-garantiisid nagu traditsioonilised andmebaasisüsteemid, saavutades samal ajal NoSQL-süsteemide skaleeritavuse. Need on loodud suuremahuliste tehingute töötlemiseks ja suurte andmemahtude haldamiseks, mis teeb need sobivaks kaasaegsetele hajutatud rakendustele.

Põhimõtteliselt on NewSQL-süsteemid arhitektuuriliselt loodud lahendama traditsiooniliste RDBMS-ide piiranguid mastaapselt tegutsedes. Nad jaotavad andmed ja töötlemise mitme sõlme vahel, võimaldades horisontaalset skaleeritavust, tagades samal ajal tehingute usaldusväärse ja järjepideva töötlemise.

NewSQL-i andmebaaside põhiomadused

NewSQL-i arhitektuurilised lähenemised

NewSQL-i andmebaaside rakendustes kasutatakse mitmeid arhitektuurilisi lähenemisi. Need lähenemised erinevad selles, kuidas nad saavutavad skaleeritavuse ja ACID-i garantiid.

1. Eraldiseisev arhitektuur (Shared-Nothing)

Eraldiseisvas arhitektuuris on igal klastri sõlmel oma sõltumatud ressursid (protsessor, mälu, salvestusruum). Andmed on partitsioneeritud ja jaotatud nende sõlmede vahel. See arhitektuur pakub suurepärast skaleeritavust, sest rohkemate sõlmede lisamine suurendab lineaarselt süsteemi mahtu. Näited NewSQL-i andmebaasidest, mis kasutavad eraldiseisvat arhitektuuri, on Google Spanner ja CockroachDB.

Näide: Kujutage ette ülemaailmset e-kaubanduse platvormi, millel on kasutajaid üle kogu maailma. Kasutades eraldiseisva arhitektuuriga NewSQL-i andmebaasi, saab platvorm jaotada oma andmed mitme geograafiliselt hajutatud andmekeskuse vahel. See tagab madala latentsusaja eri piirkondade kasutajatele ja kõrge kättesaadavuse piirkondlike katkestuste korral.

2. Ühismälu arhitektuur (Shared-Memory)

Ühismälu arhitektuuris jagavad kõik klastri sõlmed sama mäluruumi. See võimaldab kiiret andmetele juurdepääsu ja suhtlust sõlmede vahel. Siiski on see arhitektuur tavaliselt piiratud skaleeritavusega, sest ühismälu muutub sõlmede arvu suurenedes kitsaskohaks. Sellist arhitektuuri kasutavate andmebaaside näideteks (kuigi mitte rangelt NewSQL-i puhtaimas tähenduses, kuid sarnaseid tehingute skaleerimise lähenemisi näitavad) on teatud mälusisesed andmebaasiklastrid.

3. Ühisketta arhitektuur (Shared-Disk)

Ühisketta arhitektuuris jagavad kõik klastri sõlmed samu salvestusseadmeid. See lihtsustab andmehaldust ja tagab kõrge kättesaadavuse. Siiski võib ka see arhitektuur olla kitsaskoht, kuna kõik sõlmed peavad pääsema juurde samale salvestusruumile. Mõningaid traditsioonilisi RDBMS-süsteeme, kui need on klasterdatud, võib käsitleda skaleeritava tehingute töötlemise laiemas kontekstis, even though they might not be labeled as NewSQL.

ACID-tehingud hajutatud keskkonnas

ACID-omaduste säilitamine hajutatud keskkonnas on keeruline väljakutse. NewSQL-i andmebaasid kasutavad andmete järjepidevuse ja usaldusväärsuse tagamiseks erinevaid tehnikaid.

1. Kahefaasiline kinnitamine (2PC)

2PC on laialdaselt kasutatav protokoll aatomilisuse tagamiseks mitme sõlme vahel. 2PC-s koordineerib koordinaatorsõlm tehingut kõigi osalevate sõlmede vahel. Tehing toimub kahes faasis: ettevalmistusfaas ja kinnitusfaas. Ettevalmistusfaasi ajal valmistub iga sõlm tehingu kinnitamiseks ja teavitab koordinaatorit. Kui kõik sõlmed on valmis, annab koordinaator neile käsu kinnitada. Kui mõni sõlm ei suuda ette valmistuda, annab koordinaator kõigile sõlmedele käsu tehing tühistada.

Väljakutse: 2PC võib olla aeglane ja tekitada ühe rikkepunkti (koordinaatori). Seetõttu eelistavad kaasaegsed NewSQL-süsteemid sageli alternatiivseid protokolle.

2. Paxose ja Rafti konsensusalgoritmid

Paxos ja Raft on konsensusalgoritmid, mis võimaldavad hajutatud süsteemil kokku leppida ühes väärtuses isegi rikete esinemisel. Neid algoritme kasutatakse sageli NewSQL-i andmebaasides andmete järjepidevuse ja tõrketaluvuse tagamiseks. Need pakuvad 2PC-le robustsemat ja tõhusamat alternatiivi.

Näide: CockroachDB kasutab Rafti andmete replikatsiooniks mitme sõlme vahel ja tagamaks, et kõik replikad on järjepidevad. See tähendab, et isegi kui üks sõlm ebaõnnestub, saab süsteem jätkata tööd ilma andmekao või ebajärjepidevuseta.

3. Spanneri TrueTime API

Google Spanner kasutab globaalselt hajutatud, väliselt järjepidevat ajatemplite süsteemi nimega TrueTime. TrueTime pakub garanteeritud ülempiiri kella ebakindlusele, võimaldades Spanneril saavutada tugevat järjepidevust geograafiliselt hajutatud andmekeskustes. See võimaldab Spanneril sooritada globaalselt hajutatud tehinguid madala latentsusajaga ja suure läbilaskevõimega.

Tähtsus: TrueTime on Spanneri arhitektuuri oluline komponent, kuna see võimaldab andmebaasil säilitada serialiseeritavuse, mis on tugevaim isolatsioonitase, isegi hajutatud keskkonnas.

NewSQL-i andmebaaside kasutamise eelised

NewSQL-i andmebaaside kasutusjuhud

NewSQL-i andmebaasid sobivad laiale valikule rakendustele, mis nõuavad nii skaleeritavust kui ka andmete järjepidevust. Mõned levinumad kasutusjuhud hõlmavad:

1. Finantsrakendused

Finantsrakendused, nagu pangandussüsteemid ja maksetöötlejad, nõuavad rangeid ACID-garantiisid, et tagada finantstehingute täpsus ja usaldusväärsus. NewSQL-i andmebaasid suudavad pakkuda skaleeritavust ja jõudlust, mis on vajalikud suuremahuliste tehingute töötlemiseks, säilitades samal ajal andmete terviklikkuse.

Näide: Globaalne makselüüs, mis töötleb miljoneid tehinguid päevas, vajab andmebaasi, mis suudab toime tulla suure liiklusmahuga ja tagada, et kõik tehingud töödeldakse korrektselt. NewSQL-i andmebaas suudab pakkuda nendele nõuetele vastamiseks vajalikku skaleeritavust ja ACID-garantiisid.

2. E-kaubanduse platvormid

E-kaubanduse platvormid peavad toime tulema suure hulga samaaegsete kasutajate ja tehingutega. NewSQL-i andmebaasid suudavad pakkuda selle töökoormuse haldamiseks vajalikku skaleeritavust ja jõudlust, tagades samal ajal, et tellimused töödeldakse korrektselt ja laoseis uuendatakse täpselt.

Näide: Suur veebimüüja vajab andmebaasi, mis suudab toime tulla pühade ostuhooaegade tippkoormustega. NewSQL-i andmebaas saab skaleeruda, et vastata suurenenud nõudlusele ja tagada, et kõik tellimused töödeldakse vigadeta.

3. Mängurakendused

Massiivsed mitmikmängud (MMO-d) peavad toime tulema suure hulga samaaegsete mängijate ja keeruka mänguloogikaga. NewSQL-i andmebaasid suudavad pakkuda selle töökoormuse haldamiseks vajalikku skaleeritavust ja jõudlust, tagades samal ajal, et mängu seisund on järjepidev ja mängijad ei saa petta.

Näide: Populaarne MMO-mäng vajab andmebaasi, mis suudab toime tulla miljonite samaaegsete mängijatega ja tagada, et kõik mängija andmed on järjepidevad. NewSQL-i andmebaas suudab pakkuda nendele nõuetele vastamiseks vajalikku skaleeritavust ja ACID-garantiisid.

4. Tarneahela juhtimine

Kaasaegsed tarneahelad on globaalselt hajutatud ja nõuavad reaalajas nähtavust laoseisude, tellimuste staatuse ja saadetiste jälgimise osas. NewSQL-i andmebaasid suudavad pakkuda skaleeritavust ja jõudlust, mis on vajalikud tarneahelasüsteemide poolt genereeritud suure andmemahu haldamiseks, tagades samal ajal andmete täpsuse ja järjepidevuse.

5. IoT (Asjade Internet) platvormid

IoT platvormid genereerivad ühendatud seadmetest tohutul hulgal andmeid. NewSQL-i andmebaase saab kasutada nende andmete salvestamiseks ja analüüsimiseks, pakkudes ülevaadet seadmete jõudlusest, kasutusmustritest ja võimalikest probleemidest. Samuti tagavad need, et kriitilised IoT andmed, nagu andurite näidud ja juhtimiskäsud, salvestatakse ja töödeldakse usaldusväärselt.

NewSQL-i andmebaaside näited

Siin on mõned märkimisväärsed näited NewSQL-i andmebaasidest:

Õige NewSQL-i andmebaasi valimine

Õige NewSQL-i andmebaasi valimine teie rakenduse jaoks sõltub mitmest tegurist, sealhulgas:

Enne otsuse tegemist on oluline oma nõudeid hoolikalt hinnata ning võrrelda erinevate NewSQL-i andmebaaside omadusi ja jõudlust. Kaaluge võrdlustestide läbiviimist, et testida erinevate andmebaaside jõudlust teie spetsiifilise töökoormusega.

NewSQL-i tulevik

NewSQL-i andmebaasid on kiiresti arenev tehnoloogia. Kuna andmemahud ja rakenduste keerukus kasvavad jätkuvalt, suureneb nõudlus skaleeritavate ja järjepidevate andmebaaside järele. Võime oodata edasisi uuendusi NewSQL-i arhitektuurides, algoritmides ja tööriistades lähiaastatel.

Mõned potentsiaalsed tulevikutrendid NewSQL-is hõlmavad:

Kokkuvõte

NewSQL-i andmebaasid pakuvad veenvat lahendust rakendustele, mis nõuavad nii skaleeritavust kui ka andmete järjepidevust. Ühendades nii traditsiooniliste RDBMS-ide kui ka NoSQL-i andmebaaside parimad omadused, pakuvad NewSQL-i andmebaasid võimsa platvormi kaasaegsete, hajutatud rakenduste ehitamiseks. Kuna nõudlus skaleeritavate ja järjepidevate andmebaaside järele kasvab jätkuvalt, on NewSQL-il tulevikus andmehalduse vallas üha olulisem roll.

Ükskõik, kas ehitate finantssüsteemi, e-kaubanduse platvormi, mängurakendust või IoT platvormi, saavad NewSQL-i andmebaasid aidata teil toime tulla mastaapsuse ja keerukuse väljakutsetega, tagades samal ajal oma andmete terviklikkuse ja usaldusväärsuse. Kaaluge NewSQL-i maailma avastamist, et näha, kuidas see teie organisatsioonile kasu võib tuua.