乐趣区

关于数据库:云数据库架构思维升级看这篇就够了

近期,ArchSummit 寰球架构师峰会(以下简称:AS 峰会)北京站圆满闭幕。AS 峰会是极客邦科技旗下 InfoQ 中国团队推出的重点面向高端技术管理者、架构师的技术会议。AS 峰会北京站以“降级架构思维,撑持业务倒退 ”为指标,邀请各厂商展现先进技术在行业中的典型实际,以及技术在企业转型、倒退中的推动作用。 在此次 AS 峰会上,腾讯云数据库专家团亮相“云数据库的架构设计与技术演进”专场,由腾讯云数据库专家工程师伍鑫负责专场出品人。

数据库作为根底软件的三驾马车之一,是 IT 行业的必争之地。云时代下,云原生技术和数据库技术的联合,曾经成为数据库行业重要倒退方向。在专场中,四位讲师围绕 云数据库的架构设计和技术演进 ,以腾讯云的数据库产品为例,针对性地解读 数据库产品容器化难点、数据库对立治理、超大规模集群在线数仓架构设计 等话题。

一、云原生数据库管控摸索和实际

孙勇福,腾讯云数据库专家工程师

技术改革突飞猛进,迭代迅速。孙勇福认为,多元技术交融、多元架构状态会成为将来的常态。随着业务的不断扩大,沿用扩散的管控架构模式势必会带来反复建设的问题,导致资源应用效率低下,弊病也逐步凸显,具体如下:

  • 无奈利用云上 IaaS 层的资源池和弹性扩缩容的能力,以及 IaaS 层老本和性能优化的红利;
  • 短少对立的数据库 PaaS 平台,对多个产品、多个环境进行对立管控和调度;
  • 业务性能复用水平低,造成人力资源节约;
  • 无奈利用云原生红利,平台无奈标准化,运维和交付老本比拟高;

上述问题,能够演绎为 资源调度和对立的流程管控问题

得益于腾讯云上 IaaS 基础设施的劣势,孙勇福提出了 PaaS on IaaS 的思考,进步数据库系统的弹性能力,实现降本增效,同时解决数据库产品倒退过程中遗留的历史架构问题,晋升孵化新数据库产品的效率。

如何对立治理 IaaS 层的资源,是 PaaS on IaaS 面临的次要挑战。孙勇福所在的研发团队进行了各种不同的尝试,从最后的框架模式逐步演变到平台模式,一个叫云巢 (Khaos) 的产品诞生了。现如今,云巢 (Khaos) 有状态服务 PaaS 平台曾经能够反对各种数据库产品疾速上云。

什么是有状态服务?孙勇福解释说,有状态服务是指须要将数据、会话或服务状态做长久保留,服务启动、运行和复原时均严格依赖所保留数据的正确性和一致性的服务。数据库就是典型的有状态服务。有状态服务区别于无状态服务次要是状态两个字,有状态服务往往随同着数据长久化,服务节点状态化(MySQL 主从节点)。

如何在简单的状态服务中,更好的解耦业务逻辑,提供通用的平台能力是 PaaS 平台设计的难点之一。在云巢的构建中,首先要明确平台的边界和业务边界,平台不仅要关怀业务的具体逻辑,也必须要提供业务灵便的接入性能。

在架构设计上,云巢平台蕴含 Khaos Platform 和 Khaos Eros 两个子系统。Khaos Platform 借助 Kubernetes 的标准化能力对立了不同的底座,向上提供数据库服务实例的配置管理、生命周期治理、跨故障域调度等根底能力。除了底层资源管理之外,数据库管控零碎往往还有较简单的业务流程,例如,对于某个数据库实例的发货流程,管控零碎收到申请后,先申请底层计算、存储资源以及 VIP 等,期待资源就绪之后,管控零碎继续执行增加路由、设置计费策略等操作。为了升高业务流程与云巢的交互复杂度,云巢在资源管理的根底上提供了 Khaos Eros 服务,用来将底层资源平台的操作细节封装成更粗粒度的业务流程,简化应用云巢的难度。

此外,孙勇福还分享了云巢架构设计实现的具体细节,有想理解的小伙伴可入群与讲师探讨哦!

二、腾讯云数据库云上 SaaS 生态演进

潘怡飞,腾讯云数据库高级工程师

在理论工作中,潘怡飞通过与用户的交换发现,用户在用 PaaS 产品的时候常常须要定制开发,比如说数据库运维工具、数据传输工具等等。定制化工作会扩散运维同学的精力,减少研发同学在业务上的研发工夫。因而,SaaS 产品应运而生。

腾讯云数据库提供残缺的 SaaS 生态矩阵,潘怡飞重点分享了以下三大产品:

1. 数据传输服务 DTS

