关于数据库:百度云原生数据库GaiaDB的HTAP与多地多活技术实践

42次阅读

共计 4120 个字符,预计需要花费 11 分钟才能阅读完成。

摘要:云原生数据库在应用存算拆散技术后,能够在齐全兼容 MYSQL 协定和语法的状况下,极大晋升单实例所能承载的数据规模与吞吐能力下限。但除了对客户端兼容外,对整个数据生态(地区容灾,数据分析,备份复原)的适配同样须要大量的设计优化工作。本次分享 GaiaDB 在跨地区 / 异构数据同步场景下,吞吐 / 实时性 / 一致性方面能力打造与实践经验。在 2023 云数据库技术沙龙“MySQL x ClickHouse”专场上,百度数据库资 深技术专家邱学达,为大家分享一下《百度云原生数据库 GaiaDB 的 HTAP 与多地多活技术实际》的一些技术内容。

邱学达,百度数据库资 深技术专家,次要负责分布式架构设计与数据库内核个性设计和开发。多年数据库与分布式存储开发教训,专一于分布式高可用 + 高牢靠架构设计与云原生化革新。在分布式性能优化、端到端可用性晋升方面具备丰盛教训 本文内容依据演讲录音以及 PPT 整顿而成。大家好,明天我想和大家分享的内容是百度云原生数据库 GaiaDB 在数据分析场景与多地多活方面的一些实践经验。

GaiaDB 是百度智能云研发的一款云原生数据库,目前曾经在云上取得了宽泛的利用,承载了多个高吞吐 / 超大容量业务,特地是帮忙很多业务在 0 革新老本下,实现了服务多地区多活,在每个地区都能够实现靠近本地的低提早读取能力。在大数据量承载方面,多个线上百 TB 以上业务实践证明,GaiaDB 在这种规模下仍然具备良好的吞吐与弹性能力。

上面我来介绍一下 GaiaDB 的整体架构。首先是接入层,接入层次要用来提供主动读写拆散 / 流量管制 /SQL 防火墙 / 鉴权与负载平衡等性能,业务无需保护简单的读写拆散 / 连接池逻辑,间接应用 proxy 即可享受丰盛的接入治理性能。对于有读写一致性要求的业务,还能够抉择应用主从一致性或全局强统一等多种一致性级别,解决传统架构写后读不可见导致的多种简单兼容问题。再往下是计算层,计算层仍然是多个计算节点相互负载平衡的架构。对于读场景曾经实现了无状态的横向与纵向弹性伸缩,能够实现秒级扩缩容,不便应答线上各种流动流量与突发尖峰。

对于写场景,默认仍提供基于纵向扩大的弹性伸缩能力,能够满足线上大部分业务的写吞吐需要。对于写能力的横向扩大,咱们也做了大量的技术储备,写的扩大能力次要取决于申请的抵触状况;在齐全无抵触的负载下,乐观事务能够提供近似线性的写扩大能力,然而大部分的交易类负载都是存在抵触的,在这种状况下乐观事务模型的应用体验就会变得不易承受;对于目前支流的乐观事务模型来讲,解决抵触次要应用锁机制实现,横向写扩大引入的跨节点锁协商会带来较高的事务提早与吞吐瓶颈,目前在工程上还是十分具备挑战性的。以后对于写的横向扩大咱们更多的是联合业务特点进行专属计划定制,实现业务上的整体最优解。

接下来是存储层的架构设计,对于分布式存储系统来讲,外围就是数据分区算法与数据引擎设计。数据分区算法的外围在于如何在尽量升高映射获取时延的同时,将内存耗费管制在可承受的范畴内,同时又尽量避免数据的大规模搬运。对于实时性要求越高的零碎,分区算法的设计应该层级越少、规定越简略,防止引入过多的切换耗费。而数据引擎的设计优化方向则集中在 Base 数据的读取优化以及增量数据(WAL)的可靠性 / 一致性保障上。

GaiaDB 的存储引擎在设计上将 Base 数据与增量更新拆散到了两个子系统中,即存储子系统和日志子系统,防止了日志流与数据流的 IO 争抢导致各类性能问题,存储子系统能够向极 致读性能方向优化,将读 IO 优先级设为最高,写则能够应用异步落盘 + 内存动静回放技术升高对磁盘占用;日志子系统向极 致写性能方向优化,应用窗口技术 + 增量引擎,将写能力优化至极 致程度,读应用热数据缓存技术晋升性能。通过将读写数据流解耦别离优化,实现了资源的最大化利用。

在整体架构设计上,GaiaDB 对于零碎数据一致性与可靠性方面做了重点增强。Mysql 的主从切换始终是一个比较复杂的课题,在硬件掉电 / 网络不可达等场景下,保证数据的严格统一较为艰难。GaiaDB 将原生数据牢靠能力(RPO=0) 固化到零碎的根底设计之中,通过将一致性协定中的任期机制融入到整个数据链路中,新的写入任期开启后,任何过期写入都会被排除在数据流之外,确保即便产生了假死等状况,数据的完整性也齐全不会受到影响。

接下来想和大家分享一下 GaiaDB 在配合业务的剖析需要、让业务能够更高效晦涩实现数据分析的一些实践经验。很多业务在应用 GaiaDB 满足交易类和轻度剖析类需要的同时,还会应用 Doris 解决剖析型场景下的需要,Doris 是由百度自研并捐献至 Apache 软件基金会的开源 MPP 数据库,在行业内取得了宽泛的利用,对于不同品种的数据分析读取需要,咱们积攒了一些老本与效率最优的解决方案,上面我来联合具体的案例进行剖析。

