写点什么

存储成本降低超六成,OceanBase 在作业帮业务的应用实践

刘强

  • 2024-08-16
    北京
  • 本文字数:2715 字

    阅读完需:约 9 分钟

大小:1.36M时长:07:56
存储成本降低超六成,OceanBase在作业帮业务的应用实践

OceanBase 在作业帮业务的应用实践

作者|刘强,就职于作业帮基础架构 DBA 团队,负责分布式数据库的探索和使用,协同研发团队在公司内部推进分布式数据库在业务上的落地。

核心业务架构的几大痛点


作业帮成立于 2015 年,致力于用科技手段助力教育普惠,运用人工智能、大数据等技术,为学生、老师、家长提供学习、教育解决方案,智能硬件产品等。


在业务初期,作业帮使用阿里云 ECS 自建 MySQL,同时最大程度利用自建 DBasS 平台完成初期业务的快速扩张,为业务提供稳定的 OLTP 能力,但随着业务数据量飞速上涨,该数据架构逐渐呈现亟需解决的技术痛点。


痛点 1:应用分布式改造。

众所周知,当单个 MySQL 集群性能无法满足业务读取需求时,通常采用分布式改造的方式,使用分库分表方案解决 MySQL 单点性能瓶颈。但应用改造带来了不小的改造成本,每一次数据架构扩容都需要业务与 DBA 团队做大量变更,这种业务成本换取核心业务稳定性的方案不足以支撑业务的飞速发展。

痛点 2:节点无法按需扩缩容。

基于目前的 MySQL 分布式方案,为满足业务扩展需求,作业帮从刚开始的单个 MySQL 集群扩容至现在的 8 个 MySQL 分片集群,带来大量的资源浪费,同时,数据均衡问题也对作业帮产生困扰。

痛点 3:数据架构满足不了业务需求。

当前架构仅能满足部分 OLTP 类场景的核心业务需求,MySQL 无法支持数据实时分析需求,掣肘了业务发展。因此,作业帮需要一个既能支撑 OLTP 业务也能承接 OLAP 业务且保证二者资源隔离的解决方案。

痛点 4:数据存储策略无法敏捷调整。

MySQL 分布式架构冗余、笨重,导致系统在应对多变的数据合规需求时无法及时响应,做不到“数据随着业务走,业务随着合规走”。如何在保证数据强一致的基础上迅速调整存储策略,也是作业帮需要解决的技术问题。

核心业务 HTAP 多元化能力支撑及架构升级

基于上述面临的架构痛点,DBA 团队与业务架构团队对多种数据产品进行了深入的技术调研。


其中,原生分布式数据库 OceanBase 4.x 版本的功能特性可以针对上述痛点澄源正本,具体而言,表现在原生分布式架构、HTAP 能力、多租户与数据高压缩,以及完善的生态体系。


1. 原生分布式架构,数据强一致,灵活扩缩容。

OceanBase 原生分布式架构提供了平滑扩展的能力,解决了业务分布式改造和按需扩容的问题。同时,由于 Paxos 协议和全量数据校验,真正实现数据强一致、零丢失,如出现故障,可在 8 秒内恢复业务。在业务 POC 阶段,作业帮对 OceanBase 进行扩缩容与节点容灾测试,从三个 Zone 的 1-1-1 架构,升级到 2-2-2 架构,数据分片均衡期间业务运行稳定。


2. 一套引擎支撑 HTAP 混合负载业务。

OceanBase 的行列混存与一套引擎支持 OLAP + OLTP 的混合负载架构能够满足事务处理需求的同时秒级响应分析、跑批等需求。在 HTAP 场景中,为了确保资源隔离,有多种方式,如 AP 类查询大队列、租户内 SQL 资源绑定、只读副本等,作业帮在产品测试阶段选取了典型的百万数据规模的 10-20 并发聚合类查询场景,测试结果显示 OceanBase 不仅能做到毫秒级响应(性能高于 MySQL 数十倍),而且对核心 TP 业务毫无影响。




3. 多租户与高压缩比,避免资源浪费,降本超六成