DTS 提供数据迁徙与数据流买通服务,特点是反对在线迁徙同步,满足低时延和高牢靠的要求,在性能上次要蕴含 迁徙、同步和订阅 三大模块。具体来看:

  • DTS 数据迁徙是面向单次的数据库迁徙上云、下云,反对常见的链路,能够实现历史全量和动静增量的迁徙,同时它还反对一致性校验,能够在迁徙前随时发动一致性校验,帮忙客户预知迁徙成果。在迁徙中,DTS 可能保证数据的正确性以及做到对源库无感知,潘怡飞示意这也是客户最关注的点。
  • DTS 数据同步是指两个数据源之间的数据长期实时同步,具备多种高级个性,例如库表重映射、DML/DDL 过滤,Where 条件过滤;次要实用于云上云下多活、异地多活,跨境数据同步、实时数据仓库等场景。
  • DTS 数据订阅是指实时按需获取数据库中要害业务的数据变动信息,将这些信息包装为音讯对象推送到内置 Kafka 中,不便上游实时生产利用;实用于异构数据更新等。

整体来看,DTS 通过迁徙、同步和订阅这三个功能模块,充沛买通数据链路之间的流转治理,构建双向、环形、异构、多合一等场景。这样不必客户本人去开发一些工具或定时工作来解决问题,使得客户能够更专一于本身业务,发挥优势发明价值,剩下的就交给 PaaS 平台或 SaaS 平台来做。

2. 数据智能管家 DBbrain

数据库对立治理过程中有许多的难点和痛点,DBbrain 正是利用于解决这些问题的一款 SaaS 工具。DBbrain 是自动化、智能化运维对立治理平台,从后期的数据库巡检、故障发现、故障定位到前期的故障解决与系统优化,造成一套数据库全生命周期治理运维的工具。

潘怡飞列举了两个典型场景,为大家具体展现了 DBbrain 的性能。

第一个是 慢 SQL 剖析。DBbrain 会基于多维度的统计来进行对立汇总,并实现主动排序。在性能优化这方面,利用编译器、优化器的改写来计算代价和老本,以此判断 SQL 是不是优质,是不是须要增加索引。另外 DBbrain 反对通过 API 的拉取剖析接口,借助云上计算的劣势,间接应用 SaaS 去构建自有运维平台。

第二个是 异样诊断。日常诊断是依据秒级的监控,日常的巡检会有一些告警项提醒,同时收集十几个维度的信息之后做汇总展现,进一步进行预警诊断。

3. 数据库安全审计

数据库安全审计是一个基于内核级别的平安审计平台,区别于一些须要旁路管控部署的形式,这种对性能和收集残缺度都反对的比拟好;同时能够 DBbrain 进行联动,针对审计日志进行汇总、剖析,真正可能做到收集并应用。

SaaS 的产品价值在于能够升高客户在工具或者不必要的研发上的投入,把资源聚焦于本人的业务。间接应用 SaaS 工具能够帮忙业务更好的发明价值。

将来,潘怡飞示意腾讯云数据库 SaaS 生态产品还将持续发力。DTS 后续会在场景化和简单拓扑场景深耕,反对一键创立简单拓扑链路,比如说星型、环形、双向等一系列场景,并且实现不须要逐条配置抵触策略。DBbrain 会更加智能化、AI 化,能够间接基于慢 SQL 主动,将之前的举荐模式降级到主动创立索引,甚至实现数据库负载主动扩容、缩容;同时能够利用目前云原生数据库的疾速缩扩容能力,充沛联合更多产品之间的场景联动,帮忙客户发明更多业务价值。

此外,潘怡飞还分享了腾讯云数据库 SaaS 生态的倒退思路,有想理解的小伙伴可入群与讲师探讨哦!

三、大规模在线数仓技术构架分享

张倩,腾讯云数据库专家工程师

大规模在线数仓的剖析性能晋升,能够在 自研列式存储、向量化引擎、并行执行逻辑、计算层缓存 等核心技术模块做冲破,张倩分享道。

数据库技术倒退半个世纪,从晚期对关系模型的钻研到 SQL 语句的呈现,都是一直面向业务需要和用户体验的最佳设计实际。而列存储的呈现甚至能够追溯到上世纪 70 年代的数据库创始时代,过后人们就在探讨具体用何种存储模型来反对下层计算。

张倩提到,其实在理论应用场景中,用户业务模型并不会齐全适配某一种存储类型,更多的是混合业务模型中带有 OLTP 或者 OLAP 场景的倾向性 。所以数据库系统在晚期针对专一场景的摸索比拟成熟后,近年来开始进一步摸索,逐渐提出 混合 HTAP(Hybrid Transactional/Analytical Processing)模式,心愿通过一套引擎来解决混合业务类型。

大规模在线数仓整体以 OLAP 极致查问性能读优化 RO(Read Optimize)为根底前提,保障数据库事务 ACID 个性,同时针对 OLTP 场景进行写优化 WO(Write Optimize)。并且对 RO/WO 能力进行通明整合,为用户提供通明易用的表结构设计。

