MyCAT、DRDS、TIDB、TDSQL、TBase 在實現分散式事務時的區別及其各自的優勢?
TBase是基於PostgreSQL開發的企業級分散式HTAP資料庫,這裡介紹下TBase在分散式事務方面的一些經驗:
**1.傳統基於MVCC+2PC+GTM做的分散式事務,在高併發的情況下這種基於GTM全域性快照的設計會在GTM上有比較大的效能壓力。**一個是GTM加鎖遍歷生成全域性快照中活動事務列表計算的開銷以及鎖衝突開銷,另一個是高併發下活動事務列表過大導致快照大小膨脹帶來的網路開銷。這兩點導致這種設計在高併發情況下效能受限。
**2.Google Spanner基於原子時鐘和true time api實現了一致性的分散式事務,但需要昂貴的裝置支援。**Google Percolator採用全域性時鐘提供一致性分散式事務,但Percolator在一階段提交時需要遍歷資料將鎖資訊寫入到資料單位,二階段時又需要遍歷資料釋放鎖寫入提交時間戳等資訊。事務提交開銷變大且與資料量相關。
**3.TBase在參考Spanner/Percolator的基礎上,為避免上述效能問題,創新性的結合MVCC+2PC提出了一種輕量級的基於全域性時鐘(GTS)的一致性分散式協議及演算法。**主要思路是在兩階段提交中的prepare階段作為全域性同步點結合GTS的原子遞增性保證多節點間的資料一致性和隔離性。基本消除GTM的網路開銷問題,並將GTM單點壓力分散到分散式多節點中。主要從以下幾個方面進行優化:
MVCC從基於全域性快照事務ID+事務狀態的可見性判斷,優化為基於GTS+事務狀態的可見性判斷在當前節點prepare到收到commit通知之前會有事務鎖保證全域性一致
為了避免Percolator的提交開銷變大的情況,TBase在提交時只記錄一次事務提交GTS到時間戳日誌,避擴音交開銷。
後續進行可見性判斷時,結合時間戳日誌判斷事務狀態,且對時間戳日誌進行快取加速。隨後在tuple的header記錄中快取事務狀態及提交GTS資訊,進一步加速後續掃描的可見性判斷。
1.TBase同時對MVCC空間回收進行改造,融入到基於GTS的一致性分散式事務中。
2.優化後GTM只負責分配全域性時間戳,且設計了一種多核可擴充套件的全域性原子遞增時間戳演算法進一步提高單點GTS分配效能。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940575/viewspace-2794928/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 本地事務和分散式事務的區別分散式
- 分散式事務(3)---RocketMQ實現分散式事務原理分散式MQ
- 分散式事務(4)---RocketMQ實現分散式事務專案分散式MQ
- 分散式事務的幾種實現方式分散式
- 分散式事務(一)—分散式事務的概念分散式
- 資料庫分散式事務的實現原理!資料庫分散式
- RocketMQ在基金大廠的分散式事務實踐MQ分散式
- TCC和兩階段分散式事務處理的區別分散式
- 騰訊雲TDSQL MySQL版 - 開發指南 分散式事務MySql分散式
- 分散式鎖及其實現分散式
- MySQL 中基於 XA 實現的分散式事務MySql分散式
- 基於RocketMQ實現分散式事務MQ分散式
- 使用Spring Boot實現分散式事務Spring Boot分散式
- SpringCloud+RocketMQ實現分散式事務SpringGCCloudMQ分散式
- Apache ShardingSphere 如何實現分散式事務Apache分散式
- 分散式事務及其CAP和base理論分散式
- Seata 無侵入式分散式事務服務的實現基石-JDBC篇分散式JDBC
- sem和seo有什麼區別?各自的優劣勢是什麼?
- 「分散式」實現分散式鎖的正確姿勢?!分散式
- 使用CRDT實現分散式事務的資料推薦分散式
- 基於Seata探尋分散式事務的實現方案分散式
- 分散式事務實戰分散式
- Java微服務下的分散式事務介紹及其解決方案2Java微服務分散式
- 分散式事務之資料庫事務與JDBC事務實現(一)分散式資料庫JDBC
- AspNetCore&MassTransit Courier實現分散式事務NetCore分散式
- Golang 實現 Redis(8): TCC分散式事務GolangRedis分散式
- php基於dtm分散式事務管理器實現tcc模式分散式事務demoPHP分散式模式
- 各種分散式事務的實現方式適用的場景分散式
- MySQL資料庫分散式事務XA的實現原理分析MySql資料庫分散式
- 分散式事務與Seate框架(3)——Seata的AT模式實現原理分散式框架模式
- 分散式事務之JTA原理與實現(三)分散式
- kratos分散式事務實踐分散式
- Spring/SpringBoot中的宣告式事務和程式設計式事務原始碼、區別、優缺點、適用場景、實戰Spring Boot程式設計原始碼
- 分散式鎖的區別分散式
- 分散式事務之事務實現模式與技術(四)分散式模式
- 如何實現一個TCC分散式事務框架的一點思考分散式框架
- 分散式訊息佇列RocketMQ--事務訊息--解決分散式事務的最佳實踐分散式佇列MQ
- TiDB 分散式資料庫在轉轉公司的應用實踐TiDB分散式資料庫