作业帮通过 OceanBase 一套集群的多个租户承接线上 8 个 MySQL 集群的所有请求,由于租户规格可设置,作业帮的资源得到极致利用,且租户间互相隔离。同时,OceanBase 存储引擎提供的数据高压缩能力使存储成本极大地降低,在同等三副本情况下(MySQL 单个集群一主二从;OceanBase 三副本),MySQL 900GB 数据在 OceanBase 中仅 170GB,存储成本节约超六成。多租户规格同等业务需求下,OceanBase 的资源使用不到 MySQL 的 1/5(单个租户规格最小仅 3C12G 一个 Zone,MySQL 节点独占资源 32C256G)。




4. 完善的生态体系

OceanBase 提供了丰富的生态工具,除自研的 OMS、ODC、OCP 等运维管理平台外,还兼容 400+ 上下游生态工具。




使用上述工具,作业帮实现了实时迁移、迁移同步任务一体化,以及可视化的集群生命周期管理、开发管理和全链路诊断,为数据架构升级提供了一个可回滚、可监控、可灰度的解决方案。


综上,作业帮决定将 OceanBase 作为架构升级的核心数据库产品,制定上线方案并实施。

应用 OceanBase HTAP 解决方案及业务收益


下图是 OceanBase 上线后的架构体系,目前业务写流量通过分库分表方式写入 MySQL 集群,再使用 OMS 将全量数据及增量数据的实时同步到下游的 OceanBase 集群中,并写入各个 MySQL 集群租户,同步过程中同时进行数据校验。



作业帮利用 OceanBase 的 HTAP 能力,使查询分析的业务得以前置,无需等待 T+1 数据,直接于在线库实现实时营销决策等分析需求。在保证线上核心业务稳定性的同时,也解决了业务痛点。后续业务流量逐步灰度到 OceanBase 或回滚到 MySQL 集群中。



自业务应用 OceanBase 以来,获得了不小的架构收益和可贵的业务实践。


首先,存储成本降低超六成,实时分析性能提升 4 倍以上,硬件成本相比 MySQL 降低 77.8%。


其次,由于一套引擎支持 OLTP 业务和 OLAP 业务,使 OceanBase 稳定支撑核心业务的同时完成实时分析需求。Auto DOP 更是 AP 性能的提升利器,经测试,在千万以内的数据量级场景下,复杂的 AP 类 SQL 响应时间可以提升数倍,秒级内完成数据分析(两次测试结果中,第一个结果从 4.6 秒提升至 0.8 秒,第二个结果从 1.8 秒提升至 0.24 秒)。在资源充足的时候,如果对性能有更高诉求可尝试使用 DBLink 功能,可以实现租户间跨库查询诉求,打破数据隔离。





最后,完善、便捷的生态体系不仅释放了业务人员与运维人员的大量工作,还节约了运维与开发成本。

此处也分享一下 OMS 的使用经验:


  • OMS 同步数据一个并发可以支撑 1000 左右,具体还需要结合单条记录大小,如果单条记录包含 lob 类字段,那么该值较小。另外一个并发一般设置 1G 内存,当并发数太多而内存太小时 RPS 会降低很多(Full GC)。

  • 一般一条同步链路的资源需求是 4C/8G ,如果一个机器的内存资源超过 80%,同步链路则会创建失败,建议调大内存机器。

  • 可以在 OMS 具体同步任务详情中查询 RPS 监控指标,观察数据同步速度。

OceanBase 支撑核心业务架构

目前,OceanBase 的应用方案已经平稳落地,未来作业帮将扩大 OceanBase 应用范围,并在该方案中投入更多精力。


  • 尝试探索落地多 Region 下的容灾架构体系,做到数据合规的同时满足数据聚合需求,进一步尝试 OceanBase 主备库方案。

  • 逐步将 MySQL 的核心流量灰度到 OceanBase 中,承接全部的业务流量,完全解决分库分表架构带来的技术痛点,OMS 作为下游工具通过数据订阅方式将数据传输到数据湖中,完成数据链路闭环。

  • 进一步引入 ODC,打造开发与 DBA 团队的一体化效能数据开发平台,调研 OceanBase 行级回收站能力,为业务的稳定性和数据容错性提供更多保障。

2024-08-16 09:559267
用户头像
李冬梅 加V:busulishang4668

