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數據庫集群數據分片分布式事務分布式治理 彈性擴展接入端分布式事務事務集成LocalXAAtomikosNarayanaBASESagaSeata事務自研JDTXJDTXSaga:https:/ 透明化底層分布式事務實現細節,用戶可使用標準API開啟分布式事務。u 支持同時使用數據分片,分布式事務等。u 依據實際場景,用戶可選擇使用不同類型的分布式事務。技術功能特性數據分片分布式事務分布式治理彈性擴展接入端Sharding-JDBCSharding-ProxyApacheShardingSphere(分布式數據庫中間件平臺)活躍社區