Distributed SQL with MariaDB Xpand
MariaDB Xpand provides distributed SQL, high availability, fault tolerance, write scaling, and horizontal scale-out for transactional workloads. MariaDB Xpand can integrate with the Xpand storage engine in MariaDB Enterprise Server 10.5.
Xpand provides distributed SQL.
Xpand integrates with the Xpand storage engine in MariaDB Enterprise Server 10.5:
Xpand supports transactional workloads
Xpand is strongly consistent.
Xpand leverages a shared-nothing architecture to efficiently execute distributed SQL.
Xpand provides high availability (HA) and fault tolerance by design.
Xpand scales out horizontally for both reads and writes.
Want to use MariaDB Xpand immediately? Get Started with MariaDB Xpand.
Available MariaDB Xpand versions are listed below:
The listed MariaDB Xpand versions can be used in both the Xpand Performance topology and the Xpand Storage Engine topology.
Enterprise Server Versions
MariaDB Xpand is compatible with the Xpand storage engine included with MariaDB Enterprise Server:
Compatible ES Version(s)
The listed MariaDB Enterprise Server versions can be used in the Xpand Storage Engine topology.
To deploy MariaDB Xpand, choose a topology:
For additional information, see "Deploy Xpand 5.3".
One service on a system.
A component of MariaDB Enterprise Server which may be included in the server function optionally, either at runtime or compile-time, and which adheres to an established plugin architecture within Enterprise Server.
Process that balances replicas across the Xpand nodes.
Slice of a representation written to disk.
Table data as defined by an index. Table with multiple indexes generates multiple representations of its data.
Distribution of rows in a representation. Representations typically multiple slices, which are in turn written to disk as replicas.
Creating an Xpand Table
To create an Xpand table, use the CREATE TABLE statement with the
CREATE DATABASE hq_sales; CREATE TABLE hq_sales.invoices ( invoice_id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, branch_id INT NOT NULL, customer_id INT, invoice_date DATETIME(6), invoice_total DECIMAL(13, 2), payment_method ENUM('NONE', 'CASH', 'WIRE_TRANSFER', 'CREDIT_CARD', 'GIFT_CARD'), PRIMARY KEY(invoice_id) ) ENGINE = Xpand; SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA='hq_sales' AND TABLE_NAME='invoices';
How many nodes should my MariaDB Xpand deployment have?
One or more MaxScale nodes are required.
Three or more Xpand nodes are required.
To avoid problems establishing quorum during a network partition, it is recommended to deploy an odd number of Xpand nodes. If you deploy nodes in multiple zones, it is recommended to use an odd number of zones.
Production Xpand license keys define the maximum number of Xpand nodes which can be deployed.