2016-07 何登成:AliSQL性能优化与功能突破的演进之路

9527

2019/11/27 发布于 技术 分类

2016-07 【阿里在线技术峰会】何登成:AliSQL性能优化与功能突破的演进之路 https://yq.aliyun.com/articles/57900

文字内容
1. AliSQL性能优化与功能突破的演进之路 何登成
2. 内容大纲 AliSQL发展历程 AliSQL重要成果展示 AliSQL生态体系 AliSQL未来发展规划 2
3. AliSQL大事记 2011 2012~ 2014~ • AliSQL 5.1 • AliSQL 5.5 •AliSQL 5.6 • DDL bug修复 • 热点锁消除 … • 并行复制 • 热点补丁 … •增强的线程池 •增强的热点补丁 •SQL防火墙 … 3
4.  40+ bugs定位 和修复 全部回馈开源社区  41 累积新增功 能数 Performance New BugFix  27 面向业务需求 的性能优化 enhance Feature 4
5. AliSQL vs Oracle MySQL 5
6. AliSQL 改进一览——性能优化 线程池 表级并行复制 热点更新优化 日志系统大锁拆分 事务合并 Semi-Sync优化 Online DDL性能优化 事务插入优化 BINLOG限流 只读事务链表移 除 事务提交过程优化 视图优化 6
7. AliSQL 改进一览——功能、稳定性增强 定向流量控 制 多功能SQL Hint 高低水位限 流 快速获取 META DATA 在线执行计 划优化 Select from update 主备不一致自 动修复 列压缩 SQL纬度锁超 时设置 死锁信息丰富
8. AliSQL 改进一览 —— 两个完整的故事 大连接、高并发下数据库稳 定性保障 • • • 问题? 解决方案之一:高低水位限流 解决方案之二:线程池 库存热点更新 • • • • • 问题? 热点优化演进 库存热点优化——V1 库存热点优化——V2 库存热点优化——V3 8
9. AliSQL —— 大连接、高并发下的数据库稳定性保障 大连接、高并发下的数据库会出现什么问题? 9
10. AliSQL —— 大连接、高并发下的数据库稳定性保障 APP Servers pagestack pagestack pagestack pagestack pagestack pagestack 排队论(Queueing Theory) 排队论及其应用浅析 TCP Incast Congestion 10
11. AliSQL —— 高低水位限流 高水位限流 暴力方式:thread running超过阈值,直 接杀 低水位限流 相对于高水位限流, 更加精细化 11
12. AliSQL —— 线程池(Thread Pool) 12
13. AliSQL —— 线程池(Thread Pool)测试 Read Write 60000 50000 40000 30000 20000 10000 0 16 64 128 256 512 AliSQL Without Thread Pool 1024 2048 4096 AliSQL With Thread Pool 8192 16000 13
14. AliSQL —— 线程池使用过程中踩过的坑? 慢SQL是线程池的大敌! 慢SQL来源之一:正常业务SQL 慢SQL来源之二:定时任务 慢SQL来源之三:系统后台操作(例如:binlog dump) 无论任何原因导致线程池堵塞,确保管理命令不受影响! 14
15. AliSQL 改进一览 —— 两个完整的故事 大连接、高并发下数据库稳 定性保障 • • • 问题? 解决方案之一:高低水位限流 解决方案之二:线程池 库存热点更新 • • • • • 问题? 热点优化演进 库存热点优化——V1 库存热点优化——V2 库存热点优化——V3 15
16. 库存热点——问题起源 16
17. 库存热点——演进历程 17
18. 库存热点——演进历程 Version 1 •InnoDB Strict Concurrency Version •commit •select update •Target 2 on success from affect row Version 3 •Row Cache •New InnoDB row Lock Type •Group Update •Associated Transaction 18
19. 库存热点优化——Version 1 Transaction model: ①begin; ②insert normal row; ③update hot row; ④select hot row; ⑤commit; InnoDB Row Locks T1 T2 ... T3 ... Deadlook Searching lock_sys->mutex T1000 InnoDB Concurrency hot rows normal rows normal rows normal rows InnoDB Row Locks T1 T2 ... T3 Limit The Waiters lock_sys->mutex hot rows T4 normal rows T5 ... normal rows normal rows T1000 19
20. 库存热点优化——Version 2 Transaction model:'>model:'>model:'>model: ①begin; ②insert normal row; ③update hot row; ④select hot row; ⑤commit; 0.2ms 1st step Transaction model:'>model:'>model:'>model: ①begin; ②insert normal row; ③select * from update hot row; ④commit; 2nd step Transaction model:'>model:'>model:'>model: ①begin; ②insert normal row; ③select * from update commit_on_success rollback_on_fail target_affect_row 1 hot row; 20
21. 库存热点优化——Version 3 Row Cache Associated transactio ns How SKU Boost New Lock Type Group Update 20 0.3ms 21
22. AliSQL 改进一览 —— 两个完整的故事 大连接、高并发下数据库稳 定性保障 • • • 问题? 解决方案之一:高低水位限流 解决方案之二:线程池 库存热点更新 • • • • • 问题? 热点优化演进 库存热点优化——V1 库存热点优化——V2 库存热点优化——V3 22
23. AliSQL —— 完整生态体系 23
24. AliSQL —— 未来发展规划 紧跟开源,引领变革, 拓展数据库服务边界,为阿里业务发展赋能 24
25. Thank you !