极致扩展性
MatrixOne 是一款超级整合异构云原生数据库,其整体基于存储、计算和事务分离的架构,拥有极致的弹性扩展能力,能够迅速应对用户负载的变动。随着数据量和业务的扩大,企业对数据库扩展性的需求日益增强。
通常情况下,无论用户数据从 0 增长到 100TB 级别,或者并发量从数百增长到数十万级别,MatrixOne 都能通过其无比的扩展能力满足性能需求。
业务需求
企业对数据库扩展性的需求主要源于以下痛点:
- 数据量的增长:随着业务的发展,企业的数据量会持续增长。如果数据库的扩展性不佳,可能无法有效处理大量数据,导致查询速度下降,影响业务的正常运行。
- 并发请求的增加:随着用户数量的增长,数据库需要处理的并发请求也会增加。如果数据库的扩展性不佳,可能无法有效处理大量并发请求,导致响应时间延长,影响用户体验。
- 业务需求的变化:企业的业务需求可能会随着时间推移而改变。如果数据库的扩展性不佳,可能无法灵活应对这些变化,导致企业需要投入更多资源来调整和优化数据库。
- 系统的可用性:如果数据库的扩展性不佳,可能无法有效应对硬件故障或网络故障,导致系统可用性降低,影响业务连续性。
如果数据库具有良好的扩展性,可以帮助企业提高数据处理能力,从而有效应对数据量的增长,处理并发请求的增加,并保证系统的可用性。
技术架构
MatrixOne 全面采用云原生架构,所有的组件都以容器形式存在,由 Kubernetes 进行统一管理。Kubernetes 本身具有强大的容器编排和管理能力,在 MatrixOne 中,手动扩展仅需要修改 Kubernetes 的配置。
功能优势
从上图技术架构角度看,MatrixOne 的极致扩展性主要体现在以下几个方面:
分布式架构的灵活扩展:MatrixOne 采用了分布式存储和计算分离的架构,存储层、事务层、计算层的分离,使得 MatrixOne 在遇到系统资源瓶颈时,能够灵活实现节点的扩展。存储层主要基于对象存储,部分基于计算节点 CN 上的缓存。事务层基于无状态的事务节点 TN。计算层基于无状态的计算节点 CN。多节点的架构可以更有效地分配资源,避免热点和资源争抢。
S3 对象存储的无限扩展能力:MatrixOne 的核心存储完全基于 S3 对象存储。S3 对象存储具有天然的高可用性和无限扩展性,使得 MatrixOne 在数据存储方面具有极高的扩展性。无论数据规模如何增长,MatrixOne 都可以通过扩展 S3 存储来满足需求。在私有化部署环境中,MatrixOne 基于开源的 MinIO 组件搭建 S3 服务。在公有云环境中,MatrixOne 可以无缝利用公有云提供的对象存储服务。
无状态的计算和事务节点:MatrixOne 的计算节点(CN)和事务节点(TN)是无状态的,这意味着它们可以随时进行横向扩展。无状态的设计使得计算和事务节点不需要存储任何持久化数据,从而可以轻松添加或删除,以应对不同的负载需求。这种设计使得 MatrixOne 在处理大规模并发请求时具有极高的扩展性和灵活性。(当前 0.8 版本 TN 节点尚不具备扩展能力,但是 TN 主要处理事务的提交信息,负载较低,因此单 TN 已足够处理较大规模的集群,后续版本会完善 TN 的扩展性)。
不同负载及租户的独立扩缩:MatrixOne 通过 Proxy 模块可以将多个计算节点(CN)进行分组管理,组成 CN Set,通过标签来实现每组 CN Set 的独立扩缩。用户可以对不同租户指定不同的 CN Set,使租户之间负载隔离并独立扩展。也可以对不同负载指定不同的 CN Set,比如读负载和写负载,或者事务型负载和分析型负载,实现它们之间的隔离和独立扩缩。