TDSQL新一代敏态引擎 性能突破与多元应用场景 主讲人:黄潇 目录 03 业务场景 04 性能突破 02 架构特点 01 产品特性 产品特性 TDSQLTDStore引擎介绍:产品特性 强一致透明分布式 强一致:数据多副本存储,通过Multi-Raft协议同步日志,提供强 一致容灾能力 兼容性:高度兼容原生MySQL语法,业务层无入侵 分布式:数据以KeyRange打散和路由,业务层无须手动分库分表,支持MySQL单机业务无缝迁移 高性能计算与海量存储 计算层:多主模式,每个节点均可同时读写,单实例支持千万QPS 存储层:采用LSM-Tree结构平衡了压缩、性能和成本,可有效降低70%~90%存储成本,适合TB~PB级海量存储 平滑弹性伸缩 管控层:基于容器化平台的管控系统具备云原生能力,可一键弹性 扩缩容,支持根据业务负载、容量进行弹性伸缩 内核层:提供几乎无限的存储和计算容量 原生OnlineDDL支持敏态业务 支持在线加减列操作 支持在线加减索引,无需pt-osc/gh-ost外部工具 支持大部分DDL操作以Online方式执行 架构特点 TDStore引擎介绍:整体架构 SQLEngine MYSQL Client Hypernode Hypernode Hypernode Hypernode SQLEngine SQLEngine TDStore SQLPlanRPC SQLEngine RaftLog Snapshot … TDStore TDStore TDStore TDMetaCluster GlobalService Scheduler MetaData WorkLoadCollector TDStore引擎特点:一体化对等架构 计算模块SQLEngine 完全兼容MySQL8.0 多主架构,多点写入 存储模块TDStore 基于LSM-TreeKV引擎 Multi-Raft分布式协议 一体化对等架构 本地访问,降低网络损耗 物理绑定、逻辑分离 计算下推 Hypernode TDStore SQLEngine SQLParser QueryOSpintiemization ExecutionPlan RouterCache LocalCall RPC Hypernode TDStore引擎特点–存储的三层模型 数据对象 ReplicationGroup 数据同步单位,包含若干Region 迁移、切主、分裂、合并 Region 数据划分单位,Range分片,默认512MB 强一致透明分布式 无需分库分表,对用户透明 支持PB级海量存储 Multi-Raft强一致 TDStore RepGroup_1 RepGroup_2’ RepGroup_3’’ TDStore RepGroup_1” RepGroup_3 Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region Region MultiRaft TDStore RepGroup_3’ RepGroup_2 RepGroup_1’ RepGroup_3' RepGroup_2’’ Region Region Region Region Region Region Region Region Region Region Region Region TDStore引擎特点–基于数据感知的调度 相关数据相近分布,降低分布式事务比例 数据多副本反亲和性调度,实现容灾 SQL>SELECT* FROMT1INNERJOINT2ONT1.id=T2.idWHERE… Hypernode1 T1.R1(0~99) RepGroup_1 商户余额表T1 (增长慢) T2.R1(0~99) RepGroup_2 TDStore引擎特点–基于数据感知的调度 相关数据相近分布,降低分布式事务比例 数据多副本反亲和性调度,实现容灾 Hypernode1 T1.R1(0~99) RepGroup_1 商户余额表T1 (增长慢) Hypernode2 T2.R1(0~99) RepGroup_2 TDStore引擎特点–基于数据感知的调度 相关数据相近分布,降低分布式事务比例 数据多副本反亲和性调度,实现容灾 Hypernode1 T1.R2(50~99) RepGroup_5 T1.R1(0~49) RepGroup_1 商户余额表T1 (增长慢) Hypernode2 T2.R1(0~33) RepGroup_2 T2.R2(34~67) RepGroup_3 T2.R4(68~99) RepGroup_4 TDStore引擎特点–基于数据感知的调度 相关数据相近分布,降低分布式事务比例 数据多副本反亲和性调度,实现容灾 Hypernode1 T1.R2(50~99) RepGroup_5 T1.R1(0~49) RepGroup_1 商户余额表T1 (增长慢) T2.R4(68~99) RepGroup_4 T2.R1(0~33) RepGroup_2 T2.R3(50~67) T2.R2(34~49) RepGroup_3 Hypernode2 TDStore引擎特点–基于数据感知的调度 相关数据相近分布,降低分布式事务比例 数据多副本反亲和性调度,实现容灾 Hypernode1 RepGroup_5 商户余额表T1 T2.R4(68~99) T2.R3(50~67) T1.R2(50~49) (增长慢) Hypernode2 RepGroup_3 T1.R1(0~49) T2.R1(0~33) T2.R2(34~49) 业务场景 海量存储、弹性伸缩 TB~PB级存储 低成本提供在线访问 LSM-Tree高压缩比存储 成本降低70%~90% 支持在线查询 典型案例 充值历史记录(原HBase) 还款记录(原HBase) TDStore业务场景:历史归档/冷热分离 Application MySQLShard[1,n] LoadBalancer … 冷数据归档 Hypernode Hypernode Hypernode SQLEngine SQLEngine SQLEngine TDStore TDStore TDStore 数据量 TDSQL(InnoDB) TDSQL(TDStore) 10亿条 1810GB 348GB TDStore业务场景–海量日志流水数据 应用 RangeScan PointGet 海量存储、弹性伸缩 TB~PB级存储 高压缩比存储 无需分库分表,单表百亿行以上 写入线性扩展 Multi-Raft强一致、高可靠典型案例 发票日志流水(原TDSQLInnoDB) TDStore f1 f2 f3 f4 f5 f6 f7 … fn PK varchar(64) int text timestamp varchar(2048) 大宽表800亿+行 LoadBalancer 日志流水 消息队列(Canal/Kafka/Pulsar/RabbitMQ/RocketMQ/...) TDStore业务场景–敏态业务 SQL>SELECT* FROMtbl WHEREctime>1483200000ANDctime<1483286400; /*32518859rowsinset7hours3min24.33sec*/ 无需分库分表、敏捷伸缩 •写入可扩展性 •主键和索引亲和分布 Schema灵活多变 •秒级InstantDDL SQL>SELECT/*+parallel(16)+/* FROMtbl WHEREctime>1483200000ANDctime<1483286400; /*32518859rowsinset1hours18.38sec*/ •FastOnlineDDL(非阻塞) 并行查询、算子下推典型案例 •游戏用户活动数据 TDStore业务场景–数据中台/多维查询 海量存储、线性扩展 TB~PB级存储 SQL查询简单易用 多维查询、数据一致性查询 支持全局唯一约束 并行查询、算子下推 高频OnlineDDL 典型案例 广告数仓(原TiDB) 运营报表 TDStore 业务双写 数据大盘 TDStore LoadBalancerBinlog 数据沙盒 数据订阅 实时大盘 聚合多个分片或 大宽表(200+字段) … 消息队列 性能突破 硬件环境 节点类型 节点规格 节点个数 HyperNode CVM实例:32CoreCPU/64GBMem/350GBDisk 3 Sysbench性能测试–测试环境 软件版本 节点类型 软件版本 HyperNode v18.0.0 Sysbenchv1.0.20 模拟场景 初始化256张表,每张表1千万条记录,单份数据存储在InnoDB中约600GB 只写 768 167,698 27.48ms 50.72ms 非索引更新 1284 136,099 9.44ms 18.73ms Sysbench性能测试–测试结果 Hypernode对等架构、二级索引和主键数据的亲和分布尽可能降低了数据读取和写入时的网络开销 并行查询和算子下推则进一步提升了范围扫描、GroupBy聚合操作的查询性能 以下为压测到拐点时的性能数据 测试场景 并发数 QPS 平均响应延迟(毫秒) P95 响应延迟(毫秒) 点查 896 498,010 1.8ms 2.73ms 只读1024224,65042.7ms223.34ms 索引更新960106,5329.01ms17.95ms OLTP读写混合896178,105101.54ms186.52ms THANKS