sql >> Database >  >> RDS >> MariaDB

Een overzicht van MariaDB Xpand (voorheen ClustrixDB)

MariaDB Xpand is een nieuw product van MariaDB. Het was voorheen bekend als ClustrixDB, dat in september 2018 werd overgenomen door MariaDB Corporation.

ClustrixDB is niet langer beschikbaar als een afzonderlijke entiteit, maar is nu opgenomen als onderdeel van MariaDB Enterprise Server. Het wordt nu Xpand genoemd en breidt MariaDB Enterprise Server uit met gedistribueerde gegevens- en transactieverwerking, en transformeert het in een gedistribueerde SQL-database die kan worden geschaald naar miljoenen transacties per seconde met een gedeelde-niets-architectuur. Xpand is echter niet alles of niets, aangezien DBA's ervoor kunnen kiezen om zowel gerepliceerde als gedistribueerde tabellen te gebruiken. Xpand is goed voor complexe query's en analyseverwerking, omdat het parallelle query's kan uitvoeren op de beschikbare knooppunten binnen het cluster.

Kortom, Xpand is een niets-gedeelde architectuur en ontworpen als een scale-out SQL-database, vanaf de grond opgebouwd die oorspronkelijk kon draaien op standaardhardware met automatische gegevensherdistributie (u hoeft dus nooit te sharden ). Het heeft ingebouwde fouttolerantie, allemaal toegankelijk via een eenvoudige SQL-interface en ondersteuning voor bedrijfskritieke MySQL-functies (replicatie, triggers, opgeslagen routines, enz.). De licentie is alleen beschikbaar als propriëtair, dus als u van dit product wilt profiteren, moet u eerst contact opnemen met MariaDB Sales om een ​​geldige licentie te verkrijgen.

Wanneer MariaDB Xpand gebruiken

Xpand is ontworpen om grote hoeveelheden gegevens te verwerken en stelt u in staat uw database efficiënter te schalen. Dit betekent dat het uitschalen van uw cluster eenvoudig en automatisch door Xpand zelf wordt gedaan. Sinds de release van MariaDB Platform X5 maakt Xpand al deel uit van het platform dat aan de klanten wordt aangeboden als onderdeel van de gedistribueerde SQL-oplossing. De Xpand Smart Engine stelt klanten in staat om verder te schalen dan de InnoDB Storage Engine's sweet spot van high-performance gemengde lees-/schrijfworkloads op een enkel knooppunt met de optie om schaal toe te voegen via replicatie en gebruik te maken van een zeer beschikbare fouttolerante gedistribueerde oplossing voor grote- werklast schalen.

Met Xpand heeft u de flexibiliteit om per tabel te schalen. Begin met het gebruik van Xpand voor slechts een enkele tabel en breid het gebruik uit naarmate uw behoeften verder groeien dan wat een enkel knooppunt aankan. Verhoog het gebruik van gedistribueerde SQL naarmate uw onderneming meer nodig heeft dan replicatie of clustering. Wanneer gegevens- of queryvolumes zodanig toenemen dat de prestaties afnemen, kunt u Xpand gebruiken om tabellen of de hele database te distribueren voor verbeterde doorvoer en gelijktijdigheid. Xpand heeft een ingebouwde hoge beschikbaarheid en elasticiteit, zodat nodes transparant kunnen worden toegevoegd of verwijderd om uit te schalen.

Net als bij MariaDB ColumnStore, de slimme kolommotor, zijn cross-engine JOIN's mogelijk (en aangemoedigd) tussen gerepliceerde en gedistribueerde tabellen. In tegenstelling tot andere gedistribueerde SQL-implementaties die de hele database distribueren en daarom aanzienlijke overhead hebben op kleinere tabellen, maakt MariaDB het gecombineerde gebruik van InnoDB mogelijk voor gerepliceerde kleine datasets en massale gedistribueerde datasets via Xpand.

Helaas is er geen formele documentatie over de status van verandering van ClustrixDB naar MariaDB Xpand, dus misschien wilt u nog steeds vertrouwen op https://docs.clustrix.com/ voor documentatie over hoe ClustrixDB werkt. Het is ook bekend dat GTID niet wordt ondersteund door ClustrixDB, hoewel dit mogelijk is veranderd sinds de release van MariaDB 10.5.

Hoe werkt MariaDB Xpand?

Voor implementatie met MariaDB Xpand moet u MariaDB Enterprise Servers hebben met de Xpand-plug-in geïnstalleerd, en daarna de Xpand-knooppunten. Het is op dezelfde manier als hoe u MaxScale en MariaDB Server-replicatie-setup instelt voor hoge beschikbaarheid en u kunt MaxScale bovenaan plaatsen om verbindingen te beheren en transparante failover tussen de frontend Enterprise Server-instanties met gerepliceerde kleinere gegevenssets in InnoDB. Het wordt ook aanbevolen dat voor de beste prestatie-ervaring met Xpand moeten de front-end servers en nodes op aparte fysieke servers draaien. Bekijk de MariaDB Xpand-topologie-architectuur hieronder van MariaDB over hoe dit werkt:

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

