sql >> Database teknologi >  >> RDS >> MariaDB

En oversigt over MariaDB Xpand (tidligere ClustrixDB)

MariaDB Xpand er et nyt produkt fra MariaDB. Det var tidligere kendt som ClustrixDB, som blev erhvervet i september 2018 af MariaDB Corporation.

ClustrixDB er ikke længere tilgængelig som en separat enhed, men er nu inkluderet som en del af MariaDB Enterprise Server. Nu kaldet Xpand udvider den MariaDB Enterprise Server med distribueret data- og transaktionsbehandling og transformerer den til en distribueret SQL-database, der er i stand til at skalere til millioner af transaktioner pr. sekund med en delt-intet-arkitektur. Xpand er dog ikke et alt eller intet, da DBA'er kan vælge at bruge både replikerede og distribuerede tabeller. Xpand er god til komplekse forespørgsler og analysebehandling, da den kan udføre parallelle forespørgsler på tværs af de tilgængelige noder i klyngen.

Dybest set er Xpand en delt intet-arkitektur og designet som en udskaleret SQL-database, bygget fra bunden, som oprindeligt kunne køre på råvarehardware med automatisk dataomfordeling (så du aldrig behøver at sønderdele) ). Den har indbygget fejltolerance, alt tilgængelig via en simpel SQL-grænseflade og understøttelse af forretningskritiske MySQL-funktioner (replikering, triggere, lagrede rutiner osv.). Dens licens er kun tilgængelig som proprietær, så hvis du vil drage fordel af dette produkt, skal du først kontakte MariaDB-salget for at erhverve en gyldig licens.

Hvornår skal MariaDB Xpand bruges

Xpand er designet til at håndtere store mængder data, og det lader dig skalere din database mere effektivt. Dette betyder, at udskaleringen af ​​din klynge udføres nemt og automatisk af Xpand selv. Siden udgivelsen af ​​MariaDB Platform X5 er Xpand allerede en del af den platform, der leveres til kunderne som en del af den distribuerede SQL-løsning. Xpand smart-motoren giver kunderne mulighed for at skalere ud over InnoDB-lagringsmotorens søde punkt med højtydende blandede læse/skrive-arbejdsbelastninger på en enkelt node med mulighed for at tilføje skala via replikering og anvende en meget tilgængelig fejltolerant distribueret løsning til store- skaler arbejdsbyrder.

Med Xpand har du fleksibiliteten til at skalere på en per tabel basis. Start med at bruge Xpand til kun et enkelt bord og udvid brugen, efterhånden som dine behov vokser ud over, hvad en enkelt node kan håndtere. Øg brugen af ​​distribueret SQL, efterhånden som din virksomheds behov vokser ud over replikering eller klyngedannelse. Når data- eller forespørgselsvolumen stiger til et punkt, hvor ydeevnen forringes, kan du bruge Xpand til at distribuere tabeller eller hele databasen for forbedret gennemløb og samtidighed. Xpand har indbygget høj tilgængelighed og elasticitet, så noder kan tilføjes eller fjernes gennemsigtigt efter behov for at udskalere.

Ligesom med MariaDB ColumnStore, den søjleformede smarte motor, er krydsmotor JOINs mulige (og opmuntrede) mellem replikerede og distribuerede tabeller. I modsætning til andre distribuerede SQL-implementeringer, der distribuerer hele databasen og derfor har betydelig overhead på mindre tabeller, tillader MariaDB den kombinerede brug af InnoDB til replikerede små datasæt og massive distribuerede datasæt via Xpand.

Desværre er der ingen formel dokumentation vedrørende ændringstilstanden fra ClustrixDB til MariaDB Xpand, så du vil måske stadig stole på https://docs.clustrix.com/ for dokumentation om, hvordan ClustrixDB fungerer. Det er også kendt, at GTID ikke understøttes af ClustrixDB, selvom dette kan have ændret sig siden udgivelsen af ​​MariaDB 10.5.

Hvordan virker MariaDB Xpand?

Implementering ved hjælp af MariaDB Xpand kræver, at du har MariaDB Enterprise-servere med Xpand-plugin installeret, og derefter kører Xpand-noderne ved siden af. Det er på samme måde ligesom, hvordan du konfigurerer MaxScale og MariaDB Server-replikeringsopsætning til High Availability, og du kan placere MaxScale øverst for at administrere forbindelser og transparent fail over mellem frontend Enterprise Server-instanserne med replikerede mindre datasæt i InnoDB.. Det anbefales også, at For den bedste ydelsesoplevelse med Xpand skal frontend-servere og noder køres på separate fysiske servere. Se MariaDB Xpand-topologiarkitekturen nedenfor fra MariaDB om, hvordan dette fungerer:

