sql >> Databasteknik >  >> RDS >> MariaDB

En översikt av MariaDB Xpand (tidigare ClustrixDB)

MariaDB Xpand är en ny produkt från MariaDB. Det var tidigare känt som ClustrixDB som förvärvades i september 2018 av MariaDB Corporation.

ClustrixDB är inte längre tillgänglig som en separat enhet, utan ingår nu som en del av MariaDB Enterprise Server. Nu kallad Xpand, utökar den MariaDB Enterprise Server med distribuerad data och transaktionsbearbetning, och omvandlar den till en distribuerad SQL-databas som kan skalas till miljontals transaktioner per sekund med en delad-ingenting-arkitektur. Xpand är dock inte ett allt eller inget, eftersom DBA:er kan välja att använda både replikerade och distribuerade tabeller. Xpand är bra för komplexa frågor och analysbehandling eftersom det kan utföra parallella frågor över tillgängliga noder inom klustret.

I grund och botten är Xpand en delad-ingenting-arkitektur och designad som en utskalad SQL-databas, byggd från grunden som ursprungligen kunde köras på råvaruhårdvara med automatisk dataomfördelning (så att du aldrig behöver skära ). Den har inbyggd feltolerans, allt tillgängligt med ett enkelt SQL-gränssnitt och stöd för affärskritiska MySQL-funktioner (replikering, triggers, lagrade rutiner, etc). Dess licens är endast tillgänglig som proprietär, så om du vill dra nytta av den här produkten måste du kontakta MariaDB försäljning först för att skaffa en giltig licens.

När ska MariaDB Xpand användas

Xpand är designad för att hantera stora datamängder och som låter dig skala din databas mer effektivt. Detta innebär att utskalningen av ditt kluster görs enkelt och automatiskt av Xpand själv. Sedan lanseringen av MariaDB Platform X5 är Xpand redan en del av plattformen som tillhandahålls kunderna som en del av den distribuerade SQL-lösningen. Den smarta Xpand-motorn tillåter kunder att skala bortom InnoDB-lagringsmotorns sweet spot med högpresterande blandade läs-/skrivarbetsbelastningar på en enda nod med möjligheten att lägga till skala via replikering och använda en mycket tillgänglig feltolerant distribuerad lösning för stora- skala arbetsbelastningar.

Med Xpand har du flexibiliteten att skala per tabell. Börja med att använda Xpand för bara ett enda bord och utöka användningen när dina behov växer utöver vad en enskild nod kan hantera. Öka användningen av distribuerad SQL när ditt företags behov växer bortom replikering eller klustring. När data- eller frågevolymer ökar till den grad att prestanda försämras kan du använda Xpand för att distribuera tabeller eller hela databasen för förbättrad genomströmning och samtidighet. Xpand har inbyggd hög tillgänglighet och elasticitet, så noder kan läggas till eller tas bort transparent efter behov för att skala ut.

Precis som med MariaDB ColumnStore, den kolumnära smarta motorn, är JOINs mellan olika motorer möjliga (och uppmuntras) mellan replikerade och distribuerade tabeller. Till skillnad från andra distribuerade SQL-implementationer som distribuerar hela databasen och därför har betydande overhead på mindre tabeller, tillåter MariaDB kombinerad användning av InnoDB för replikerade små datamängder och massiva distribuerade datamängder via Xpand.

Tyvärr finns det ingen formell dokumentation angående ändringsläget från ClustrixDB till MariaDB Xpand, så du kanske fortfarande vill lita på https://docs.clustrix.com/ för dokumentation om hur ClustrixDB fungerar. Det är också känt att GTID inte stöds av ClustrixDB, även om detta kan ha ändrats sedan lanseringen av MariaDB 10.5.

Hur fungerar MariaDB Xpand?

Isättning med MariaDB Xpand kräver att du har MariaDB Enterprise Servers med Xpand-plugin installerad, och sedan körs Xpand-noderna bredvid. Det är på liknande sätt precis som hur du ställer in MaxScale och MariaDB Server replikeringsinställningar för High Availability och du kan placera MaxScale överst för att hantera anslutningar och transparent misslyckas mellan frontend Enterprise Server-instanserna med replikerade mindre datamängder i InnoDB.. Det rekommenderas också att För bästa prestandaupplevelse med Xpand måste front-end-servrarna och noderna köras på separata fysiska servrar. Se MariaDB Xpand-topologiarkitekturen nedan från MariaDB om hur detta fungerar:

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