Om hierboven verder uit te leggen, splitst Xpand een aantal segmenten voor elke tabel die met Xpand is gebouwd. Elk segment wordt opgeslagen op een primair knooppunt en vervolgens gerepliceerd naar een of meer andere knooppunten om fouttolerantie te garanderen. Elk Xpand-knooppunt kan zowel lezen als schrijven uitvoeren. En elk knooppunt heeft een kaart van de gegevensdistributie.

Voor leesbewerkingen wordt het grootste deel van de query naar Xpand gepusht, waar de query wordt geëvalueerd en relevante delen van de query vervolgens naar de juiste Xpand-knooppunten worden verzonden. MariaDB Enterprise Server verzamelt de retourgegevens van de Xpand-knooppunten om een ​​resultatenset te genereren.

Voor schrijfbewerkingen gebruikt MariaDB Xpand een component genaamd "rebalancer" om gegevens automatisch en transparant te verdelen over de beschikbare Xpand-knooppunten.

MariaDB Xpand als een gedistribueerde SQL

Elk Xpand-knooppunt kan zowel lezen als schrijven uitvoeren. Wanneer een query wordt ontvangen door MariaDB Enterprise Server, wordt deze geëvalueerd door een query-optimizer en worden delen van de query naar de relevante Xpand-knooppunten verzonden. De resultaten worden verzameld en een enkele resultaatset wordt teruggestuurd naar de klant.

MariaDB Xpand maakt gebruik van een gedeelde-niets-architectuur; een enkel knooppunt behandelt elk verzoek en geheugen en opslag worden niet gedeeld.

MariaDB Xpand HA en fouttolerantie

MariaDB Xpand is van nature fouttolerant. Xpand onderhoudt twee replica's van alle gegevens met behulp van een herbalanceringsproces dat op de achtergrond wordt uitgevoerd. Xpand kan last hebben van een enkele node of zonestoring zonder gegevensverlies.

Bij uitval van een knooppunt worden de gegevens opnieuw in evenwicht gebracht van de resterende knooppunten, waardoor de gegevensbescherming automatisch wordt hersteld zonder tussenkomst. Bij een zonestoring voert de herbalancer dezelfde bewerking uit tussen knooppunten en resterende zones.

Als het defecte knooppunt wordt vervangen, verdeelt de rebalancer de gegevens opnieuw, waardoor MariaDB Xpand wordt hersteld naar het beoogde aantal knooppunten.

Horizontale scale-out met MariaDB Xpand

MariaDB Xpand is flexibel van opzet. Als de belasting op MariaDB Enterprise Server toeneemt, kunt u extra servers aan uw implementatie toevoegen, waarbij u de taakverdeling tussen hen kunt verdelen met MariaDB MaxScale. Elke server kan verbinding maken met de Xpand-knooppunten om toegang te krijgen tot gegevens die zijn opgeslagen op Xpand-tabellen.

Als de belasting op MariaDB Xpand toeneemt, kun je uitschalen door nieuwe knooppunten toe te voegen. Wanneer u een Xpand-knooppunt aan de implementatie toevoegt, verdeelt het herbalanceringsproces de gegevens van de bestaande knooppunten opnieuw. Eenmaal voltooid, kan het Xpand-knooppunt nu zowel lees- als schrijfbewerkingen van MariaDB Enterprise Servers afhandelen.

Als de belasting van MariaDB Xpand afneemt, kun je verkleinen door nodes te verwijderen. Wanneer u een Xpand-knooppunt uit de implementatie verwijdert, verdeelt het herbalanceringsproces de gegevens opnieuw over de resterende knooppunten, waardoor fouttolerantie wordt gegarandeerd.

Wat maakt MariaDB Xpand schaalbaar?

Er zijn geen bottlenecks en geen single points of failure. Alle processors worden ingeschakeld ter ondersteuning van de verwerking van query's. Query's worden geparalleliseerd en verdeeld over het cluster naar de relevante gegevens. Nieuwe nodes worden automatisch herkend en opgenomen in het cluster. Workloads en gegevens worden automatisch verdeeld over alle knooppunten in het cluster. Clusterbrede SQL relationele calculus en ACID-eigenschappen elimineren de complexiteit van meerdere knooppunten bij de ontwikkeling en het beheer van toepassingen met meerdere lagen. De complexiteit die gewoonlijk nodig is om bestaande db-modellen te schalen om grote hoeveelheden gegevens te verwerken, wordt geëlimineerd. En als uw database groeit, hoeft u alleen maar knooppunten toe te voegen.

