Calvin:分割槽資料庫系統的快速分散式事務
這篇論文是由耶魯大學的一組電腦科學家發表的,很好地討論了分散式事務的問題,解釋了為什麼它很複雜,以及為什麼許多分散式資料庫決定完全放棄事務以簡化操作。然後它引入了一個非常有趣的想法,即透過確定性鎖定方案避免昂貴的提交協議。
Calvin 本身並不是一個資料庫,它就像論文中描述的那樣“ ......一個實用的事務排程和資料複製層...... ”。Calvin 使用確定性排序保證來顯著降低與分散式事務相關的通常令人望而卻步的爭用成本。
Calvin 旨在與非事務性儲存系統一起執行,將其轉換為無共享的近線性可擴充套件資料庫系統,提供高可用性和完整的 ACID 事務。這些事務可能跨越分佈在叢集中的多個分割槽。Calvin 透過在儲存系統之上提供一個層來實現這一點,該層處理分散式事務的排程,以及系統中的複製和網路通訊。
在本文的其餘部分,我們將討論分散式事務問題的概述以及 Calvin 如何解決這個問題,然後我們將快速概述 Calvin 的體系結構以及一切如何協同工作以使之前的承諾成為可能。
Calvin 實現低成本分散式事務和同步複製的方法如下:當多臺機器需要就如何處理特定事務達成一致時,它們會在事務邊界之外進行處理——也就是說,在它們獲取鎖並開始執行事務之前。一旦就如何處理事務達成一致,就必須按照計劃執行完成——節點故障和相關問題不會導致事務中止,因為故障節點可以從執行相同計劃的副本中恢復平行或透過重播它的歷史。並行計劃執行和計劃歷史的重放都要求活動計劃是確定性的——否則副本可能會發散或歷史可能會錯誤地重複。
Calvin 依賴於複製事務輸入而不是效果,並且因為執行計劃(執行所有事務的順序)是確定性的,並且對於接下來嘗試哪個事務存在全域性協議,Calvin 不需要進行重做日誌記錄,例如,而不是像 Aurora 這樣支援事務可交換性的其他資料庫系統。
Calvin架構
Calvin 旨在充當任何實現基本 CRUD 介面(建立/插入、讀取、更新和刪除)的儲存系統之上的可擴充套件事務層。
Calvin 由 3 個主要部分組成:
- Sequencer:負責攔截事務並將事務放入全域性事務輸入序列中。它還負責複製。
- 排程器:它負責使用確定性鎖定方案來協調事務執行,以保證與排序器指定的序列順序等效,同時允許事務由事務執行執行緒池併發執行。
- 儲存:負責處理所有物理資料佈局。Calvin 事務使用簡單的 CRUD 介面訪問資料,因此任何支援類似介面的儲存引擎都可以相當容易地插入 Calvin。
更多點選標題
相關文章
- 資料庫系統設計:分割槽資料庫
- 深入理解分散式系統:分割槽、複製、分散式事務以及系統一致性與共識分散式
- 事務、全域性索引、透明分散式,再見,分割槽健!索引分散式
- 分散式系統(三)——分散式事務分散式
- 資料庫分散式事務的實現原理!資料庫分散式
- 分散式事務之資料庫事務與JDBC事務實現(一)分散式資料庫JDBC
- 分散式系統中的事務問題分散式
- 分散式資料庫系統(DDBS) 概述分散式資料庫
- 評價分散式事務資料庫的5個標準分散式資料庫
- MySQL資料庫分散式事務XA的實現原理分析MySql資料庫分散式
- 分散式事務(一)—分散式事務的概念分散式
- 著名的分散式事務資料庫谷歌Spanner設計有坑!分散式資料庫谷歌
- 分散式資料庫事務故障恢復的原理與實踐分散式資料庫
- Zabbix系統MySQL資料庫分割槽表的設定--精簡說明MySql資料庫
- Dgraph 1.2.8 釋出,事務性分散式圖形資料庫分散式資料庫
- 從 Oracle 轉型 MySQL 分散式事務資料庫的實戰旅途OracleMySql分散式資料庫
- 【大資料】BigTable分散式資料儲存系統分散式資料庫 | 複習筆記大資料分散式資料庫筆記
- 【系統設計】分散式鍵值資料庫分散式資料庫
- 又出現異常資料?來剖析一下分散式系統中的「事務」分散式
- 運維實戰:Linux系統擴充套件oracle資料庫所在的分割槽運維Linux套件Oracle資料庫
- 分散式系統技術:儲存之資料庫分散式資料庫
- Springboot資料庫事務處理——Spring宣告式事務Spring Boot資料庫
- Android系統常用分割槽Android
- E6 資料庫分割槽技術資料庫
- 使用CRDT實現分散式事務的資料推薦分散式
- 分散式事務(3)---RocketMQ實現分散式事務原理分散式MQ
- 重灌系統導致分割槽丟失的資料恢復案例資料恢復
- MySql資料分割槽操作之新增分割槽操作MySql
- 【伺服器資料恢復】XFS檔案系統分割槽分割槽丟失無法訪問的資料恢復案例伺服器資料恢復
- 【北亞資料恢復】伺服器重灌系統後分割槽消失和分割槽不可訪問的資料恢復案例資料恢復伺服器
- 分散式事務和分散式hash分散式
- 分散式系統(Distributed System)資料分散式
- MyCat 啟蒙:分散式系統的資料庫架構演變分散式資料庫架構
- 分散式資料庫分散式資料庫
- 調整分割槽後分割槽不見的資料找到方法
- 分散式事務(4)---RocketMQ實現分散式事務專案分散式MQ
- Linux系統中分割槽是什麼?Linux系統分割槽方式有幾種?Linux
- 你應該瞭解的一些資料庫概念!RDBMS vs NoSQL,分散式 vs 叢集 ,分割槽 分表 分片 分庫資料庫SQL分散式