För att förklara ytterligare ovan delar Xpand upp ett antal skivor för varje tabell som är byggd med Xpand. Varje skiva lagras på en primär nod och replikeras sedan till en eller flera andra noder för att säkerställa feltolerans. Varje Xpand-nod kan utföra både läsning och skrivning. Och varje nod har en karta över datadistributionen.

För läsoperationer trycks huvuddelen av frågan ner till Xpand där frågan utvärderas och relevanta delar av frågan skickas sedan till lämpliga Xpand-noder. MariaDB Enterprise Server samlar in returdata från Xpand-noderna för att generera en resultatuppsättning.

För skrivoperationer använder MariaDB Xpand en komponent som kallas "rebalancer" för att automatiskt och transparent distribuera data över de tillgängliga Xpand-noderna.

MariaDB Xpand som en distribuerad SQL

Varje Xpand-nod kan utföra både läsning och skrivning. När en fråga tas emot av MariaDB Enterprise Server utvärderas den av en frågeoptimerare och delar av frågan skickas till relevanta Xpand-noder. Resultaten samlas in och en enda resultatuppsättning returneras till klienten.

MariaDB Xpand utnyttjar en delad-ingenting-arkitektur; en enda nod hanterar varje begäran, och minne och lagring delas inte.

MariaDB Xpand HA och feltolerans

MariaDB Xpand är feltolerant till sin design. Xpand underhåller två repliker av all data med hjälp av en ombalanseringsprocess som körs i bakgrunden. Xpand kan drabbas av en enda nod eller zonfel utan dataförlust.

Vid nodfel balanseras data om från återstående noder, vilket automatiskt läker dataskyddet utan ingrepp. Vid ett zonfel utför rebalanseraren samma operation mellan noder och återstående zoner.

När den misslyckade noden ersätts, omfördelar rebalanseraren data och återställer MariaDB Xpand till dess avsedda nodantal.

Horisontell skala ut med MariaDB Xpand

MariaDB Xpand är flexibel till sin design. Om belastningen på MariaDB Enterprise Server ökar kan du lägga till ytterligare servrar till din distribution, belastningsbalansering mellan dem med MariaDB MaxScale. Varje server kan ansluta till Xpand-noderna för att komma åt data lagrade på Xpand-tabeller.

Om belastningen på MariaDB Xpand ökar kan du skala ut genom att lägga till nya noder. När du lägger till en Xpand-nod till distributionen omfördelar ombalanseringsprocessen data från de befintliga noderna. När den är klar kan Xpand-noden nu hantera både läs- och skrivoperationer från MariaDB Enterprise Servers.

Om belastningen på MariaDB Xpand minskar kan du skala ner genom att ta bort noder. När du tar bort en Xpand-nod från distributionen omfördelar ombalanseringsprocessen data till de återstående noderna, vilket säkerställer feltolerans.

Vad gör MariaDB Xpand skalbar?

Det finns inga flaskhalsar och inga enskilda felpunkter. Alla processorer anlitas för att stödja frågebehandling. Frågor parallelliseras och distribueras över klustret till relevant data. Nya noder känns igen automatiskt och införlivas i klustret. Arbetsbelastningar och data balanseras automatiskt över alla noder i klustret. Klusteromfattande SQL relationskalkyl och ACID-egenskaper eliminerar komplexitet med flera noder från utveckling och hantering av flerskiktade applikationer. Den komplexitet som vanligtvis krävs för att skala befintliga db-modeller för att hantera stora datamängder elimineras. Och när din databas växer, lägg bara till noder.

Det finns flera saker som påverkar skalbarhet och prestanda:

  • Delad-ingenting-arkitektur, som eliminerar potentiella flaskhalsar. Jämför detta med arkitekturer för delad disk/delad cache som flaskhalsar, inte skalas och är svåra att hantera.
  • Parallellisering av frågor, som distribueras till nod(erna) med relevant data. Resultaten skapas så nära data som möjligt och dirigeras sedan tillbaka till den begärande noden för konsolidering och returneras till klienten.