Er zijn verschillende dingen die de schaalbaarheid en prestaties beïnvloeden:

  • Gedeelde-niets-architectuur, die potentiële knelpunten elimineert. Vergelijk dit met architecturen met gedeelde schijven/gedeelde cache die een bottleneck vormen, niet schaalbaar zijn en moeilijk te beheren zijn.
  • Parallisatie van query's, die worden gedistribueerd naar de node(s) met de relevante gegevens. Resultaten worden zo dicht mogelijk bij de gegevens gemaakt, vervolgens teruggestuurd naar het aanvragende knooppunt voor consolidatie en teruggestuurd naar de klant.

Dit is heel anders dan andere systemen, die routinematig grote hoeveelheden gegevens verplaatsen naar het knooppunt dat de query verwerkt, en vervolgens alle gegevens verwijderen die niet bij de query passen (meestal veel gegevens) . Door alleen gekwalificeerde gegevens over het netwerk naar het verzoekende knooppunt te verplaatsen, vermindert Xpand het knelpunt in het netwerkverkeer aanzienlijk. Bovendien nemen meer processors deel aan het gegevensselectieproces. Door gegevens op meerdere knooppunten parallel te selecteren, produceert het systeem sneller resultaten dan wanneer alle gegevens werden geselecteerd door één knooppunt, dat eerst alle benodigde gegevens van de andere moet verzamelen knooppunten in het systeem.

Omdat elk knooppunt zich op een bepaalde partitie richt en werkitems naar andere knooppunten verzendt in plaats van onbewerkte gegevens van andere knooppunten op te vragen, bevat de cache van elk knooppunt meer gegevens van dat knooppunt en minder overtollige gegevens van andere knooppunten. Dit betekent dat de hitrates van de cache veel hoger zullen zijn, waardoor de noodzaak voor langzame schijftoegang aanzienlijk wordt verminderd.

MariaDB Xpand implementeren

Er zijn twee afzonderlijke MariaDB Xpand-implementaties om MariaDB Xpand te gaan gebruiken. Xpand-implementaties bestaan ​​uit MariaDB Enterprise Server-instanties, de front-endservers, waarop de Xpand-plug-in is geïnstalleerd, waarna de Xpand-knooppunten naast deze front-endservers draaien. Voor de beste prestaties kunnen de Enterprise Server en de Xpand-node op aparte fysieke servers worden geïnstalleerd.

  1. Je moet de MariaDB Xpand Node instellen. Xpand-knooppunten zijn geconfigureerd in een implementatie om de opslagback-end voor MariaDB Enterprise Servers te bieden met de Xpand-opslagengine-plug-in. Servers slaan gegevens voor Xpand-tabellen op Xpand-knooppunten op in plaats van op het lokale bestandssysteem. Voor het installeren van de Xpand Node is een licentie vereist, een JSON-object, en u kunt deze alleen verkrijgen door contact op te nemen met MariaDB Sales. Het installatieproces is niet zo snel als slechts een enkele opdracht of klik, dus we raden u aan naar hun installatiehandleiding voor de Xpand Node te gaan.
  2. Implementeer een front-endserver. Zoals ik hier heb opgemerkt over de wijzigingen die ze hebben aangebracht, lijkt het erop dat de meest aanbevolen manier om Xpand te gebruiken het gebruik van MariaDB Enterprise Server 10.5 is. De Xpand 

MariaDB Xpand-hardwarecompatibiliteit

Als je benieuwd bent naar de hardwarecompatibiliteit, kan het MariaDB Platform in verschillende omgevingen draaien. Zolang je MariaDB-servers kunnen draaien of worden gehost in de omgevingen die je momenteel gebruikt, zolang je de Xpand Nodes naast de MariaDB-servers kunt instellen en Xpand-plug-ins hebt geïnstalleerd, dan zal dit zeker werken. Uit hun documentatie vindt u de lijst met fysieke en cloudomgevingen hieronder:

  • Op locatie (op locatie)
  • Colloated (colo)
  • Privécloud
  • Publieke cloud
  • Gehybridiseerd

Voor de hardware-architectuur is het vermeldenswaard dat vanaf MariaDB Enterprise Server 10.4.10-4 (2019-11-18), MariaDB Enterprise Server alleen x86_64 hardware-architectuurplatforms ondersteunt.

Conclusie

MariaDB Xpand vereenvoudigt efficiëntie en uitbreidbaarheid op een zeer handige manier. Het meest aantrekkelijke aspect van dit product is dat je ook de standaard SQL-functies van MariaDB kunt gebruiken. Het kan worden ingebed via uw bestaande MariaDB-omgeving, die kan profiteren van de functies en schaalbaarheid. Hoewel dat aanlokkelijk kan zijn, vereist het speciale licenties en hoge kosten om dit product te kunnen gebruiken. Als het een doel dient voor uw bedrijfstoepassing, dan is deze MariaDB Xpand misschien het proberen waard.


  1. ListView-besturing met Ms-Access TreeView

  2. Loop over array-dimensie in plpgsql

  3. De onderliggende kolommen van een weergave verkrijgen op basis van de resultatenset

  4. Inleiding tot speciale zoekopdrachten