https://mariadb.com/resources/blog/mariadb-adds-xpand-for-distributed-sql /

For at forklare yderligere ovenfor, opdeler Xpand et antal udsnit for hver tabel, der er bygget ved hjælp af Xpand. Hver skive lagres på en primær node og replikeres derefter til en eller flere andre noder for at sikre fejltolerance. Hver Xpand-node kan udføre både læsning og skrivning. Og hver node har et kort over datafordelingen.

For læseoperationer skubbes størstedelen af ​​forespørgslen ned til Xpand, hvor forespørgslen evalueres, og relevante dele af forespørgslen sendes derefter til de relevante Xpand-noder. MariaDB Enterprise Server indsamler returdata fra Xpand-knuderne for at generere et resultatsæt.

Til skriveoperationer bruger MariaDB Xpand en komponent kaldet "rebalancer" til automatisk og gennemsigtigt at distribuere data på tværs af de tilgængelige Xpand-noder.

MariaDB Xpand som en distribueret SQL

Hver Xpand-node er i stand til at udføre både læsning og skrivning. Når en forespørgsel modtages af MariaDB Enterprise Server, evalueres den af ​​en forespørgselsoptimering, og dele af forespørgslen sendes til de relevante Xpand-noder. Resultaterne indsamles og et enkelt resultatsæt returneres til klienten.

MariaDB Xpand udnytter en delt-intet-arkitektur; en enkelt node håndterer hver anmodning, og hukommelse og lager er ikke delt.

MariaDB Xpand HA og fejltolerance

MariaDB Xpand er fejltolerant af design. Xpand vedligeholder to replikaer af alle data ved hjælp af en rebalancer-proces, der kører i baggrunden. Xpand kan lide af en enkelt node eller zonefejl uden tab af data.

Ved nodefejl bliver data rebalanceret fra resterende noder, hvilket automatisk helbreder databeskyttelsen uden indgriben. I en zonefejl udfører rebalanceren den samme operation mellem noder og resterende zoner.

Når den fejlbehæftede node udskiftes, omdistribuerer rebalanceren data og gendanner MariaDB Xpand til dets tilsigtede nodeantal.

Horisontal skalering med MariaDB Xpand

MariaDB Xpand er fleksibel i design. Hvis belastningen på MariaDB Enterprise Server øges, kan du tilføje yderligere servere til din implementering, belastningsbalancering mellem dem ved hjælp af MariaDB MaxScale. Hver server kan oprette forbindelse til Xpand-knuderne for at få adgang til data gemt på Xpand-tabeller.

Hvis belastningen på MariaDB Xpand øges, kan du skalere ud ved at tilføje nye noder. Når du tilføjer en Xpand-knude til implementeringen, omdistribuerer rebalanceringsprocessen data fra de eksisterende knudepunkter. Når den er færdig, kan Xpand-noden nu håndtere både læse- og skriveoperationer fra MariaDB Enterprise Servers.

Hvis belastningen på MariaDB Xpand falder, kan du skalere ned ved at fjerne noder. Når du fjerner en Xpand-node fra implementeringen, omdistribuerer rebalanceringsprocessen data til de resterende noder, hvilket sikrer fejltolerance.

Hvad gør MariaDB Xpand skalerbar?

Der er ingen flaskehalse og ingen enkelte fejlpunkter. Alle processorer er engageret til støtte for forespørgselsbehandling. Forespørgsler paralleliseres og fordeles på tværs af klyngen til de relevante data. Nye noder genkendes automatisk og inkorporeres i klyngen. Arbejdsbelastninger og data afbalanceres automatisk på tværs af alle noder i klyngen. Klyngedækkende SQL-relationel calculus og ACID-egenskaber eliminerer multi-node kompleksitet fra udvikling og administration af multi-tiered applikationer. Den kompleksitet, der almindeligvis kræves for at skalere eksisterende db-modeller til at håndtere store mængder data, er elimineret. Og efterhånden som din database vokser, skal du blot tilføje noder.

