MatrixOne 功能特性
MatrixOne 特性
在 MatrixOne 版本 v25.2.1.0 中,具有如下特性,让你在使用 MatrixOne 的过程中更加高效:
分布式架构
在 MatrixOne 中,采用了分布式存算分离的分布式架构,存储层、数据层、计算层的分离,使得 MatrixOne 在遇到系统资源瓶颈时,能够灵活实现节点的扩容。同时,多节点的架构下,资源可以进行更加有效率地分配,一定程度上避免了热点与资源征用。
事务与隔离
在 MatrixOne 中,事务采用了乐观事务与快照隔离。
在分布式架构下,乐观事务可以通过较少的冲突获得更优的性能。同时在实现方式上,能够实现隔离级别更高的快照隔离。为了保证事务的 ACID 四个要素,MatrixOne 目前支持且仅支持快照隔离一种隔离级别。该隔离级别较常见的读已提交相比,隔离级别更加严格,既可以有效防止脏读,又能够更好地适配分布式乐观事务。
云原生
MatrixOne 是一款云原生的数据库,从存储层,适配本地磁盘、AWS S3、NFS 等多种存储方式,通过 File service 实现了对多种不同类型存储的无感知管理。MatrixOne 集群可以在多种基础设施环境下稳定运行,既可以适配企业私有云,又可以在不同的公有云厂商环境下提供服务。
负载均衡
在分布式数据库的架构下,不同节点之间不可避免地存在负载差异,可能导致某些业务场景的性能瓶颈或部分计算资源闲置。因此,MatrixOne 为确保不同节点在资源分配上尽量保持接近,实现了计算资源的负载均衡功能特性。
SQL 路由
SQL 路由常用于早期的分库分表数据库场景,用于在收到一条 SQL 请求后,根据数据分布情况,确定将该请求发送到哪个实例/库/表。
在 MatrixOne 中,虽然存储引擎的能力不再限制数据库规模,但在多 CN 的架构下,仍然存在着多 CN 之间负载均衡和不同租户之间资源隔离的场景需求。因此,在 MatrixOne 中,实现了 SQL 路由将 SQL 请求按照预定义的规则发送到不同 CN 节点执行,解决了一个数据库实例无法负载大量数据访问要求的情况。
白名单
白名单是一项安全策略,用于控制受限制的资源、系统或网络的访问。它基于一个核心思想,即只允许被授权和信任的实体进行访问,而拒绝其他未经授权的访问尝试。这些被授权的实体可能包括特定用户、IP 地址、程序或其他实体。与白名单相对的是黑名单,黑名单策略指定一系列被禁止的实体,这些实体将被阻止访问受限制的资源、系统或网络。在黑名单策略下,未被列入黑名单的实体可以进行访问。
白名单具有以下特性:
- 只有预先定义的名单上的用户或系统才能被允许访问,其他未被列入白名单的用户或系统则被禁止访问。
- 使用白名单策略可以提高安全性,但可能会限制合法用户的访问。因此,在实施白名单策略时需要权衡安全性和用户便利性。
- 在数据库系统中,白名单主要用于限制用户访问,只允许特定用户在特定的服务器或网段上访问数据库,从而提高数据库的安全性。
多租户
单一集群多租户的方式可以提供资源共享、简化管理、提高可伸缩性、提供安全隔离等好处,对于需要同时为多个租户提供数据库服务的场景非常有价值。
MatrixOne 的多租户模式能够为不同的租户提供独立的数据库实例,并采用逻辑隔离的方式确保各租户数据的安全性和独立性,有效防止数据泄露和篡改的风险。
MatrixOne 性能优势
高效存储
MatrixOne 选择 AWS S3 作为一款高效的存储方案,满足了低成本和冷热数据分离这两个核心需求。其可靠的可用性保证了公有云中的低风险,并提供私有化部署的兼容版本。
- 低成本:降低冗余度,获得性能可接受的更低成本。
- 冷热数据分离:必要的条件,实现对数据的精细管理。
明确的事务分工
- CN 负责所有的计算和事务逻辑,TN 负责保存元数据、日志信息和事务裁决。
- 引入 Logtail 对象在日志中,用于保存最近日志中的关联数据。将 Logtail 的数据定期写入 S3 中。CN 扩容可以实时将 Logtail 数据同步至 Cache,实现部分数据共享。
- 设置事务大小的阈值。超过阈值的事务直接写入 S3,日志只记录写入记录。未超过阈值的事务继续由 TN 写入,极大增加了吞吐量。
HTAP 工作负载隔离
作为 HTAP 数据库,实现了不同类型的工作负载隔离:
- 服务器级别的隔离:在硬件资源充足的情况下,各个组件分别在不同的物理机运行,接入同一个对象存储。
- 容器级别的隔离:在硬件资源有限的情况下,利用所有节点无状态的特性,以容器作为各个节点的隔离手段。
灵活的资源配比
作为 HTAP 数据库,不同业务场景的比例在不断动态变化,对资源的配比也有着更高的要求。旧架构下的资源分配模式注定无法实现灵活调整,需要对各个节点实现更加精细化的管理,包括但不限于:
- CN 节点的分工:允许用户对 CN 进行划分,用于 TP 或 AP 业务。在某项业务资源出现瓶颈时,对 CN 进行水平扩容。
- 动态判断不同业务 CN 组的负载情况,可以自动将闲置资源分配至繁忙组内。
- 通过租户(account)的逻辑概念,实现逻辑资源的完全隔离。不同租户可以以独享或共享的方式使用指定 CN 资源。