发布了 934 篇内容, 共 527.0 次阅读, 收获喜欢 1099 次。

关注

评论

发布
暂无评论

华为19级大佬10年心血终成百页负载均衡高并发网关设计实战文档

做梦都在改BUG

Java 负载均衡 高并发 网关设计

高可靠多层板制造服务再获认可!华秋荣获创想三维优秀质量奖

华秋电子

BAT必刷!GitHub顶级“2023并发编程全优笔记”晋升公司架构组!

Java你猿哥

Java 多线程 面经 SSM框架 多线程并发

GitHub上疯传数万次!蚂蚁内部绝密分布式高可用算法笔记太香了

做梦都在改BUG

Java 分布式 高可用 算法

300+页!卷王级别Java面试宝典-阿里服务端开发与面试知识手册!

Java你猿哥

Java spring JVM 面经 SSM框架

BSN-DDC应用合约解读汇总(2023年一季度)

BSN研习社

【问题解决】解决 swagger2 默认地址失效

Java你猿哥

Java JAVA开发 swagger2 java项目

人人自媒体的时代,程序员该如何利用好自己的优势?我记住了这些神器...

浅羽技术

工具 自媒体 写作技巧 三周年连更

业内首份!医疗数据安全政策汇编发布(附下载)

极盾科技

数据安全

低成本,全流程!基于PaddleDepth和Paddle3D的三维视觉技术应用方案

飞桨PaddlePaddle

人工智能 飞桨 PaddlePaddle 三维视觉

揭开“虚拟化已死”的5大谎言与真相

科技热闻

如何在ABAP里用函数式编程思想打印出非波拉契Fibonacci(数列)

汪子熙

SAP abap Netweaver 思爱普 三周年连更

太强了!阿里技术官新产"Spring高级源码阅读指南",爆火全网

Java你猿哥

Java spring SSM框架 spring ioc spring aoc

Java中的异常处理详解(try、catch、finally、throw、throws) | 社区征文

共饮一杯无

Java 异常处理 三周年连更

2023年MQTT Broker技术选型时需要考虑的7个因素

EMQ映云科技

云原生 物联网 IoT mqtt 企业号 4 月 PK 榜

华秋干货分享:SMT钢网文件的DFA(可焊性)设计

华秋电子

从零学习SDK(6)调试和测试SDK的库

MobTech袤博科技

【4.7-4.14】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

OpenHarmony社区运营报告(2023年3月)

OpenHarmony开发者

OpenHarmony

华秋PCB生产工艺 | 第十二道主流程之FQC

华秋电子

文盘Rust -- 用Tokio实现简易任务池

京东科技开发者

rust runtime tokio 企业号 4 月 PK 榜

EMQX Cloud BYOC版本发布:在您的云上体验全托管的MQTT消息服务

EMQ映云科技

物联网 IoT 云服务 mqtt 企业号 4 月 PK 榜

后端开挂!一个接口实现CRUD操作,这款工具绝了!

Java你猿哥

Java 接口 后端 crud

SpringBoot 集成 atomikos 实现分布式事务

做梦都在改BUG

面对“失业焦虑”我们可以尝试自媒体分享| 社区征文

浅羽技术

三周年征文

爆肝一月!527页文档详解SpringCloud微服务和分布式系统实践

小小怪下士

Java 分布式 微服务 后端 SpringCloud

被裁后,狂刷大牛分享的607页JUC源码分析笔记,立马拿蚂蚁offer

做梦都在改BUG

Java 高并发 JUC JCF 集合框架

得帆云DeMDM,业内首家基于低代码技术构建的主数据管理平台

得帆信息

低代码 数据治理 数据清洗 主数据管理 主数据管理平台

活久见,java8 lamdba Collectors.toMap()报NPE

做梦都在改BUG

厚礼蟹!阿里最新SpringBoot核心笔记,一夜爆火于Github。

Java你猿哥

Java Spring Boot JAVA开发 SSM框架

应用部署引起上游服务抖动问题分析及优化实践方案

京东科技开发者

应用部署 jsf 企业号 4 月 PK 榜 上游服务抖动

存储成本降低超六成,OceanBase在作业帮业务的应用实践_数据库_InfoQ精选文章