如图是一个典型的泛互联网产品架构:最前端是网络接入层,用于承接 APP/Web 发来的业务申请、聚合和散发不同子系统之间流量;前面有多个业务子系统,例如商品、订单、流动、推送等。这些用户业务零碎更关注的是数据的高并发 + 低提早拜访,对数据的一致性和事务隔离性也有较高的要求,同时因为线上流动或者节假日流量顶峰,对弹性和扩展性也有迫切需要,GaiaDB 能够很好满足这类业务的需要。

与用户业务零碎应用同一份数据的部门往往还有另外两类,一类是后盾服务,也就是对内的客服零碎 / 经营保护零碎 / 供应链业务零碎等。这些零碎的特点是:因为只有公司内部人员应用,QPS 和并发不高,但负载简单而且迭代要求高。比方经营部门常常须要进行新流动设计与配置,客服 /MIS 零碎则须要配合线上流动状况减少各种查问性能。因而,对于后盾类业务来讲,能用 SQL 和事务疾速实现简单牢靠的性能开发是刚性需要,所以 SQL 的功能丰富度与兼容性显得尤为重要,同时 SQL 的并行能力与计算下推对于这类场景的体验优化具备重要作用。

第二类则是业余的数据分析团队,数据分析团队往往承当了多维度、高复杂度的数据分析需要,所以通常应用业余的数据分析一揽子计划,这种场景下数据申请不会间接发往在线数据库,而是须要尽量实时的从在线库导入至剖析库,因而疾速、简略、牢靠的数据导入导出能力成为首要关注点。

所以针对异构剖析的需要,100% 生态兼容的导入导出性能是首要 + 必备选项,特地是剖析型解决方案的数据同步组件都是通用而非业务自研组件,上云用云过程中批改这部分基础设施难度是十分高的。因而 GaiaDB 在这方面做了很多加强工作,比方基于日志流的高牢靠强统一能力原生实现了 RPO= 0 级别的 Binlog 流反对能力,同时对于通用的 DTS 产品和社区导入导出工具,也是保障了齐全兼容和历史教训复用,不减少额定的学习老本。而对于轻度的离线剖析需要,这部分的特点是需要多变、对老本敏感、与线上服务有隔离诉求。

GaiaDB 应用多入口技术支持业务在离线申请齐全隔离,对于离线类申请应用独自计算资源,不会对线上造成影响,同时充分利用存储层分布式 MVCC 能力,不减少额定的存储老本和数据一致性保护开销,随着离线负载的变动,对应计算资源还能够动静伸缩以进一步加强老本节俭能力。对于反对数据分区的业务来讲,GaiaDB 同样兼容了该性能,数据分区能够无效升高资源争抢密度,晋升并行读取能力,对于并行剖析具备很好的提速作用。

还有一类对数据一致性要求更高的业务,如金融类产品,冀望拿到精 确到秒级的全局统一数据用于剖析,岂但从空间维度要求数据统一,从工夫维度上也冀望在剖析的过程中数据能够保障前后一致,这种场景下 GaiaDB 只读镜像库的能力就得以体现,在资源闲暇的低峰时段创立镜像库同时启动剖析工作,无效利用低峰时段闲暇算力。因为只读镜像无需解决写负载,所以写相干的日志子系统能够裁剪以节省成本,同时也解耦了对高性能介质的依赖。只须要计算节点 + 冷存储介质,联合查问并行化技术充分利用分布式 IO 吞吐能力,即可实现超低老本离线剖析解决方案。同时全量镜像也确保了数据严格统一,防止了增量同步可能导致的 DDL 解决、数据校验等简单问题,无效保障了数据的可用性与可靠性。

近几年随着业务精细化水平的晋升和基础设施规模故障危险的存在,越来越多的业务将多活能力纳入了架构设计思考的领域,业务既心愿能够取得高可用性,还想让老本管制在比拟低的水平,同时还不心愿由业务实现多份数据的同步与保护,这样就对数据库这类基础设施的多地多活能力提出了很高的要求,GaiaDB 的高对称架构人造适宜多地多活形式部署,所有存储正本逻辑上齐全对称,每个正本都具备动静回放任意版本数据能力,这样就为数据就近拜访打下了松软的根底:业务申请能够主动路由到同机房计算节点,计算节点申请同机房存储正本即可读取实时数据,防止了主从架构正本导致的屡次跨机房拜访问题。同时全对称架构还能够防止故障场景下批量选主带来的服务中断与申请风暴问题,任意正本故障不会影响其余正本工作,可用性更高、提早更安稳。对于写链路则应用并行写入技术减速,最快的多数派返回即可实现写入胜利。综上,GaiaDB 的同城多活架构在读写链路上都能够防止单个慢节点 / 机房导致的性能抖动问题,使整体性能损耗管制在很小的范畴内。

此外 GaiaDB 也反对跨地区热活实例组,将灾备能力晋升到了地区级,业务在地区间部署无需适配革新,即可实现就近读取低提早能力和写申请主动转发能力,无需保护简单读写入口,提供了与单地区实例统一的应用体验,帮忙大量业务实现了跨地区灾备能力。

以上就是我明天想和大家分享的内容,GaiaDB 在架构设计上外围关注数据的高牢靠与高可用性,重点打造了数据的极 致牢靠保障能力、跨地区多活能力与灾备恢复能力,同时在应用体验上重视简略牢靠,实现了对生态和应用教训的齐全兼容,将用户上云门槛降至最低,让所有上云用云业务都能够享受到基础设施架构晋升带来的效力晋升,谢谢大家。本次大会围绕“技术进化,让数据更智能”为主题,汇聚字节跳动、阿里云、玖章算术、华为云、腾讯云、百度的 6 位数据库领域专家,深刻 MySQL x ClickHouse 的实践经验和技术趋势,联合企业级的实在场景落地案例,与宽广技术爱好者一起交换分享

正文完
 0