分布式SQL

由MariaDB Xpand 提供支持

MariaDB Xpand

MariaDB Xpand 是一个分布式 SQL 数据库,适用于需要以超出标准关系数据库能够达到的规模运行 Web、移动和 IoT 应用程序的企业。它是在不牺牲关系数据模型和 ACID 事务的情况下,专注于将 SQL 扩展到难以想象的水平而构建的。它是数字时代每个企业的数据库,从数字原生颠覆者到正在进行数字转型的行业巨头。

无限规模

Xpand 可以用最少的三个数据库节点来部署,用于适度的工作负载,也可以用超过 100 个数据库节点来部署以适应大型工作负载,同时结合数千个内核、TB 级内存和 PB 级存储,作为能够处理每秒 1000 万次查询的单个逻辑数据库运行。此外,还可以根据病毒式增长或者假期激增等需要添加或删除数据库节点,从而允许 Xpand 在其工作负载时进行扩展。

读取

Xpand 将表分区成片,并将它们分配给不同的数据库实例。因此,每个实例都会在内存中缓存唯一的数据片以进行快速读取。只需添加实例即可增加缓存在内存中的数据总量,从而提高读取性能。

Xpand 通过切片(即水平表分区)分布数据,将不同的数据同时写入不同的数据库实例。它有效地组合了多个存储设备以增加磁盘 I/O。只需添加实例即可提高写入吞吐量并降低写入延迟。

持续可用性

Xpand 旨在容忍基础设施故障并保持可用性。它将多个数据副本存储在不同的数据库节点上,并且可以选择存储在不同的可用区中。如果其中一个或多个失败(甚至整个区域),它将自动切换到使用存储在其他区域上的副本——无需手动干预。

区域意识

Xpand 可以在云中运行时将数据副本存储在一个区域内的多个可用区中,或者在本地运行时将数据副本存储在多个机架中。

多站点复制

Xpand 使用区域(数据中心)之间的并行流复制来支持主动(主动)和主动(被动)全球部署。

数据的完整性

Xpand 在不牺牲数据完整性的情况下进行扩展,同步(和并发)写入所有数据副本以提供强一致性,并保证跨多个数据库节点的事务的原子性、一致性、隔离性和持久性 (ACID)。如果一个事务协调器失败,另一个可以接管,因为事务是使用高性能 Paxos 实现和共识使事务持久的。

标准SQL

Xpand 可在不限制标准 SQL 支持的情况下进行扩展。它与 MariaDB 和 MySQL 连接器兼容,应用程序可以继续以与 MariaDB(MySQL )相同(或相近)的方式查询数据——使用连接、排序、聚合、存储过程(函数)、JSON 函数等。

自我管理

Xpand 持续监控数据分布和各个数据库节点的资源利用率。如果添加或删除节点,或者检测到热点,它将自动开始移动数据,以恢复数据和工作负载的均匀分布——使每个节点的使用均等并最大限度地提高性能。

再平衡

当添加新的数据库节点时,Xpand 会自动将一些数据移动到新的数据库节点,以保持数据的均匀分布。

重新保护

当数据库节点出现故障或不可用时,Xpand 会自动重新创建丢失的数据副本以恢复容错能力。

重新分配

如果数据库节点处理了过多的工作负载,Xpand 会自动重新分配其部分数据以恢复均匀的工作负载分布。