Detta skiljer sig mycket från andra system, som rutinmässigt flyttar stora mängder data till noden som bearbetar frågan och sedan eliminerar all data som inte passar frågan (vanligtvis mycket data) . Genom att endast flytta kvalificerad data över nätverket till den begärande noden, minskar Xpand avsevärt nätverkstrafikens flaskhals. Dessutom deltar fler processorer i dataurvalsprocessen. Genom att välja data på flera noder parallellt producerar systemet resultat snabbare än om all data valts av en enda nod, som först måste samla in all nödvändig data från den andra noder i systemet.

Eftersom varje nod fokuserar på en viss partition och skickar arbetsobjekt till andra noder istället för att begära rådata från andra noder, innehåller varje nods cache mer av den nodens data och mindre redundant data från andra noder. Detta innebär att cacheträfffrekvensen blir mycket högre, vilket avsevärt minskar behovet av långsam diskåtkomst.

Distribuera MariaDB Xpand

Det finns två separata MariaDB Xpand-distributioner för att börja använda MariaDB Xpand. Xpand-distributioner består av MariaDB Enterprise Server-instanser, kallade front-end-servrarna, med Xpand-plugin installerad, sedan körs Xpand-noderna tillsammans med dessa front-end-servrar. För bästa prestanda kan Enterprise Server och Xpand-noden installeras på separata fysiska servrar.

  1. Du måste ställa in MariaDB Xpand-noden. Xpand-noder är konfigurerade i en distribution för att tillhandahålla lagringsbackend för MariaDB Enterprise Servers med Xpand-lagringsmotorplugin. Servrar lagrar data för Xpand-tabeller på Xpand-noder snarare än det lokala filsystemet. Installation av Xpand-noden kräver en licens, som är ett JSON-objekt, och du kan bara förvärva genom att kontakta MariaDB Sales. Installationsprocessen är inte så snabb som bara ett enda kommando eller klick så vi föreslår att du går till deras installationsguide för Xpand-noden.
  2. Distribuera en front-end-server. Som jag har märkt här över ändringarna de gjorde, ser det ut som att det mest rekommenderade sättet att använda Xpand är att använda MariaDB Enterprise Server 10.5. Xpand 

MariaDB Xpand-hårdvarukompatibilitet

Om du är nyfiken på dess hårdvarukompatibilitet kan MariaDB-plattformen köras i en mängd olika miljöer. Så länge som dina MariaDB-servrar kan köras eller hostas i de miljöer du använder för närvarande, så länge du kan ställa in Xpand-noderna tillsammans med MariaDB-servrarna och har Xpand-plugins installerade, så kommer detta definitivt att fungera. Från deras dokumentation listas listan över fysiska miljöer och molnmiljöer nedan:

  • På plats (på plats)
  • Samställd (colo)
  • Privat moln
  • Public Cloud
  • Hybridiserad

För hårdvaruarkitekturen är det värt att notera att från och med MariaDB Enterprise Server 10.4.10-4 (2019-11-18) stöder MariaDB Enterprise Server endast x86_64 hårdvaruarkitekturplattformar.

Slutsats

MariaDB Xpand förenklar effektivitet och utbyggbarhet på ett mycket bekvämt sätt. Den mest tilltalande aspekten av denna produkt är att du också kan använda MariaDBs standard SQL-funktioner. Den kan bäddas in genom din befintliga MariaDB-miljö, som kan dra fördel av dess funktioner och skalbarhet. Även om det kan vara lockande, kräver det speciella licenser och höga avgifter för att du ska kunna utnyttja den här produkten. Om det tjänar ett syfte för din företagsapplikation kan denna MariaDB Xpand vara värt ett försök.


  1. Jämför RDS vs EC2 för att hantera MySQL eller MariaDB på AWS

  2. Förstå MySQL TRUNCATE TABLE genom praktiska exempel

  3. Få BLOB från BFILE-kolumnen i Oracle

  4. Uppdatera flera kolumner i SQL