AliSQL性能优化与功能突破的演进之路
如果无法正常显示,请先停止浏览器的去广告插件。
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:
①begin;
②insert normal row;
③update hot row;
④select hot row;
⑤commit;
0.2ms
1 st step
Transaction model:
①begin;
②insert normal row;
③select * from update hot
row;
④commit;
2 nd step
Transaction 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 !