Der er flere ting, der påvirker skalerbarhed og ydeevne:

  • Shared-nothing-arkitektur, som eliminerer potentielle flaskehalse. Sammenlign dette med shared-disk / shared-cache-arkitekturer, der er flaskehalse, ikke skalerer og er svære at administrere.
  • Parallellisering af forespørgsler, som distribueres til noden(erne) med de relevante data. Resultaterne oprettes så tæt på dataene som muligt og dirigeres derefter tilbage til den anmodende node for konsolidering og returneres til klienten.

Dette er meget forskelligt fra andre systemer, som rutinemæssigt flytter store mængder data til den node, der behandler forespørgslen, og derefter eliminerer alle de data, der ikke passer til forespørgslen (typisk masser af data) . Ved kun at flytte kvalificerede data på tværs af netværket til den anmodende node, reducerer Xpand markant netværkstrafikflaskehalsen. Derudover deltager flere processorer i dataudvælgelsesprocessen. Ved at vælge data på flere noder parallelt, producerer systemet resultater hurtigere, end hvis alle data var udvalgt af en enkelt node, som først skal indsamle alle de nødvendige data fra den anden. noder i systemet.

Da hver node fokuserer på en bestemt partition og sender arbejdsemner til andre noder i stedet for at anmode om rådata fra andre noder, indeholder hver nodes cache flere af den nodes data og mindre redundante data fra andre noder. Dette betyder, at cache-hitraterne vil være meget højere, hvilket væsentligt reducerer behovet for langsom diskadgang.

Implementering af MariaDB Xpand

Der er to separate MariaDB Xpand-implementeringer for at begynde at bruge MariaDB Xpand. Xpand-implementeringer består af MariaDB Enterprise Server-instanser, kaldet front-end-servere, hvor Xpand-pluginet er installeret, så kører Xpand-noderne sammen med disse front-end-servere. For den bedste ydeevne kan Enterprise Server og Xpand-noden installeres på separate fysiske servere.

  1. Du skal konfigurere MariaDB Xpand Node. Xpand-noder er konfigureret i en udrulning til at give lager-backend til MariaDB Enterprise-servere med Xpand-storagemotor-plugin. Servere gemmer data til Xpand-tabeller på Xpand-noder i stedet for det lokale filsystem. Installation af Xpand Node kræver en licens, som er et JSON-objekt, og du kan kun erhverve dig ved at kontakte MariaDB Sales. Installationsprocessen er ikke så hurtig som blot en enkelt kommando eller klik, så vi foreslår, at du går til deres installationsvejledning til Xpand Node.
  2. Implementer en frontend-server. Som jeg har bemærket her over de ændringer, de har foretaget, ser det ud til, at den mest anbefalede måde at bruge Xpand på er at bruge MariaDB Enterprise Server 10.5. Xpand 

MariaDB Xpand-hardwarekompatibilitet

Hvis du er nysgerrig efter dens hardwarekompatibilitet, kan MariaDB-platformen køre i en række forskellige miljøer. Så længe dine MariaDB-servere kan køre eller hostes i de miljøer, du bruger i øjeblikket, så længe du er i stand til at konfigurere Xpand-noderne sammen med MariaDB-serverne og har Xpand-plugins installeret, så vil dette helt sikkert fungere. Fra deres dokumentation er listen over fysiske og skymiljøer anført nedenfor:

  • On-premises (on-prem)
  • Samlet (colo)
  • Privat cloud
  • Public Cloud
  • Hybridiseret

For hardwarearkitekturen er det værd at bemærke, at fra og med MariaDB Enterprise Server 10.4.10-4 (2019-11-18) understøtter MariaDB Enterprise Server kun x86_64 hardwarearkitekturplatforme.

Konklusion

MariaDB Xpand forenkler effektivitet og udvidelsesmuligheder på en meget bekvem måde. Det mest tiltalende aspekt af dette produkt er, at du også kan bruge MariaDBs standard SQL-funktioner. Det kan indlejres gennem dit eksisterende MariaDB-miljø, som kan drage fordel af dets funktioner og skalerbarhed. Selvom det kan være lokkende, kræver det særlige licenser og store gebyrer for at du kan udnytte dette produkt. Hvis det tjener et formål for din virksomhedsapplikation, så kan denne MariaDB Xpand være et forsøg værd.


  1. Sæt første bogstav i hvert ord med stort i eksisterende tabel

  2. Analyse af I/O-ydeevne for SQL Server

  3. Oracle Cloud Breakdown – Databasehostingomkostninger på OCI

  4. Returnerer flere tabeller fra en lagret procedure