MariaDB Xpand è un nuovo prodotto di MariaDB. In precedenza era noto come ClustrixDB, acquisito nel settembre 2018 da MariaDB Corporation.
ClustrixDB non è più disponibile come entità separata, ma è ora incluso come parte di MariaDB Enterprise Server. Ora chiamato Xpand, estende MariaDB Enterprise Server con dati distribuiti e elaborazione delle transazioni, trasformandolo in un database SQL distribuito in grado di scalare a milioni di transazioni al secondo con un'architettura shared-nothing. Tuttavia, Xpand non è un tutto o niente, poiché i DBA possono scegliere di utilizzare sia tabelle replicate che distribuite. Xpand è adatto per query complesse ed elaborazione di analisi in quanto può eseguire query parallele sui nodi disponibili all'interno del cluster.
Fondamentalmente, Xpand è un'architettura shared-nothing e progettata come un database SQL con scalabilità orizzontale, costruito da zero che originariamente poteva essere eseguito su hardware di base con ridistribuzione automatica dei dati (quindi non è mai necessario shard ). Ha una tolleranza agli errori incorporata, il tutto accessibile da una semplice interfaccia SQL e supporto per funzionalità MySQL critiche per l'azienda (replica, trigger, routine memorizzate, ecc.). La sua licenza è disponibile solo come proprietaria, quindi se vuoi sfruttare questo prodotto, devi prima contattare le vendite di MariaDB per acquisire una licenza valida.
Quando utilizzare MariaDB Xpand
Xpand è progettato per gestire grandi volumi di dati e ciò consente di ridimensionare il database in modo più efficiente. Ciò significa che la scalabilità orizzontale del tuo cluster viene eseguita facilmente e automaticamente da Xpand stesso. Dal rilascio di MariaDB Platform X5, Xpand fa già parte della piattaforma fornita ai clienti come parte della soluzione SQL distribuita. Il motore intelligente Xpand consente ai clienti di scalare oltre il punto debole del motore di archiviazione InnoDB di carichi di lavoro misti di lettura/scrittura ad alte prestazioni su un singolo nodo con la possibilità di aggiungere scalabilità tramite replica e impiegando una soluzione distribuita a elevata disponibilità e tollerante ai guasti per grandi scalare i carichi di lavoro.
Con Xpand, hai la flessibilità di scalare in base alla tabella. Inizia utilizzando Xpand solo per una singola tabella ed espandi l'utilizzo man mano che le tue esigenze crescono oltre ciò che un singolo nodo può gestire. Aumenta l'uso di SQL distribuito man mano che le esigenze della tua azienda crescono oltre la replica o il clustering. Quando i volumi di dati o query aumentano al punto da ridurre le prestazioni, puoi utilizzare Xpand per distribuire le tabelle o l'intero database per migliorare la velocità effettiva e la concorrenza. Xpand ha un'elevata disponibilità ed elasticità integrate, quindi i nodi possono essere aggiunti o rimossi in modo trasparente secondo necessità per la scalabilità orizzontale.
Proprio come con MariaDB ColumnStore, il motore intelligente colonnare, le JOIN cross engine sono possibili (e incoraggiate) tra tabelle replicate e distribuite. A differenza di altre implementazioni SQL distribuite che distribuiscono l'intero database e hanno, quindi, un sovraccarico significativo su tabelle più piccole, MariaDB consente l'uso combinato di InnoDB per piccoli set di dati replicati e enormi set di dati distribuiti tramite Xpand.
Purtroppo non esiste una documentazione formale relativa allo stato del cambiamento da ClustrixDB a MariaDB Xpand, quindi potresti comunque fare affidamento su https://docs.clustrix.com/ per la documentazione su come funziona ClustrixDB. È anche noto che GTID non è supportato da ClustrixDB, anche se questo potrebbe essere cambiato dal rilascio di MariaDB 10.5.
Come funziona MariaDB Xpand?
La distribuzione utilizzando MariaDB Xpand richiede che tu abbia MariaDB Enterprise Server con il plug-in Xpand installato, quindi i nodi Xpand in esecuzione insieme. È analogamente a come si imposta la configurazione della replica di MaxScale e MariaDB Server per l'alta disponibilità e si può posizionare MaxScale in primo piano per gestire le connessioni e eseguire il failover trasparente tra le istanze di Enterprise Server front-end con set di dati più piccoli replicati in InnoDB. Si consiglia inoltre di farlo per prestazioni ottimali con Xpand, i server e i nodi front-end devono essere eseguiti su server fisici separati. Vedi l'architettura della topologia di MariaDB Xpand di seguito da MariaDB su come funziona:
https://mariadb.com/resources/blog/mariadb-adds-xpand-for-distributed-sql /Per spiegare ulteriormente sopra, Xpand divide un numero di sezioni per ogni tabella che viene creata usando Xpand. Ogni sezione viene archiviata su un nodo primario e quindi replicata su uno o più altri nodi per garantire la tolleranza agli errori. Ogni nodo Xpand può eseguire sia letture che scritture. E ogni nodo ha una mappa della distribuzione dei dati.
Per le operazioni di lettura, la maggior parte della query viene inviata a Xpand dove viene valutata e parti rilevanti della query vengono quindi inviate ai nodi Xpand appropriati. MariaDB Enterprise Server raccoglie i dati di ritorno dai nodi Xpand per generare un set di risultati.
Per le operazioni di scrittura, MariaDB Xpand utilizza un componente chiamato "rebalancer" per distribuire automaticamente e in modo trasparente i dati tra i nodi Xpand disponibili.
MariaDB Xpand come SQL distribuito
Ogni nodo Xpand è in grado di eseguire sia letture che scritture. Quando una query viene ricevuta da MariaDB Enterprise Server, viene valutata da un Query Optimizer e parti della query vengono inviate ai nodi Xpand pertinenti. I risultati vengono raccolti e un unico set di risultati restituito al client.
MariaDB Xpand sfrutta un'architettura shared-nothing; un singolo nodo gestisce ogni richiesta e la memoria e l'archiviazione non sono condivise.
MariaDB Xpand HA e tolleranza ai guasti
MariaDB Xpand è tollerante ai guasti in base alla progettazione. Xpand mantiene due repliche di tutti i dati utilizzando un processo di ribilanciamento eseguito in background. Xpand può subire un errore di un singolo nodo o zona senza perdita di dati.
In caso di guasto del nodo, i dati vengono ribilanciati dai nodi rimanenti, ripristinando automaticamente la protezione dei dati senza alcun intervento. In caso di guasto di una zona, il ribilanciatore esegue la stessa operazione tra i nodi e le zone rimanenti.
Quando il nodo guasto viene sostituito, il ribilanciatore ridistribuisce i dati, ripristinando MariaDB Xpand al conteggio dei nodi previsto.
Ridimensionamento orizzontale con MariaDB Xpand
MariaDB Xpand è flessibile in base alla progettazione. Se il carico su MariaDB Enterprise Server aumenta, puoi aggiungere server aggiuntivi alla tua distribuzione, bilanciando il carico tra di loro utilizzando MariaDB MaxScale. Ogni Server può connettersi ai nodi Xpand per accedere ai dati archiviati sulle tabelle Xpand.
Se il carico su MariaDB Xpand aumenta, puoi aumentare la scalabilità aggiungendo nuovi nodi. Quando si aggiunge un nodo Xpand alla distribuzione, il processo di ribilanciamento ridistribuisce i dati dai nodi esistenti. Una volta completato, il nodo Xpand può ora gestire sia le operazioni di lettura che di scrittura dai server MariaDB Enterprise.
Se il carico su MariaDB Xpand diminuisce, puoi ridimensionare rimuovendo i nodi. Quando rimuovi un nodo Xpand dalla distribuzione, il processo di ribilanciamento ridistribuisce i dati ai nodi rimanenti, garantendo la tolleranza agli errori.
Cosa rende MariaDB Xpand scalabile?
Non ci sono colli di bottiglia né singoli punti di errore. Tutti i processori sono arruolati a supporto dell'elaborazione delle query. Le query sono parallelizzate e distribuite nel cluster ai dati rilevanti. I nuovi nodi vengono automaticamente riconosciuti e incorporati nel cluster. I carichi di lavoro e i dati vengono bilanciati automaticamente su tutti i nodi del cluster. Il calcolo relazionale SQL a livello di cluster e le proprietà ACID eliminano la complessità multinodo dallo sviluppo e dalla gestione di applicazioni multilivello. La complessità comunemente richiesta per ridimensionare i modelli db esistenti per gestire grandi volumi di dati viene eliminata. E man mano che il tuo database cresce, aggiungi i nodi.
Ci sono diverse cose che influenzano la scalabilità e le prestazioni:
- Architettura non condivisa, che elimina potenziali colli di bottiglia. Confrontalo con le architetture a disco condiviso/cache condivisa che presentano colli di bottiglia, non sono scalabili e sono difficili da gestire.
- Parallelizzazione delle query, che vengono distribuite ai nodi con i dati rilevanti. I risultati vengono creati il più vicino possibile ai dati, quindi reinstradati al nodo richiedente per il consolidamento e restituiti al client.
Questo è molto diverso dagli altri sistemi, che spostano regolarmente grandi quantità di dati nel nodo che sta elaborando la query, quindi eliminano tutti i dati che non si adattano alla query (in genere molti dati) . Spostando solo dati qualificati attraverso la rete al nodo richiedente, Xpand riduce significativamente il collo di bottiglia del traffico di rete. Inoltre, più processori partecipano al processo di selezione dei dati. Selezionando i dati su più nodi in parallelo, il sistema produce risultati più rapidamente che se tutti i dati fossero selezionati da un singolo nodo, che prima deve raccogliere tutti i dati richiesti dall'altro nodi nel sistema.
Poiché ogni nodo si concentra su una particolare partizione e invia elementi di lavoro ad altri nodi anziché richiedere dati grezzi da altri nodi, la cache di ciascun nodo contiene più dati di quel nodo e meno dati ridondanti da altri nodi. Ciò significa che le percentuali di accesso alla cache saranno molto più elevate, riducendo notevolmente la necessità di accessi al disco lenti.
Distribuzione di MariaDB Xpand
Ci sono due distribuzioni separate di MariaDB Xpand per iniziare a usare MariaDB Xpand. Le distribuzioni di Xpand consistono in istanze di MariaDB Enterprise Server, denominate server front-end, su cui è installato il plug-in Xpand, quindi i nodi Xpand vengono eseguiti insieme a questi server front-end. Per ottenere le migliori prestazioni, l'Enterprise Server e il nodo Xpand possono essere installati su server fisici separati.
- È necessario configurare MariaDB Xpand Node. I nodi Xpand sono configurati in una distribuzione per fornire il back-end di archiviazione per MariaDB Enterprise Server con il plug-in del motore di archiviazione Xpand. I server archiviano i dati per le tabelle Xpand sui nodi Xpand anziché nel file system locale. L'installazione di Xpand Node richiede una licenza, che è un oggetto JSON, e puoi acquisirla solo contattando MariaDB Sales. Il processo di installazione non è veloce come un semplice comando o clic, quindi ti consigliamo di consultare la loro guida all'installazione per Xpand Node.
- Distribuisci un server front-end. Come ho notato qui sulle modifiche che hanno apportato, sembra che il modo più consigliato per utilizzare Xpand sia l'utilizzo di MariaDB Enterprise Server 10.5. L'Xpand
Compatibilità hardware di MariaDB Xp e
Se sei curioso della sua compatibilità hardware, la piattaforma MariaDB può essere eseguita in una varietà di ambienti. Finché i tuoi server MariaDB possono essere eseguiti o ospitati negli ambienti che stai attualmente utilizzando, purché tu sia in grado di configurare i nodi Xpand insieme ai server MariaDB e hai installato i plug-in Xpand, questo funzionerà sicuramente. Dalla loro documentazione, l'elenco degli ambienti fisici e cloud è elencato di seguito:
- On-premise (on-premise)
- Collocato (colo)
- Cloud privato
- Cloud pubblico
- Ibrida
Per l'architettura hardware, vale la pena notare che a partire da MariaDB Enterprise Server 10.4.10-4 (2019-11-18), MariaDB Enterprise Server supporta solo piattaforme di architettura hardware x86_64.
Conclusione
MariaDB Xpand semplifica l'efficienza e l'espandibilità in modo molto conveniente. L'aspetto più interessante di questo prodotto è che puoi utilizzare anche le funzioni SQL standard di MariaDB. Può essere incorporato nel tuo ambiente MariaDB esistente, che può trarre vantaggio dalle sue funzionalità e scalabilità. Sebbene possa essere allettante, richiede licenze speciali e commissioni elevate per poter sfruttare questo prodotto. Se serve a uno scopo per la tua applicazione aziendale, vale la pena provare questo MariaDB Xpand.