1、主要负责京东数科数据库中间件开发、数据库运维自动化平台开发、生产数据库运维工作。多次参与京东6.18、11.11等大促活动的护航工作。曾负责京东数科数据库自动化平台设计与开发项目,现专注于Apache ShardingSphere分布式数据库中间件开发和发展。乐于在数据库、分布式、中间件、开源社区等相关领域进行学习和探索。多次受邀参加数据库&架构领域的相关会议并进行分享交流。也多次进行在线技术和经验交流分享、公众号文章分享。潘娟京东数科高级DBA&Apache ShardingSphere PPMC京东数科分布式事务JDTX与数据库中间件Apache ShardingSphere的集成之道潘娟
2、 京东数科panjuanapache.org垂直拆分单机数据库水平拆分分布式数据库集群1998年,加州大学的计算机科学家 Eric Brewer 提出分布式系统的三个指标:l Consistency.The client perceives that a set of operations has occurred all at once.l Availability.Every operation must terminate in an intended response.l Partition tolerance.Operations will complete,even if indi
3、vidual components are unavailable.ACIDBASEAtomicity-原子性Consistency-一致性Isolation-隔离性Durability-持久性Basically Available-基本可用Soft State-软状态Eventual Consistency-最终一致性 两阶段事务柔性事务JDTX原子性(回滚)支持服务保证支持一致性强一致最终一致强一致隔离性支持服务保证支持持久性支持支持支持可用性严重衰退略微衰退略微衰退业务改造无一般需要无数据库限制有无无JDTX内部架构开启事务LSN生成器更新提交回滚事务处理器恢复引擎MVCC引擎WAL查询
4、本地事务元组更新执行器查询执行器落盘执行器约束校验引擎删除获取更新原子性&持久性:u 未提交的数据只存在于本地u 异步刷盘机制一致性&隔离性:u 自研MVCC引擎u 自研查询&更新引擎可序列化仅持有一把排他锁读读无法并行可重复读读共享锁和写排它锁互斥读读并行读写&写读不可并行读已提交读共享锁可升级为写排它锁读写并行写读不可并行读未提交读不加锁读写&写读并行写写不可并行Snapshot IsolationSerializableSnapshot Isolation时间线Tx1Tx2Tx3Tx4Tx5Tx6事务发生时间点快照已提交未提交IDNAME1Trista2TonyV1V2V1V2MIN_I
5、DTX_1MAX_IDTX_2DATA_ID1DATA_NAMETrista1设计亮点IdeaIdea刚柔并济刚性事务的强一致性&柔性事务的高可用性异步刷盘通过WAL和内存的方式异步化刷盘异步刷盘分布式&1PC完全摒弃两阶段提交的透明化实现方案活动数据与存储数据分离充分利用数据库存储&计算能力开发成本最小化充分采用论文思路以及第三方开源实现难点DifficultyDifficultyMVCC内核完全实现MVCC机制内存查询引擎内存快照数据与SQL计算表达式的适配数据异步落盘事务只需将数据提交到WAL即可完成提交&落盘引擎负责异步刷盘&旧数据清理高可用绝大部分组件的失效均不影响事务的正常运行&恢
6、复未来规划RoadmapRoadmapSSI实现SQL兼容度提升更多元数据库的支持Driver&Proxy接入端与ShardingSphere对接App2DBApp1App3App2DB1DB2DB3App1App3SApp1MApp2App3writesyncread读写分离水平分片App1S1App2App3M2syncreadS2S3M1M3writeDBDBDBDBManageIntegrateGather数据库集群数据分片分布式事务分布式治理 弹性扩展接入端分布式事