MariaDB Xpand, MariaDB’s new distributed SQL smart engine, has now been released as GA! With the GA release of Xpand, included with MariaDB Enterprise Server 10.5.8-5, we bring the power of distributed SQL into the MariaDB family of products and make it accessible to all our users through the MariaDB Platform. With this release, you can now access Xpand like any of our other storage engines through MariaDB Enterprise Server by using the standard
ENGINE=XPAND syntax. For a more detailed description of Xpand, check out our documentation.
Making Xpand available as a storage engine option on MariaDB Enterprise Server brings you the elasticity and scalability of NoSQL with the transactional integrity of SQL without requiring you to restructure your application. The Xpand smart engine adds several unique and groundbreaking features to MariaDB, some of which are highlighted below.
Xpand was built from the start with multi-node and a shared-nothing architecture in mind. By default, everything is distributed: tables, indices, lock management, transaction processing etc. The distributed multi-node architecture in concert with automatic data redundancy provides built-in HA (high availability), and ensures that Xpand can handle individual node failures gracefully and transparently.
The query processing is also distributed, even joins are distributed. Execution plans are compiled and then executed locally on each node as opposed to having a central manager for the query execution. And since everything that is distributed can be done in parallel, it gives Xpand linear scalability for both reads and writes.
Automatic rebalancing is one of the coolest features of Xpand and unique in the universe of distributed SQL databases. The rebalancer is responsible for ensuring that the data is evenly balanced across the nodes. This process happens automatically and transparently in the background and is triggered when the process detects changes in node counts or uneven workloads. When nodes are added to or removed from the Xpand deployment, the rebalancer will kick in and redistribute data behind the scenes to ensure the nodes are used evenly. Even without any changes to the node count, the rebalancer ensures the nodes are evenly used. If the data is somehow skewed so that some nodes end up being used more than others, the rebalancer will notice and redistribute the data to ensure a more even load.
Consistency Model and Advanced SQL
Xpand has very advanced SQL features. The great thing with Xpand is that all SQL is by default fully ACID and has strict consistency. You cannot read inconsistent data by mistake.
In addition to this, Xpand has a multi-version concurrency control (MVCC) model that allows you to read data as a snapshot in the default isolation level (i.e.
REPEATABLE READ). Perhaps the most interesting part of all this is that DDL in Xpand is transactional and non-locking. This means that if you run an
ALTER TABLE on a large table and the operation takes a while to complete, all other transactions can still access your table during the operation. The table is fully available at all times, despite your long-running
ALTER TABLE. This is something unique that no other storage engines in MariaDB offer currently.
The GA release of Xpand is a very exciting development for MariaDB adding a whole new level of versatility for customers with extreme scaling or availability needs.
For More Information
For a more complete list of the Xpand features please check out our Documentation which has been updated for the Xpand GA release.
You can also try MariaDB SkySQL to check out Xpand as a tech preview in the cloud with no need to install anything.
Read a nuts and bolts discussion of distribution and the reblancer process on Xpand in “How MariaDB Achieves Global Scale with Xpand“.
Watch the webinar on “Options for scaling databases to support high-throughput, low-latency workloads”.
Xpand is available to MariaDB Platform subscribers. Any nodes can be converted to Xpand nodes without additional cost, please contact your MariaDB sales representative.