《2019年腾讯云数据库内核TXSQL详解.pdf》由会员分享,可在线阅读,更多相关《2019年腾讯云数据库内核TXSQL详解.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、TXSQL数据库详解TXSQL简介TXSQL的性能优化TXSQL的功能优化TXSQL的企业级特性目录TXSQL简介1腾讯云 国内领先的云服务供应商计算存储数据库安全TencentDB(CDB)腾讯云数据库服务完善的数据库服务自主可控的管理应用兼容多种数据库引擎海量数据库实例,支持PB+存储CDB 现网客户TXSQL 云数据库服务的核心Access clustersInstance clusterTXSQLTXSQLTXSQLStorage clusterRouteSafetyHADatabase enginesReplicationStorage TengXunMySQL(TencentMyS
2、QL)自研的MySQL 分支 基于官方MySQL版本TXSQL的演进之路TXSQL 5.1TXSQL 5.5TXSQL 5.6Bugfix for 5.1Bugfix for 5.5Features needed by OSS Bugfix for 5.6Features needed by OSSFeatures from DBA&business Read and Write Optimization.TXSQL 8.0(coming soon)Bugfix for 5.7Features needed by OSSEncryptionAuditThread pool.TXSQL 5.7T
3、XSQL的性能优化2Redo log的优化:双缓冲区mtr_commitTrx_1Trx_2Trx_mmtr_commitlog_write_up_toflush and sync redo log protected by log_sys-w_mutex and switch bufmtr_commitredo log writebuf1Trx_nlog_get_lsnread log_sys-lsnbuf2Redo log优化效果Readview的深度优化read view 存在的问题?整个创建过程一直持有 trx_sys-mutex 锁需要遍历 trx_sys-trx_list(5.5)
4、或trx_sys-rw_list(5.6)read_view 的内存在每次创建中被分配,事务提交后被释放并发较大,活跃事务链表过长时,会在trx_sys-mutex 上有较大的消耗TXSQL 解决上述问题的方法在 trx_sys下维护一个全局的事务ID的有序集合在 trx_sys下维护一个有序的已分配序列号的事务列表,记录拥有最小序列号的事务,供purge 时使用减少不必要的内存分配参照 5.7 的实现,在 5.6 中将 ro_trx_list 移除02000040000600008000010000012000014000032641282565121000originaloptimized
5、050010001500200025003000350040004500500012481632128originaloptimizedLock_log split at mastertable_map_log_eventcacheMasterLock_log split for sql thread and io threadsemi-sync built in at slavetable_map_log_event cacheSlaveReconstruct IO threadsemi-sync built in at master半同步复制优化并行复制010000200003000040
6、000500006000070000800009000012345678logical_clocktablemasterTXSQL的功能优化3异步删除大表优化目标:实现方法:1.重命名IDB文件2.在后台线程中逐步truncate该文件(每次128M)3.最终删除该文件避免在删除大表时产生IO尖刺优化select.offset n limit mrow_search_for_mysqlrow_sel_get_clust_rec_for_mysqlrow_sel_store_mysql_recsub_selectev