《基于Apache ShardingSphere打造分布式数据库-数据库管理、开发实践专场(38页).pdf》由会员分享,可在线阅读,更多相关《基于Apache ShardingSphere打造分布式数据库-数据库管理、开发实践专场(38页).pdf(38页珍藏版)》请在三个皮匠报告上搜索。
1、基于Apache ShardingSphere打造分布式数据库京东数科 张亮自我介绍u 京东数科数据研发负责人u Apache孵化项目ShardingSphere负责人u 京东数科分布式事务中间件JDTX负责人u 技术书籍未来架构从服务化到云原生作者分布式数据库核心功能1ShardingSphere的实现与规划2ShardingSphere的开源与社区3目录CONTENTSCONTENTS核心功能自动将数据以强一致、高性能的方式复制至跨机房多副本多数据副本高性能、完全支持ACID原义的分布式事务引擎分布式事务计算节点无状态,可通过水平扩展增加算力;存储节点可以和计算节点分层优化 计算存储分离混
2、合处理OLTP的事务型操作和OLAP的分析型操作HTAP020304010506数据存储不受单机磁盘容量限制,可通过增加数据服务器的数量提升存储能力分布式存储可以随时随地动态的对数据节点进行扩容和缩容弹性伸缩实现方案中间件NewSQL稳定型牺牲部分性能以保证稳定性以及运维经验的复用进取型以高性能换取稳定性的缺失以及运维经验的不足NewSQL的分类Database-as-a-ServiceTransparent Sharding MiddlewareNew ArchitectureWhats Really New with NewSQL?https:/db.cs.cmu.edu/papers/2
3、016/pavlo-newsql-sigmodrec2016.pdf分布式数据库核心功能1ShardingSphere的实现与规划2ShardingSphere的开源与社区3目录CONTENTSCONTENTS1 数据分片2 分布式事务核心功能Features3 弹性伸缩4 分布式治理核心流程SQL解析SQL改写结果归并SQL执行SQL路由分片策略定制化哈希范围标签时间复合u Java类:com.jd.XXXStrategyu 行表达式:t_order_$-uid%81 数据分片2 分布式事务核心功能Features3 弹性伸缩4 分布式治理分布式事务抉择外柔内刚0101XA两阶段提交事务的标
4、准0202Saga源于论文:https:/www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf整合分布式事务Sharding Transaction ManagerSharding-TransactionSharding XATransaction ManagerSharding BASETransaction ManagerSQL RevertAtomikos XA ManagerNarayana XA ManagerBitronixXA ManagerXA Transaction SPIServicecomb ManagerBASE
5、 Transaction SPISharding Data Source本地事务APISeata Manager两阶段事务模型的得失损失收益并发性能可用性提交阶段失败的处理分布式柔性事务模型的得失损失收益一致性&隔离性业务侵入分布式并发性能新一代事务解决方案JDTXJDTX分布式&1PC完全摒弃两阶段提交的透明化实现方案事务原义支持完全支持ACID的强一致事务高性能插入性能高于本地事务查询性能高于分布式事务高可用无中心化架构模型跨多元数据库支持RDBMS、NoSQL、MQ等多元资源JDTX内部架构开启事务LSN生成器更新提交回滚事务处理器恢复引擎MVCC引擎WAL查询本地事务元组更新执行器查询
6、执行器落盘执行器约束校验引擎删除获取更新设计亮点IdeaIdea无UNDO日志通过约束验证来避免使用undo日志提升性能异步刷盘通过WAL和内存的方式异步化刷盘无损事务方案使用本地事务API完全支持ACID活动事务与数据存储分离充分利用数据库存储引擎的稳定性开发成本最小化充分采用论文思路以及第三方开源整合分布式事务Sharding Transaction ManagerSharding-TransactionSharding XATransaction ManagerSharding BASETransaction ManagerSQL RevertAtomikos XA ManagerNar
7、ayana XA ManagerBitronixXA ManagerXA Transaction SPIServicecomb ManagerBASE Transaction SPISharding Data Source本地事务APISeata ManagerSharding JDTXTransaction ManagerJDTX ManagerJDTX Transaction SPI1 数据分片2 分布式事务核心功能Features3 弹性伸缩(孵化中)4 分布式治理范围扩容DB_0DB_1DB_2DB_n弹性迁移OriginDB_0NewDB_0NewDB_1OriginDB_1NewD
8、B_2NewDB_3增量数据存量数据1 数据分片2 分布式事务核心功能Features3 弹性伸缩4 分布式治理020103配置动态化跨机房高可用熔断、禁用、失效转移服务治理权限数据脱敏全链路数据压测SQL审核SQL防火墙数据治理APM调用链应用拓扑图监控报警可观察性功能列表ShardingSphere分布式数据库解决方案数据库协议SQL解析SQL路由SQL改写SQL执行结果归并ConnectorsNative C API,JDBC,ODBC,.NET,PHP,Python,Perl,Ruby,VBJDTXLSNMVCCWAL查询引擎恢复模式弹性伸缩/监控治理/自动化运维工具1 可插拔架构2
9、SQL兼容度提升未来规划Roadmap3 多数据副本4 云原生5 多元数据融合平台云原生数据库业务代码宿主机A数据库集群Sharding-ProxySharding-Sidecar业务代码Service Sidecar业务代码宿主机B业务代码Service SidecarSharding-SidecarSharding-Scaling自动化弹性伸缩原生SQL&本地事务APIMySQL/PostgreSQL Cli/Workbench业务代码宿主机CSharding-JDBC注册中心UI控制台Sharding-OpenTracing可观察性&可视化管理分布式事务Sharding-Transact
10、ion透明化去O业务代码MySQL数据库集群ShardingSphere原生Oracle SQL原生事务API分布式事务Sharding-Transaction业务代码业务代码Oracle业务代码国产数据库评测业务代码MySQL数据库集群ShardingSphere业务代码国产数据库集群产品评测Verification数据校验动态切换分库分表中间件以分布式为核心的可插拔方案Java开发框架多形态&多接入端NewSQL竞品在数据库之上的解决方案重新认识ShardingSphereShardingSphereAll in One的解决方案微内核&开放生态分布式数据库核心功能1ShardingSphere的实现与规划2ShardingSphere的开源与社区3目录CONTENTSCONTENTS参与开源社区收益0101更好的职业生涯公司招聘技术&软技能提升拓展人脉打造个人品牌0202享受乐趣成长成就感社区KEYKEY POINTSPOINTS社区优于代码尊重和信任合作伙伴自动化测试创建自助渠道公开和远程的工作模式多元化的贡献方式技术代码问题调查文档网站设计分享任何事情回答问题翻译https:/shardingsphere.apache.org/community/en/poweredby/100+Companies Powered By ShardingSphere