1. 程式人生 > >支援事務機制的高併發NewSql資料庫設計實戰

支援事務機制的高併發NewSql資料庫設計實戰

NewSQL 是對各種新的可擴充套件/高效能資料庫的簡稱,這類資料庫不僅具有NoSQL對海量資料的儲存管理能力,還保持了傳統資料庫支援ACIDSQL等特性。

NoSQL將改變資料的定義範圍。它不再是原始的資料型別,如整數浮點。資料可能是整個檔案。NoSQL可能會嚇到DBA,因為他們擔心失去他們自己的領域。

NoSQL資料庫是非關係的、水平可擴充套件、分散式並且是開源的。MongoDB的創始人表示NoSQL可作為一個Web應用伺服器、內容管理器、結構化的事件日誌、移動應用程式的伺服器端和檔案儲存的後備儲存。

目前最流行的分散式資料庫有兩類,一個是以Google Spanner為代表,一個是以

AWS Auraro為代表。Spanner shared nothing 的架構,內部維護了自動分片、分散式事務、彈性擴充套件能力,資料儲存還是需要 shardingplan 計算也需要涉及多臺機器,也就涉及了分散式計算和分散式事務

    主要產品代表為TiDBCockroachDBOceanBase等;這三個產品可以說目前話題量不相上下。TiDB屬於國產PingCAP公司的、CockroachDBTiDB早出來一年、OceanBase阿里團隊的,2017年雙11交出4200/秒的處理能力。Auraro 主要思想是計算和儲存分離架構,使用共享儲存技術,這樣就提高了容災和總容量的擴充套件。但是在協議層,只要是不涉及到儲存的部分,本質還是單機例項的

MySQL,不涉及分散式儲存和分散式計算,這樣就和 MySQL 相容性非常高。主要產品代表為 PolarDB

我結合商用業務系統需求,增加了轉換器和協調器,設計瞭如下的資料庫架構,可以解決如下問題;

1. 三層模型構建

2.支援分散式事務

3.支援高併發和可擴充套件