张倩基于列式存储的自研过程,为大家重点剖析了其中的技术细节。列存储模块中数据块采纳 DSM 模型每列以 Silo 格局独立存储保障高压缩比和最大化 I / O 裁剪能力反对。而每张列存储表会创立两张辅助 heap 表,Registry 表用来存储 Silo 的元数据信息,Stash 表用来承接 Write Optimize 的短事务 DML 数据并后盾进行数据“沉降”Merge。

通过基于 heap 表的元数据实现,将列存的 MVCC 设计与行存表对立,使得列存表可能完满反对 DML、分布式事务一致性、并发更新等能力。同时列存表也反对 B -Tree/Hash 索引,range/hash/list 等多级分区表能力。用户应用起来更加不便,在抉择存储类型建表后,用户根本能够无感知的进行行列混合多表关联、基于索引的点查问减速、多任务并发入库 / 查问。

此外,张倩还分享了腾讯云数据库在向量化引擎、并行执行逻辑、计算层缓存等技术上的优化思路,有想理解的小伙伴可入群与讲师探讨哦!

四、TDSQL 升级版引擎架构和关键技术介绍

韩硕,腾讯云数据库高级工程师

随着企业业务场景的一直增长和复杂化,业务状态、业务量会不可预知性的增大。由此,业务的敏态倒退对数据库底层技术也提出了须要具备敏感能力的要求。

韩硕老师分享道,在数据库投产的过程中,应答业务敏态变更的时候经常会遇到以下这些问题:

  • 兼容性:建表须要手动指定 shardkey;
  • 运维:存储层扩容,须要 DBA 发动,局部事务会中断;
  • 模式变更:online DDL 依赖 Pt 等工具。

基于上述问题,腾讯云数据库降级了 TDSQL 新敏态存储引擎架构。韩硕老师示意,思考到敏态业务变动较大,团队心愿在 TDSQL 新敏态存储引擎架构中,用户能够像单机数据库一样去应用分布式数据,不须要关注存储变动,能够随时加字段、建索引,做到业务齐全无感知

如上图所示,升级版的架构图分为 计算层、元数据管理层和分布式存储层 三个局部。韩硕重点分享了这三个局部的设计要点。

计算模块 SQLEngine中,内核齐全兼容 MYSQL8.0。计算层为多主架构,每个 SQLEngine 节点均可读写,SQLEngine 之间通过肯定形式刷新表构造变更等信息。革新是无状态化设计,移除各种有状态化的数据,多线程替换为协程框架。

存储模块 TDstore中,架构是基于 LSM-tree 和 Multi-raft 的分布式 KV 存储引擎。数据是 Region 是基于 raft 同步的多正本的存储管理单元,数据依据 key 范畴散布在不同 Region 上;Region TDMC 调度下可产生决裂、合并、迁徙、切主等操作。

管控模块 TDMetacluser中,重点关注三个方面,第一是高效的生成和下发全局惟一的事务工夫戳;第二是治理模块的元数据,比方 TDstore 和 SQLEngine 元数据,治理 Region 数据路由信息,以 Region 为根本单位进行负载平衡和存储的平衡调度;第三是负载平衡的调度,这个调度要思考负载的热点,简略来讲,会把热点 Region 打散到不同的存储节点上,也须要兼顾性能的影响,还要对 Region 过程做一些正当的划分,会有跨 Region 的分布式事务,是两阶段提交的模型,咱们会把过程通过正当的 Region 调度和划分,把两个阶段的事务变成一阶段的事务,从而晋升效率。

韩硕将升级版引擎技术亮点总结为以下四点:

  • 兼容性:具备 TDSQL 兼容性,升级版的架构是原生分布式构造,数据以 key range 打散和路由,老本比拟低;存储层采纳 LSM-Tree 构造,压缩比有量级的晋升,非常适合于大规模业务量的业务。
  • 可扩展性强:首先计算层是多主模式,每个 SQLengine 均可读写,同时是无状态化设计,可依据业务流量随时灵便增加或缩小一些计算节点。存储层也是依据业务数据存储量需要,去做平滑的增加或者移除 TDstore 节点,通过数据主动迁徙,实现容量弹性伸缩,做到业务层无感知。
  • 一致性:事务模型具备全局读一致性,围绕管理层 TDmetacluster 统一分配全局惟一递增事务工夫戳来做数据的一致性的判断。
  • 反对在线变更:计算节点反对在线模式变更,目前曾经反对了在线操作、索引操作等。

最初,韩硕再次将团队的愿景传递给大家:心愿用户可能像应用单机数据库一样应用咱们的分布式数据库,同时还能领有有限扩展性。

此外,想理解韩硕分享的 TDSQL 新敏态存储引擎架构实现细节的小伙伴,可入群与讲师探讨哦!

退出移动版