MariaDB Xpand je nový produkt od MariaDB. Dříve byla známá jako ClustrixDB, kterou v září 2018 získala MariaDB Corporation.
ClustrixDB již není k dispozici jako samostatná entita, ale je nyní zahrnuta jako součást MariaDB Enterprise Server. Nyní se nazývá Xpand a rozšiřuje MariaDB Enterprise Server o distribuované zpracování dat a transakcí a transformuje jej na distribuovanou databázi SQL schopnou škálování na miliony transakcí za sekundu s architekturou sdíleného-nic. Xpand však není vše nebo nic, protože správci databází se mohou rozhodnout používat replikované i distribuované tabulky. Xpand je dobrý pro složité dotazy a analytické zpracování, protože může provádět paralelní dotazy napříč dostupnými uzly v clusteru.
Xpand je v podstatě sdílená architektura navržená jako škálovatelná SQL databáze, postavená od základů, která původně mohla běžet na komoditním hardwaru s automatickou redistribucí dat (takže nikdy nebudete muset skartovat ). Má vestavěnou odolnost proti chybám, vše přístupné pomocí jednoduchého rozhraní SQL a podporu kritických obchodních funkcí MySQL (replikace, spouštěče, uložené rutiny atd.). Jeho licence je k dispozici pouze jako proprietární, takže pokud chcete využít výhod tohoto produktu, musíte nejprve kontaktovat prodej MariaDB, abyste získali platnou licenci.
Kdy použít MariaDB Xpand
Xpand je navržen tak, aby zpracovával velké objemy dat, což vám umožní efektivněji škálovat vaši databázi. To znamená, že škálování vašeho clusteru se provádí snadno a automaticky samotným Xpandem. Od vydání MariaDB Platform X5 je Xpand již součástí platformy poskytované zákazníkům jako součást distribuovaného řešení SQL. Inteligentní engine Xpand umožňuje zákazníkům škálovat nad rámec sladkého místa úložného enginu InnoDB s vysoce výkonnými smíšenými pracovními zátěžemi pro čtení/zápis na jediném uzlu s možností přidání škálování prostřednictvím replikace a použitím vysoce dostupného distribuovaného řešení odolného proti chybám pro velké škálovat pracovní zátěž.
S Xpand máte možnost škálovat na základě tabulky. Začněte tím, že budete používat Xpand pouze pro jednu tabulku a rozšiřte využití, až vaše potřeby porostou nad rámec toho, co zvládne jediný uzel. Zvyšte využití distribuovaného SQL s tím, jak vaše podnikové potřeby porostou za hranice replikace nebo shlukování. Když objemy dat nebo dotazů vzrostou do bodu snížení výkonu, můžete použít Xpand k distribuci tabulek nebo celé databáze pro lepší propustnost a souběžnost. Xpand má vestavěnou vysokou dostupnost a elasticitu, takže uzly lze transparentně přidávat nebo odstraňovat podle potřeby pro zmenšení.
Stejně jako u MariaDB ColumnStore, sloupcového inteligentního enginu, jsou mezi replikovanými a distribuovanými tabulkami možná (a podporována) křížová spojení JOINů. Na rozdíl od jiných implementací distribuovaného SQL, které distribuují celou databázi, a mají tedy značnou režii na menších tabulkách, MariaDB umožňuje kombinované použití InnoDB pro replikované malé datové sady a masivní distribuované datové sady prostřednictvím Xpand.
Bohužel neexistuje žádná formální dokumentace týkající se stavu změny z ClustrixDB na MariaDB Xpand, takže se možná budete chtít spolehnout na https://docs.clustrix.com/, kde najdete dokumentaci o tom, jak ClustrixDB funguje. Je také známo, že ClustrixDB nepodporuje GTID, i když se to mohlo od vydání MariaDB 10.5 změnit.
Jak MariaDB Xpand funguje?
Nasazení pomocí MariaDB Xpand vyžaduje, abyste měli servery MariaDB Enterprise Servers s nainstalovaným zásuvným modulem Xpand a poté vedle nich běžely uzly Xpand. Je to podobné, jako když nastavíte nastavení replikace serveru MaxScale a MariaDB pro vysokou dostupnost a můžete umístit MaxScale navrch pro správu připojení a transparentní převzetí služeb při selhání mezi instancemi frontend Enterprise Server s replikovanými menšími datovými sadami v InnoDB. pro nejlepší výkon s Xpand musí být front-end servery a uzly provozovány na samostatných fyzických serverech. Podívejte se na architekturu topologie MariaDB Xpand níže z MariaDB, jak to funguje:
https://mariadb.com/resources/blog/mariadb-adds-xpand-for-distributed-sql /Pro vysvětlení výše, Xpand rozdělí určitý počet řezů pro každou tabulku, která je vytvořena pomocí Xpand. Každý řez je uložen v primárním uzlu a poté replikován do jednoho nebo více dalších uzlů, aby byla zajištěna odolnost proti chybám. Každý uzel Xpand může provádět čtení i zápis. A každý uzel má mapu distribuce dat.
U operací čtení je hlavní část dotazu posunuta dolů do Xpand, kde je dotaz vyhodnocen a relevantní části dotazu jsou poté odeslány do příslušných uzlů Xpand. MariaDB Enterprise Server shromažďuje návratová data z uzlů Xpand a vytváří sadu výsledků.
Pro operace zápisu používá MariaDB Xpand komponentu zvanou „rebalancer“ k automatické a transparentní distribuci dat mezi dostupné uzly Xpand.
MariaDB Xpand jako distribuovaný SQL
Každý uzel Xpand je schopen provádět čtení i zápis. Když MariaDB Enterprise Server přijme dotaz, je vyhodnocen optimalizátorem dotazů a části dotazu jsou odeslány do příslušných uzlů Xpand. Výsledky se shromáždí a klientovi se vrátí jediná sada výsledků.
MariaDB Xpand využívá architekturu shared-nothing; každý požadavek zpracovává jeden uzel a paměť a úložiště nejsou sdíleny.
MariaDB Xpand HA a odolnost proti chybám
MariaDB Xpand je designově odolný vůči chybám. Xpand udržuje dvě repliky všech dat pomocí procesu rebalancer, který běží na pozadí. Xpand může trpět selháním jediného uzlu nebo zóny bez ztráty dat.
Při selhání uzlu jsou data znovu vyvážena ze zbývajících uzlů, čímž se automaticky obnoví ochrana dat bez zásahu. Při selhání zóny provede rebalancer stejnou operaci mezi uzly a zbývajícími zónami.
Když je poškozený uzel nahrazen, rebalancer redistribuuje data a obnoví MariaDB Xpand na zamýšlený počet uzlů.
Horizontální měřítko s MariaDB Xpand
MariaDB Xpand je flexibilní. Pokud se zatížení serveru MariaDB Enterprise Server zvýší, můžete do svého nasazení přidat další servery a vyvažovat mezi nimi zatížení pomocí MariaDB MaxScale. Každý server se může připojit k uzlům Xpand pro přístup k datům uloženým v tabulkách Xpand.
Pokud se zatížení MariaDB Xpand zvýší, můžete jej škálovat přidáním nových uzlů. Když do nasazení přidáte uzel Xpand, proces opětovného vyvažování přerozdělí data ze stávajících uzlů. Po dokončení může uzel Xpand nyní zpracovávat operace čtení i zápisu ze serverů MariaDB Enterprise Servers.
Pokud se zatížení MariaDB Xpand sníží, můžete jej zmenšit odstraněním uzlů. Když odeberete uzel Xpand z nasazení, proces opětovného vyvažování přerozdělí data do zbývajících uzlů a zajistí odolnost proti chybám.
Co dělá MariaDB Xpand škálovatelným?
Neexistují žádná úzká hrdla a žádné jednotlivé body selhání. Všichni zpracovatelé jsou zapojeni do podpory zpracování dotazů. Dotazy jsou paralelizovány a distribuovány napříč clusterem na relevantní data. Nové uzly jsou automaticky rozpoznány a začleněny do clusteru. Pracovní zátěž a data jsou automaticky vyvážena napříč všemi uzly v clusteru. Relační kalkul SQL pro celý cluster a vlastnosti ACID eliminují víceuzlovou složitost z vývoje a správy vícevrstvých aplikací. Složitost běžně vyžadovaná pro škálování existujících db modelů pro zpracování velkých objemů dat je eliminována. A jak vaše databáze roste, stačí přidat uzly.
Existuje několik věcí, které ovlivňují škálovatelnost a výkon:
- Architektura Shared-nothing, která eliminuje potenciální úzká hrdla. Porovnejte to s architekturami sdílených disků / sdílených mezipamětí, které jsou úzké, neškálovatelné a obtížně se s nimi manipuluje.
- Paralelizace dotazů, které jsou distribuovány do uzlů s relevantními daty. Výsledky jsou vytvářeny co nejblíže datům, poté směrovány zpět do žádajícího uzlu ke konsolidaci a vráceny klientovi.
To se velmi liší od jiných systémů, které běžně přesouvají velké množství dat do uzlu, který zpracovává dotaz, a poté eliminují všechna data, která se do dotazu nehodí (obvykle mnoho dat) . Pouze přesouváním kvalifikovaných dat přes síť do žádajícího uzlu Xpand výrazně snižuje úzká hrdla síťového provozu. Procesu výběru dat se navíc účastní více procesorů. Paralelním výběrem dat na více uzlech systém produkuje výsledky rychleji, než kdyby všechna data vybíral jediný uzel, který musí nejprve shromáždit všechna požadovaná data od druhého uzlu. uzly v systému.
Protože se každý uzel zaměřuje na konkrétní oddíl a odesílá pracovní položky do jiných uzlů, místo aby požadoval nezpracovaná data z jiných uzlů, obsahuje mezipaměť každého uzlu více dat tohoto uzlu a méně nadbytečných dat z jiných uzlů. To znamená, že četnost přístupů do mezipaměti bude mnohem vyšší, což výrazně sníží potřebu pomalého přístupu na disk.
Nasazení MariaDB Xpand
Existují dvě samostatná nasazení MariaDB Xpand, abyste mohli začít používat MariaDB Xpand. Nasazení Xpand se skládají z instancí MariaDB Enterprise Server, nazývaných front-end servery, s nainstalovaným zásuvným modulem Xpand, pak Xpand Nodes běží společně s těmito front-end servery. Pro nejlepší výkon lze Enterprise Server a uzel Xpand nainstalovat na samostatné fyzické servery.
- Musíte nastavit MariaDB Xpand Node. Uzly Xpand jsou v nasazení nakonfigurovány tak, aby poskytovaly back-end úložiště pro servery MariaDB Enterprise Server s pluginem Xpand Storage Engine. Servery ukládají data pro tabulky Xpand spíše v uzlech Xpand než v místním systému souborů. Instalace Xpand Node vyžaduje licenci, což je objekt JSON, a můžete ji získat pouze kontaktováním MariaDB Sales. Proces instalace není tak rychlý jako jediný příkaz nebo kliknutí, takže vám doporučujeme přejít na jejich instalační příručku pro uzel Xpand.
- Nasaďte front-end server. Jak jsem si zde všiml nad změnami, které provedli, vypadá to, že nejvíce doporučeným způsobem použití Xpand je použití MariaDB Enterprise Server 10.5. Xpand
Kompatibilita hardwaru MariaDB Xpand
Pokud vás zajímá její hardwarová kompatibilita, platforma MariaDB může běžet v různých prostředích. Pokud vaše servery MariaDB mohou běžet nebo hostovat v prostředích, která aktuálně používáte, pokud jste schopni nastavit uzly Xpand spolu se servery MariaDB a mít nainstalované pluginy Xpand, pak to bude určitě fungovat. Z jejich dokumentace je seznam fyzických a cloudových prostředí uveden níže:
- On-premises (on-prem)
- Cololocated (colo)
- Soukromý cloud
- Veřejný cloud
- Hybridizované
Pokud jde o hardwarovou architekturu, stojí za zmínku, že od MariaDB Enterprise Server 10.4.10-4 (2019-11-18) MariaDB Enterprise Server podporuje pouze platformy hardwarové architektury x86_64.
Závěr
MariaDB Xpand zjednodušuje efektivitu a rozšiřitelnost velmi pohodlným způsobem. Nejatraktivnějším aspektem tohoto produktu je, že můžete použít i standardní funkce SQL MariaDB. Lze jej zabudovat do vašeho stávajícího prostředí MariaDB, které může využít jeho funkcí a škálovatelnosti. Ačkoli to může být lákavé, vyžaduje to speciální licencování a vysoké poplatky, abyste mohli tento produkt využít. Pokud to slouží účelu vaší podnikové aplikace, pak by tento MariaDB Xpand mohl stát za vyzkoušení.