新浪新闻客户端

矩阵起源秦姝琦解析MatrixOne架构设计

矩阵起源秦姝琦解析MatrixOne架构设计
2022年12月28日 11:33

  导读:文本介绍了矩阵起源技术副总裁秦姝琦对MatrixOne设计和研发过程中的思考。矩阵起源是一家数据智能领域的创新企业,MatrixOne是矩阵起源研发的超融合异构云原生数据库。

  HSTAP 为何会被提出

  一个技术概念之所以被提出,究其根本还是为了解决某一类痛点问题。

  秦姝琦拿一个典型的融合型场景为例,一款股票 APP 本身是交易系统,所以它需要一个 OLTP 数据库做支撑,但是用户又希望其提供股市的预测和分析,这里自然就出现了对 OLAP 系统的需求,即在做大规模交易的同时,还需要基于交易数据和用户行为数据进行分析建模。

  要想解决上述问题,常规的技术方案是怎样的呢?如下图所示,企业需要用到非常多的中间件来搭建一个复杂的数据系统,其中包括 OLTP 数据库、OLAP 数据库,消息队列、流引擎、ETL 工具等等,这样一来,会导致系统变得非常复杂,难以保证稳定性;其次,数据流转的链路也变得很长,实时性无法保证,数据血缘管理难度很大,这种基于“缝合”方式搭建的系统,在稳定性、实时性以及运维管理成本和开发成本上存在很多痛点。

  在刚刚结束的 2022 re:Invent 大会中,亚马逊云科技提出了一个新的名词——“Zero-ETL”,其本质也是识别到了数据流转已经成为企业很大的痛点。不难看出,简化复杂架构,降低运维使用成本的需求正在不断增长。为了让企业只用一款数据库,就能把最基础的业务中台和数据中台以最低的成本建设好,矩阵起源对 HTAP 进行了重新定义,融入了串联 AP 和 TP 的 Streaming 能力。因此,在秦姝琦看来,HSTAP 的出现便是为了简化数据系统的复杂性,提供极简的用户体验,降低数据使用的难度,让企业可以将精力从繁杂的技术细节中释放出来,专注于数据价值的挖掘,最终达到降本增效的目标。

  MatrixOne 的自研之路

  MatrixOne 从设计之初便放弃了一条相对容易的路,选择从 0 开始自研,用时七个月将 Share Nothing 迁移到云原生架构,从 AOE(Append Optimized Engine)存储切换到 TAE(Transactional Analytical Engine),重写了计算引擎(Parser,执行计划,优化器等),并且完成了分布式事务框架和高性能日志服务的研发,累计删除代码 30 万行,新增 20 万行。

  回忆起 MatrixOne 的起步期,秦姝琦提到:“在真正设计开发这样一款云原生 HSTAP 数据库的时候,我们面临非常多的艰难选择。”

  具体来说,用户对于 TP 和 AP 数据库系统的需求基本可以归纳为以下五点:ACID,并发性能,吞吐,成本和数据新鲜度。HSTAP 数据库若想兼容以上能力,实现起来却没那么容易,由于高并发、短时延的 OLTP 负载与带宽密集型、高时延的 OLAP 负载的访问模式不同且它们互相干扰,把他们融合到一个系统里存在很多的冲突点。

  谈及如何平衡上述矛盾,秦姝琦以通信领域中两个耳熟能详的概念为例:频分复用和时分复用,即当突破资源粒度划分得足够小,资源隔离做得足够好,调度能力足够强时,就可以把一些看似矛盾的功能平衡起来。“因此,在设计 HSTAP 数据库时,我们不会追求以上提到的五点在同一时间都做到 100 分,而是基于统一存储引擎,对象存储,自适应计算优化,计算存储独立扩缩容,全局的资源调度和资源隔离策略动态平衡这五个看似矛盾的特性,来适应不同的负载场景需求。”

  基于这样的设计理念,MatrixOne 引擎的顶层设计架构,可以大致分为三层:计算层、分布式事务层和共享存储层。其中,计算层是由多组计算资源组成的,其中计算单元我们称之为 CN,每个 CN 可以承担不同的任务,但无论 CN 用于何种用途它本身是不保存任何状态的,以保证计算层是可以任意扩缩容的;再往下面一层是 Transaction Layer,这一层承担了分布式事务处理的相关工作。分布式事务层选择了 share-nothing 的模式,由于每个 DN 之间需要处理的数据范围各不相关,这样做的好处在于,每个 DN 只需要负责自己这部分数据的冲突检测,从设计上简化了 DN 的实现复杂度和扩缩容的难度;再往下是两个服务,一个是 Log service,为 DN 提供高性能的分布式高可用的日志读写服务,它直接决定事务写性能的关键;另外一个是共享存储,这里不仅支持 S3 这类对象存储,还支持 NFS 以及 HDFS。

  此外,为了让 MatrixOne 在云上和私有化场景能够保持统一的架构和接口,还在底层架构中抽象了一层 fileservice 接口,它会将底层不同的共享存储实现细节屏蔽掉。比如,在云上选择S3作为底层共享存储,那么在私有化场景不一定有 S3,客户如果能提供 HDFS 集群,就可以通过 fileservice 在保持引擎接口一致的前提下,支持多种的共享存储。

  除此之外,MatrixOneGA版本将会有一个重要的特性——实现了Streaming的方案,即HSTAP中的“S”。秦姝琦坦言,目前的 Streaming 还处于早期阶段,团队关注的核心问题还是 framework 的设计、有界数据和无界数据的处理以及增量计算的优化等等。

  MO Cloud 的打造

  秦姝琦表示,为了给用户带来简单、易用的最终体验,MatrixOne 也计划上线全托管 MatrixOne 服务 -MO Cloud,目前已经处于开发阶段,目标支持多个国内外公有云如 AWS、GCP、华为云、阿里云等,其具备的主要特点是 SaaS 化的使用体验,免部署、自动化运维、按量计费、成本低。

  秦姝琦主要为我们介绍了 MOCloud 在资源隔离方面的实现进展。在数据的可见性上,MOCloud 可以保证逻辑上的隔离,一个 Session 只能看到这个租户权限范围内的数据,在资源隔离上,还计划用 Proxy+rule engine+CN 来完成一个全局的流控和资源调度,CN 支持独占 Set 来满足更多元化的要求。此外,针对大家关注的安全问题,MOCloud 也会保证持久化的数据是加密的,未来将支持“ brin your own key”的模式,支持租户维度的数据加密。

  未来发展方向

  数据库从来都不会单独被使用,尤其对于初创的数据库厂商而言,完善生态也是非常重要的工作。秦姝琦透露,在更完整的生态对接方面,MatirxOne 将在明年陆续在开源项目上开展对接,还计划针对制造业、能源、新兴互联网等行业,制定相应的解决方案,为此也会在 MatirxOne 中接入相应的生态。

  与此同时,她还介绍了 MatirxOne 在未来的产品规划。预计在明年,MatirxOne 将会推出第一个 GA 版本,接下来还将继续融入流的能力,力争通过一个 HSTAP 数据库满足通用场景的需求。虽然实现起来还需要一定的开发周期,但我们也很乐于看到,未来有更多的数据库厂商能够通过创新的架构实践、极简的设计理念,来不断降低企业使用数据系统的复杂度和门槛。

  (来源:新视线)

责任编辑:孙青扬

数据库架构设计

举报邮箱:jubao@vip.sina.com

Copyright © 1996-2022 SINA Corporation

All Rights Reserved 新浪公司 版权所有