当前位置:
文档之家› 海量存储和高并发的数据库架构设计实践
海量存储和高并发的数据库架构设计实践
Transaction 2 Begin Transaction
set status=1 where id=1 and status=0
if (affected == 1)
set status=2 where id=1 and status=0
if (affected == 1)
........ ..........
Transaction 2 Begin Transaction
set status=1 where id=1 and status=0
if (d == 1)
set status=2 where id=1 and status=0
if (affected == 1) //affected == 1
02 传统关系库扩展方法论及企业级案例
分库分表—案例分享
➢用户库分表 ➢商品库分表 ➢系统消息库分表
存储均匀&访问均匀 -> 取模
手机号查询怎么办?
02 传统关系库扩展方法论及企业级案例
分库分表—案例分享
➢用户库分表 ➢商品库分表 ➢系统消息库分表
查询自己发布的商品
02 传统关系库扩展方法论及企业级案例
if (affected == 1)
commit
set status=2 where id=1 //blocking and status=0
if (affected == 1) //affected == 0
不会 进入
commit
03 新方向探索—分布式关系数据库应用实战
乐观锁处理方式
Transaction 1 Begin Transaction
commit
commit
03 新方向探索—分布式关系数据库应用实战
悲观锁处理方式
Transaction 1 Begin Transaction
Transaction 2 Begin Transaction
........ ........
set status=1 where id=1 and status=0
➢用户库分表 ➢商品库分表 ➢系统消息库分表
时效性强 冷热数据拆分
02 传统关系库扩展方法论及企业级案例
分库分表—案例分享
➢分表分少了怎么办?
02 传统关系库扩展方法论及企业级案例
分库分表—案例分享
业务修改路由算法,后台清理数据
03
新方向探索—分布式关系数据库应用实践
03 新方向探索—分布式关系数据库应用实战
TiDB Slave
03 新方向探索—分布式关系数据库应用实战
NewSQL 数据库 乐观锁问题 业务场景——手机通知栏推送 ➢用户 — 设备ID 映射 ➢数据变更场景
1账号登陆多手机 1手机登陆多账号
uid token version ts
U2
P1
XXX 1XXXX
U2
P2
XXX 1XXXX
U3 default XXX 1XXXX
分布式存储
分布式存储,副本集数据同步,提供良好的水平扩展能性
分片存储
数据分片存储,分片内主从同步,提供数据路由解决方案
存储计算分离
存储节点、计算节点均可水平扩展,持续提升系统吞吐量
03 新方向探索—分布式关系数据库应用实战
NewSQL 数据库引入测试
读写均匀
读多写少
03 新方向探索—分布式关系数据库应用实战
优化业务,过滤默认值的数据
03 新方向探索—分布式关系数据库应用实战
NewSQL 数据库 乐观锁问题
商品状态流转
id
status
ts
bis
➢发布者下架商品 0-1
1
0//可售
XXX
XXX
➢买家拍下商品 0-2
2
1//下架
XXX
XXX
3
2//拍下
XXX
XXX
Transaction 1 Begin Transaction
模拟业务场景测试 ➢选择场景
I M 联系人列表
➢测试验证
构造数据 模拟流量
03 新方向探索—分布式关系数据库应用实战
NewSQL 数据库数据迁移 ➢数据迁移
主从同步 双写
➢流量迁移
切读 停双写
网关层
业务逻辑层
MQ
数据访问层
write
read
MySQL Master
sync
数据访问层
write
分库分表—案例分享
➢用户库分表 ➢商品库分表
两个维度查询必须满 足 映射表太重
➢系统消息库分表
pub pub
02 传统关系库扩展方法论及企业级案例
分库分表—案例分享
➢用户库分表 ➢商品库分表 ➢系统消息库分表
时效性强 冷热数据拆分
思考:有效期30天
02 传统关系库扩展方法论及企业级案例
分库分表—案例分享
道阻且长,没有万金油....
02
传统关系库扩展方法论及企业级案例
02 传统关系库扩展方法论及企业级案例
垂直
垂直拆分:按业务隔离 垂直拆表:宽表变窄表
水平
横向扩展,提升系统存储量
冷热
热库抗线上流量 冷库数据归档
02 传统关系库扩展方法论及企业级案例
分库分表—案例分享
➢用户库分表 ➢商品库分表 ➢系统消息库分表
海量存储和高并发的数据库 架构设计与实践
技术创新,变革未来
目录
01
海量业务数据存储方案对比分析
02
传统关系库扩展方法论及企业级案例
03
新方向探索—分布式关系数据库应用实践
01 海量业务数据存储方案对比分析
数据拆分
分布式事务 数据路由
分布式存储
兼容问题 业务适配
我们应该如何选择
数据拆分:分库分表方案带来的数据路由和分布式事务等 复杂问题全部抛给了业务; 分布式存储:学习成本和不可预知的兼容问题,让我们不 敢轻易尝试;
//MQ or RPC!如何回滚?
........ ........
commit
commit //commit失败
使用分布式锁,串行化处理
要点回顾
01
海量业务数据存储方案对比分析
02
传统关系库扩展方法论及企业级案例
03
新方向探索—分布式关系数据库应用实践
谢谢聆听!
20