腾讯云原生数据库架构探索与实践
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2. 腾讯云原生数据库架构探索与实践
3. 目录
01 背景:架构介绍
02 实践:场景突破
03 演进:深入探索
4. 概览:架构与特性
5. 产品背景
存储容量
传统架构
问题
1、磁盘容量有限
2、扩容对业务影响大
3、分库分表对业务影响大,分
布式事务问题多
用户需求
技术方案
可靠性
可用性
1、普通复制(binlog)可能丢 1、HA、恢复速度慢(RTO分钟
失数据(RPO>0) 级)
2、同步复制性能差 2、副本时延大(分钟级-小时级)
1、大于100T容量 1、不能丢失数据(RPO=0)
2、快速、透明扩容 2、多副本容灾
1、云存储:理论无上限,多副本可靠性,持续备份,归档等
水平扩展
1、水平扩展需要完整数据库副本,
产生大量IO
2、只读副本部署速度慢(分钟级
-小时级)
1、快速HA、恢复(RTO秒级)、
回档
1、秒级副本扩展
2、更小的副本时延(毫秒级)
1、数据分片:并行恢复和回档
2、物理复制:页面粒度并行复制
1、共享存储:减少大量冗余IO
6. 架构设计
MySQL
Master
TDSQL-C
Slave
Primary
Replica
TXStore
Disk
Segment
Disk
Cell
Segment
Segment
Cell
Segment
Cell
Cell
Backup(Files)
Backup(Snapshot)
COS
Data
l
产品形态:一写多读
COS
Binlog
l
一致性:延迟一致性
Redo log
l
I/O形态:日志传输
Data(Read)
Metadata
l
主从同步:物理日志
l
持久化:可计算存储
7. 可计算存储
InnoDB
Redo log
Remote I/O System
Storage Node Storage Node Storage Node
Cell Cell Cell Cell Cell Cell
Cell Cell Cell Cell Cell Cell
… … … … … …
Storage Client
1
Versioned Block
3
Hot Log
4
Block
2
Storage
Storage Pool
Sync
ü
ü
ü
ü
日志按照所属页面分片
分片包含独立的日志和数据
三副本存储
存储池最小1M物理分配单元
1.
2.
3.
4.
5.
6.
传输日志到存储节点
持久化日志
通知客户端日志完成持久化
回放日志到数据页面
持久化新版本页面
回收日志和页面
5
Async
6
Storage Node
8. 目录
01 背景:架构介绍
02 实践:场景突破
03 演进:深入探索
9. 突破一:Serverless
场景
- 开发测试场景,低频使用数据库
- IoT,边缘计算,SaaS平台,负载变化频繁
特性
智能极致弹性:极速启停,根据负载启停实例。无感知扩缩容,按需扩
容,自动缩容
按需计费: 按实际使用的计算和存储量计费,不用不付费。按秒计量,
按小时结算。
10. 极速启停
•
DB process
- Buffer Pool使用共享内存,从计算节点分离
R/W
Shared
memory
独立buffer pool
- 缩短实例启动和恢复的时间,启动后性能无明
显衰减
Buffer Pool
•
Load
并行恢复
- 计算层卸载恢复逻辑
Storage
node
Cell
Cell
Cell
- 存储层多分片并行恢复
- 页面版本化按需回放
•
启动优化
- Buffer pool并行初始化
- Rollback segment并行初始化
- 表锁恢复优化
•
快速停机
- 卸载刷脏,日志落盘即可停机
11. 极致伸缩
- 段管理以1M的extent为最小单位
page
Full extent
page
page
Full extent
page
- 存储池物理分配单元为1M
Full extent
Full extent
的回收
Segment
Not Full extent Not Full extent
Free extent Free extent
Not Full extent
Not Full extent
Free extent
Free an extent
Storage Pool
- 段空闲链表中extent达到一定数量时触发存储池
- 提供真正意义上的按需计费能力
12. 突破二:IO Bound优化
- 中小规格实例,内存规格远小于数据容量
CPU
Buffer Cache
- 超大规格实例,内存规格触及上线
DRAM
Persistent
Memory
Secondary
Cache
- Remote IO放大IO bound场景影响
SDD
Remote IO=Net+SDD
Capacity
- IO bound场景性能较差
Data
13. 二级缓存
Primary
Replica
二级缓存:
Client
Client
针对普遍存在的IO Bound场景,在计算层引入独
Cache File
Txstore
Log
Cell
Page
Log
Buffer
Remote lO
Log Apply Thread
Replication
Log
Disk
Page
Local lO
Undo
page
Buffer Pool
Log
Log
Data
page
Remote lO
Page
Disk
Cell
Page
………
Buffer Pool
Data
page
立于Buffer Pool的二级缓存,利用非易失存储等
Memory
Memory
Log
Cell
Page
新硬件的能力,提供快速高效的热数据访问能力
Undo
page
Local lO
Cache File
效果:
随着数据量的增大,性能平均提升100%以上
14. Instant DDL
Row1
• Instant DDL
Row2
- 新增列
Row3
SYS_COLUMN
INSTANT TABLES
- 修改列类型
- 删除列
• 并行rebuild
- 并行扫描
Parse columns
Header Row1
Header ins info1
Header
ins info2
ins info
Row2
Row3
- 并行导入
15. 突破三:持续备份,并行回档
Compute Node
Apply
Data redo
log
- 自治备份:存储分片根据备份点进行独立备份,同时做到
Apply
Data
o l
自治
备份
redo
log
Storage
redo
log Data redo
log Data
Data redo
log
- 并行回档:每个分片并行查找数据全量/增量备份,并行回
Snapshot
Apply
放日志
Data
Apply
Snapshot
redo
log
并行
回档
Storage
备份全局一致性备份
redo
log Data redo
log Data
持续备份:持续的无感知备份,独立并行,秒级备份;
并行回档,GB级回档速度
16. 目录
01 背景:架构介绍
02 实践:场景突破
03 演进:深入探索
17. Global standby
Primary
Standby
Client
Client
- 极致性能:Log store提升日志响应速度和整体吞
Memory
Memory
Buffer Pool
Data
page
Buffer Pool
Log
Buffer
Undo
page
吐量,提供极致的写性能
Log Apply Thread
Data
page
Undo
page
- 跨region读:提供可用性更高的、跨region的只
读服务
Remote lO
Log
Log
Log Store
Replication
Log
Page
- 金融级可靠性:跨region灾备,打造超高级别的
Log Store
Log
Cell
Page
Log
Txstore
Remote lO
Page
Cell
Page
Txstore
Log
Cell
Page
Log
Cell
Page
数据可靠
18. 深度优化
MySQL
Checkpointed Data
打破常规:日志即数据和页面版本化,为内核的深度优
Redo log
化提供了新的方法
checkpoint
VDL
- 页面淘汰:页面淘汰不再与日志持久化关联,快速
Data File
淘汰页面,保证并发稳定性
TDSQL-C
- 分区读写:多线程对一个页面进行分区读写,提升
Checkpointed Data
读写并发能力
checkpoint
&
VDL
Base page point
DL(cell)
- 远程写:特定页面远程写
19. 分区多写
DB Proxy
R/W
state
exchange
DB Process
push
DB Proxy
R/W
DB Proxy
state
exchange
DB Process
- 数据集分区
R/W
DB Process
- 多节点读写
- 日志传输
pull
Log Store
- 全局事务
Distributed log
Private log
Remote log
DB group
DB Unit
DB Unit
DB Unit
20. 关注“腾讯云数据库”官方微信
体验小程序一键管理数据库
获取数据库技术干货和最新资讯
21.