Developers choose Xpand when creating large, mission-critical, read/write scale applications which require ACID-level consistency and enterprise-grade reliability. Xpand combines the scalability of a NoSQL database with the robustness of a SQL database. As with MariaDB Enterprise Server and ColumnStore, Xpand is front-ended by MaxScale database proxy for high availability, disaster recovery and enhanced security. Xpand can be deployed in the cloud as a SkySQL database service on AWS or Google Cloud and runs across multiple public cloud regional centers and on-premise for multicloud and hybrid operations.
Xpand scales without imposing limitations on standard SQL support. It is compatible with MariaDB and MySQL connectors, and applications can continue to query data the same way they did (or would) with MariaDB/MySQL – with joins, ordering, aggregates, stored procedures/functions, JSON functions and more.
Xpand can be deployed with as little as three database nodes for modest workloads to over a hundred for massive ones, combining thousands of cores, terabytes of memory and storage, and operating as a single logical database capable of handling extremely high numbers of queries per second. Database nodes can be added or removed on demand, allowing Xpand to scale out or back when its workloads do.
Xpand is the only distributed SQL database that includes a columnar index. This feature enables developers to more efficiently execute range queries and perform real-time analytics on transactional data.
Xpand scales without sacrificing data integrity, writing all copies of data synchronously (and concurrently) to provide strong consistency and guaranteeing the atomicity, consistency, isolation and durability (ACID) of transactions spanning multiple database nodes. If a transaction coordinator should fail, another one can take over because transactions are made durable using a high-performance Paxos implementation and consensus.
Xpand was designed to tolerate infrastructure failures and maintain availability. It stores multiple copies of data on different database nodes, and optionally, in different availability zones. If one or more of them fail (or even an entire zone), it will automatically switch to using copies stored on other ones – no manual intervention needed.
Xpand can store copies of data in multiple availability zones within a region when running in the cloud, or in multiple racks when running on premises.
Xpand uses parallel streaming replication between regions/data centers to support both active/active and active/passive global deployments.
Xpand continuously monitors data distribution and the resource utilization of individual database nodes. If nodes are added or removed, or if hotspots are detected, it will automatically begin moving data around in order to restore an even distribution of the data and the workload – making every node equal in its use and maximizing performance.
When new database nodes are added, Xpand automatically moves some of the data to them in order to maintain an even distribution of data.
When a database node fails or becomes unavailable, Xpand automatically re-creates lost copies of data to restore fault tolerance.
If a database node is handling too much of the workload, Xpand automatically reassigns some of its data to restore an even workload distribution.