- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
剖析云原生数据库中间件生态
Sharding-Sphere
分享大纲
1.分布式数据库系统关注点是什么?
2.在多样化的云环境中,如何去处理各种应用场景
全球数据库流行度排名
RDBMS的优势
• SQL
开发
运维
• DBA
系统
事务
RDBMS的不足
单节点
分布式
数据量受限
• 拆分复杂度问题
• 数据一致性问题
系统单点问题
数据库的进化趋势
NoSQL
• SQL
• SQL
• SQL
• BASE ACID
• 分布式
• ACID
• ACID+BASE
• 分布式
• 分布式
RDBMS
NewSQL
NewSQL的分类
Whats Really New with NewSQL?
New Architecture
Transparent Sharding Middleware
Database-as-a-Service
数据库中间层的优势
• 内核稳定
• 增量革新
• 接入成本低
数据库中间层应具备的能力
分片化
数据分片
观察能力
数据一致性
1
2
3
分布式事务
数据库治理
治理能力
多副本
弹性化
数据分片
核心功能
1
2
3
Features
分布式事务
数据库治理
数据分片
App1
App2
App3
App1
App2
App3
DB
DB1
DB2
DB3
读写分离
S
M1
M2
App2
S2
M3
read
write
sync
sync
App1
App2
App3
App1
App3
read
write
S1
S3
M
引入中间件
App1
App2
App3
数据库中间件
write
M1
M2
M3
sync
read
S1
S2
S3
拆分策略
哈希
复合
时间
范围
非透明
• 业务修改SQL
透明化
• 指定数据源
• 完全屏蔽分片细则
标签
使用示例
数据分片
核心功能
1
2
3
Features
分布式事务
数据库治理
分布式事务:定义
传统事务:ACID
柔性事务:BASE
Atomicity - 原子性
Consistency - 一致性
Isolation - 隔离性
Durability - 持久性
Basically Available - 基本可用
Soft state -软状态
Eventual consistency - 最终一致性
分布式事务:对比
XA
无
柔性事务
实现补偿接口
支持
业务改造
回滚
支持
一致性
隔离性
并发性能
强一致
原生支持
严重衰退
最终一致
实现资源锁定接口
略微衰退
短事务
并发较低
长事务
高并发
适合场景
柔性事务自动化
快照记录
• INSERT
SQL逆向
隔离级别
• 无隔离
• INSERT - DELETE
• UPDATE - UPDATE
• DELETE - INSERT
• 解析
• 版本控制
• 记录锁
• 影子表
• 记录
• UPDATEDELETE
• SELECT
• 记录
数据分片
核心功能
1
2
3
Features
分布式事务
数据库治理
治理 监控
配置动态化
高可用
熔断 禁用 失效转移
安全 权限 脱敏
弹性伸缩 数据迁移
迁移监听
在线双写
离线迁移
切换数据源
清理冗余数据
Sharding-Sphere解决方案
核心功能
数据分片
分布式事务
弹性伸缩
数据库治理
管控界面
Sharding-
Sphere
多数据副本
实现方案
Sharding-JDBC
Sharding-Proxy
Sharding-Sidecar
云原生
无中心
零侵入
Sharding-Sphere:数据分片
SQL解析
查询优化
结果归并
SQL路由
SQL改写
SQL执行
直接路由
标准路由
使用hint
携带分片键
单表 || 绑定表
分片路由
路由引擎
多表 无绑定表
设置类DAL TCL
笛卡尔路由
全库路由
DQL DML DDL
DCL
全库表路由
全实例路由
单播路由
广播路由
不携带分片键
查询类DAL
use database
阻断路由
表名称改写
标识符改写
索引名称改写
Schema改写
正确性改写
排序补列
分组补列
聚合补列
补列
改写引擎
自增主键补列
批量插入拆分
IN查询拆分
分页修正
批量拆分
单节点优化
优化改写
流式归并优化
路由结果
执行引擎
每个连接需执行的SQL数量
内存限制模式
连接限制模式
结果集分组
获取连接
创建执行单元
准
备
阶
锁数据源
段
Size != 1
连接限制模式
执
查询结果集
(流式 || 内存)
行
分组执行
事件发送
阶
段
分布式事务订阅
性能跟踪订阅
流式分组归并
内存分组归并
排序分组列相同
排序分组列不同
查询结果集
(流式 || 内存)
分组归并
排序归并
分组
归并结
文档评论(0)