《TXSQL:高性能、全场景、国产数据库内核.pdf》由会员分享,可在线阅读,更多相关《TXSQL:高性能、全场景、国产数据库内核.pdf(20页珍藏版)》请在三个皮匠报告上搜索。
1、姜承尧主讲人:2000222023CDB 5.6CDB 5.7Cstore/TXRocksTDSQL-C 5.7CDB 8.0TDSQL-C 8.0TDSQL2.0、PQCSI列存加速TXSQL=Tencent MySQL;由腾讯数据库团队深度定制的高性能、全场景、国产数据库内核;基于TXSQL内核的数据库产品有:CDB/TDSQL-C/TDSQL 2.0简单易用传统主备MySQL数据库BinlogDataRedo logMetadataSQL proxyreplicationR/WROMasterSlaveStorage enginStorage
2、enginStorage engineStorage engineDiskDiskDiskDisk高可靠、高性能、弹性云原生共享存储数据库ComputeSegmentSegmentSegmentStorageSegmentSegmentSegmentSegmentSegmentSegmentReadReadReadWrite(redo log)Write(redo log)Write(redo log)redo logredo logReplicaComputePrimaryComputeReplica金融场景、高一致性无共享分布式数据库SQL proxySOLSOLSET1SET2Maste
3、rslave1slave2MCMasterslave1slave2CPU核心数存储规模实例数自研特性回馈社区的bugfix回馈社区的功能*以上数据来源均为腾讯云上业务如透明数据加密、审计、闪回、全局索引、动态线程池、强同步等;并行DDL、复制优化、热点更新、AWR、数据恢复工具等;并行查询能力、行列混合存储与调度能力等;引入全局索引后;点查询性能提升约34倍点查更新性能提升约23倍MySQL数据库的分区索引为局部索引;当查询通过非分区键进行查询,则需所有分区的本地二级索引扫描;分区数量越多,则性能越差;电商、直播场景,突增的热卖商品,需要数据库解决秒杀场景下的减库存、出入帐等问题;几乎所有关系
4、型数据库无法绕过的真实业务难题BEGIN;SELECT*FROM xxx WHERE sku_id=1 FOR UPDATE;UPDATE xxx SET stock=stock-1 WHERE sku_id=1;.COMMIT;11110.2210.1810.0605063264128热点更新TPS并发数真实业务热点并发性能对比官方MySQL8.0TXSQL8.0性能对比TXSQL性能提升10倍+!ClientsClientsInnoDBInnoDBHot item Hot item queuesqueues热点数据检测record1record3
5、LockSystemlocklocklocklocklocklockunlockunlockunlockunlockunlockunlockClientsClientsrecord1record2reorcd3Lock_SystemLock_SystemInnoDBInnoDB修改列先仅修改元数据,记录的真正修改延迟均摊到后续用户DML的操作ALTER TABLE t1 MODIFY COLUMN c BIGINT,ALGORITHM=INSTANT;22.9s13 min 39.72 sec3 hours 51 min 16.40 sec0.01s0.01s0.01s100w1000w1亿m
6、etadata v1metadata v1metadata v2metadata v2metadata v3metadata v3DDL元数据管理新记录的读写与兼容Crash recover/MVCC支持Redo改造headerversiondatanew recordold version recordnew version record新老记录的比较与排序老记录更新MLOG_COMP_REC_INSERTMLOG_COMP_REC_DELETERedo中记录老版本列列信息越来越多的业务有复杂SQL的查询需求;原生MySQL 8.0版本前,优化器实现较差,复杂SQL性能较弱,且仅SQL查询仅
7、支持单线程;原生MySQL 8.0版本,优化器重构,支持火山模型,多线程并行查询仅支持聚集索引的COUNT查询,总体实现依然较为初级;通过改造内核,实现单个SQL内多线程的并行执行,从而提升复杂SQL查询的性能;内核的PQ能力集成在 CDB、TDSQL-C 数据库产品中,无需修改SQL,开箱即用,对用户透明;Q1:大表全表扫描+count7.72 Q2:全表扫描+过滤条件7.00 Q3:索引部分扫描+排序4.67 Q4:小表全表扫描+count4.00 TDSQL-C 云原生数据库,PB级数据存储自动弹性扩缩容,业务无需分库分表RW节点进行在线高性能TP事务交易RO节点通过PQ能力进行AP分析
8、操作AP不需要额外DTS服务进行数据迁移即,一份数据,既能TP又能APInnoDB存储引擎是面向记录的存储格式并行查询能力虽能较大地提升了AP的性能,但在某些场景基于列的存储会更有优势TXSQL内核提供列式索引存储能力,使得数据即可以进行传统面向行的存储,又可以根据列的方式进行存储TXSQL的列式存储结合向量化技术和并行查询执行能力,从而进一步大幅提升数据库的AP能力CREATE COLUMNSTORE INDEX idx_xxx ON customer(cid,oid,phone);RowIDRowIDcidoidphoneRowIDRowIDcidoidphoneRowIDRowIDcid
9、oidphoneRowIDRowIDcidoidphoneRowIDRowIDcidRowIDRowIDcidRowIDRowIDcidRowIDRowIDcidRowIDRowIDoidRowIDRowIDoidRowIDRowIDoidRowIDRowIDoidRowIDRowIDphoneRowIDRowIDphoneRowIDRowIDphoneRowIDRowIDphone列类型相同,便于压缩,通常515倍;压缩后,IO变小,AP查询性能更高;对比行存索引,可以更快过滤数据;方便利用AVX向量化指令进一步加速查询性能;PX Receiver(merge sort;slice:0;workers:1)PX Sender(slice:1;workers:4)colcolcol开源协同、社区化共建,丰富企业级特性,金融、娱乐、电商全领域领先持续增强数据库稳定性、可观测性、可运营能力,保障大规模运营TDSQL-C支持多写功能,实现多个计算节点可写能力,满足业务多租户的需求保持TP性能的领先;通过多阶段并行和列存索引向量化能力提升AP性能,达到世界领先水平