百度云:基于通用硬件构建的云原生数据库
基于通用硬件构建的云原生数据库 GaiaDB 4.0演讲人:朱洁百度智能云数据库产品总架构师自我介绍百度智能云数据库产品总架构师个人著作《大数据架构详解》获得 2017 电子工业出版社优秀作者奖公众号《大数据和云计算技术》目录CONTENTS云原生数据库当前挑战GaiaDB 发展历程GaiaDB 设计理念和架构解析GaiaDB 客户案例▶GaiaDB 5.0 展望云原生数据库当前挑战Aurora 第一个版本核心优势高弹性高性能高稳定性低成本高兼容性201457.9%企业有意愿主要挑战灵活的部署模式(跨云,跨平台)技术成熟度兼容性和服务可持续性57.9%目录CONTENTS云原生数据库当前挑战GaiaDB 发展历程GaiaDB 设计理念和架构解析GaiaDB 客户案例▶GaiaDB 5.0 展望GaiaDB:基于通用硬件设计的高性能云原生数据库全兼容:完全兼容开源生态(Mysql5.7/8.0)•无需从0学习:现有SQL优化、运维使用经验完全适配•无需改造业务:SQL/事务行为原生兼容多级高可用:RPO=0, RTO <= 3s多场景适用:不依赖特殊硬件,云上云下一套架构,自建可部署,架构简单易扩展:按需扩缩容G aiaProxyG aiaProxyG aiaProxy…R WR OR OLogLogLogPSPSPSPS…计算层存储层接⼊层回放数据读写路由写LO G读数据•GaiaDB是百度自研的新一代企业级云原生数据库,采用领先的存算分离架构设计,真正实现按需、极致弹性扩展能力,支撑了集团所有核心业务线,线上最大实例 500TB+,数据量数十 PB。目前已实现泛互、金融、AI、游戏、交通等全行业覆盖。GaiaDB 发展历程GaiaDB 4.0 新增并行查询、列存引擎、数据流优化等能力,突破复杂查询瓶颈2020年2021年2022年2023年1.0存算分离解决容量弹性问题2.0跨Region热活解决地域级别高可用问题3.0多AZ热活解决机房级别故障问题4.0并行查询、列存引擎、数据流优化等,解决复杂查询问题目录CONTENTS云原生数据库当前挑战GaiaDB 发展历程GaiaDB 设计理念和架构解析GaiaDB 客户案例▶GaiaDB 5.0 展望设计原理:深度融合数据库和存储,实现高性能简单组合:分布式协议+单机引擎同步写入DATA Engine WALDATA Engine写入数据库物理日志数据计算节点分布式框架WAL分布式框架持久化分布式框架主从同步•多跳网络+同步写导致性能严重下降•多层日志导致写放大倍率高•无法满足多计算节点多版本数据需求深入融合:主从同步+增量日志+数据持久化•单跳网络+滑动窗口:低延迟链路+自适应高吞吐•数据流统一日志,逻辑简单可靠•存储引擎理解数据库语义,支持自动多版本回放物理日志物理日志物理日志EngineEngineEngine数据计算节点异步批量异步解耦+重组共识协议优化:单跳提交RedoLog存储层存储存储存储LeaderFollower计算层CNCNCN…FollowerRedo on WALRedoLog存储层存储存储存储LogLog计算层CNCNCN…Log•一致性协议需要两跳网络确认,延迟高•一致性协议/数据库各自维护WAL/Crash Recovery/数据持久化逻辑,写放大严重,耗时长,数据链路脆弱挑 战•数据库主库逻辑与一致性主节点逻辑合并:2跳链路缩短为1跳•WAL与数据库物理日志合并:统一使用RedoLog•Crash Recovery逻辑合并:主库统筹事务与多副本一致性,逻辑一致可靠•Snapshot与数据库MVCC合并:统一使用数据库多版本技术,大大节省落盘IO方案:GaiaDB深度融合•吞吐性能提升40%+•时延降低30%+•长尾降低1个数量级效 果链路优化:异步批量提交+自适应用户态TCP• 同步写性能与链路延迟成反比,跨网络写入导致性能极度下降挑 战• 滑动窗口的日志流异步批量写• 自适应用户态TCP 方 案• 异步写入:无需同步等待io,不依赖低延迟存储介质• 批量写入返回:日志服务根据数据版本自动选取最新数据落盘,批量返回最新水位,保证可靠性• 专用IO线程:CPU cache友好,无锁+低线程切换开销• 不依赖特殊硬件,多协议自适应,RPC端到端延迟缩短60%+至百us效 果异步滑动窗口writeack滑动窗口的日志流异步批量写存储多版本实现:自适应动态回放• 多计算节点共享存储,由于不同节点水位不同,需要读取的数据页版本不同• 分布式环境下,慢节点对整体系统拖累明显,治理困难挑 战• 存储节点具备数据多版本回放能力,根据client lsn自动回放至所需版本• 计算节点具备数据多版本回放能力,如存储节点尽力回放仍不满足需求,计算节点进行后续数据回放,自动兼容慢节点• 存储节点自适应批量落盘:无需每次页更改都刷盘,节省IO与CPU回放能力GaiaDB计算+存储智能自适应回放• 高负载集群读IO延迟平均降低50%效 果B > A > CLSN:BLSN:CLSN:A读取左侧副本时:• 计算回放:无需• 存储回放:B->A读取右侧副本时:• 计算回放:C->A• 存储回放:local->C性能提升效果测试工具:sysbench。测试负载:全缓存型、磁盘IO型全缓存-只读2C8G4C16G8C32G16C64G32C256G最高提升60%全缓存-读写最高提升59%2C8G4C16G8C32G16C64G32C256G全缓存-只写最高提升62%2C8G4C16G8C32G16C64G32C256G磁盘IO-只读2C8G4C16G8C32G16C64G32C256G最高提升43%磁盘IO-读写最高提升48%2C8G4C16G8C32G16C64G32C256G磁盘IO-只写最高提升89%2C8G4C16G8C32G16C64G32C256G多级高可用:商业数据库必备能力真正意义的高可用:多级高可用能力• 单体多副本高可用,副本间独立运行无耦合• 多可用区高可用,同时提供服务,单可用区故障不影响可用性• 多地域高可用,独立存储池/计算池,支持快速切换• 热活:相比冷备,热活能够更好的确保业务连续性和可用性G aiaProxy…R WR OR O计算层存储层接⼊层R OG aiaProxyG aiaProxyG aiaProxyG aiaProxyG aiaProxy同城A Z同城A Z异地A ZLogPSPS…LogPSPS…LogPSPS…集群高可用能力-多副本对等架构,无主从切换耗时多数派高可用n-1高可用无状态存储层存储存储存储日志日志日志计算层RWRORO…• 秒级切换• 扩缩容仅需内存启动• 多节点容灾计算层• 对称多数派协议:容忍少数派故障• 任意节点故障不需要等待选主,不会出现卡顿日志层• 对称多副本快照:容忍n-1故障• 快速重试:部分副本变慢时快速重试其他副本存储层基于物理复制的数据强一致,延迟低吞吐高数据库跨可用区高可用•使用物理同步协议,任意切换不丢失数据•多可用区热活同时提供服务,机房级故障无感•就近访问,低延迟平滑兼容慢节点•增强型自校验日志流,链式自校验,抵御未知错误数据库跨地域高可用•跨地域物理复
百度云:基于通用硬件构建的云原生数据库,点击即可下载。报告格式为PDF,大小7.27M,页数24页,欢迎下载。