亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

TiDB 官方設計文檔翻譯(二)

2024-07-21 02:52:54
字體:
來源:轉載
供稿:網友

這個系列共三篇譯文: TiDB 官方設計文檔翻譯(一) TiDB 官方設計文檔翻譯(二) TiDB 官方設計文檔翻譯(三)

原文: https://pingcap.github.io/blog/2016/10/17/how-we-build-tidb/

5 如何開發

在本節中,將介紹TiKV和TiDB的架構和核心技術。

5.1 架構

這里寫圖片描述

關于TiKV架構,讓我們從下往上看。

最底層,RocksDB。上一層,Raft KV,是一個分布式層。MVCC,Multiversion并發控制。 我相信很多人都熟悉MVCC。 TiKV是一個多版本的數據庫。 MVCC使我們能夠支持無鎖讀取和ACID事務。事務層:事務模型的靈感來自Google的Percolator。 它主要是一個優化的兩階段提交協議。 此模型依靠時間戳分配器為每個事務分配單調遞增時間戳,因此可以檢測沖突。 稍后會詳細說明。KV API:它是一組編程接口,并允許開發人員put或get數據。Placement 驅動程序:Placement 驅動程序是非常重要的部分,它有助于實現地理復制,水平伸縮和分布式事務。 它是集群的大腦。

這里寫圖片描述

關于TiDB架構:

MySQL客戶端:頂層是一系列MySQL客戶端。 這些客戶端向下一層發送請求。 你仍然可以使用任何你已經熟悉的MySQL驅動程序。負載均衡器:這是一個可選層。 如HAPRoxy或LVS。TiDB服務器:它是無狀態的,客戶端可以連接到任何TiDB服務器。 在TiDB服務器中,頂層是MySQL協議,它提供MySQL協議支持; 下一層是SQL優化器,用于將MySQL請求翻譯為TiDB SQL。底層是KV API和分布式SQL API(DistSQL API)。 如果底層存儲引擎支持協處理器,TiDB SQL Layer將使用DistSQL API,這比KV API高效得多。 TiDB支持可插拔存儲引擎。 我們建議TiKV作為默認存儲引擎。

5.2 TiKV核心技術

讓我們來看看TiKV核心技術。

我們構建TiKV作為分布式鍵值層以存儲數據。

5.2.1 TiKV軟件堆棧

讓我們來看看軟件堆棧。

這里寫圖片描述

首先,我們可以看到有一個客戶端連接到TiKV。 我們還有幾個TiKV節點。 在每個節點內,有一個store存儲在物理磁盤。 在每個store里面有很多region。 region是數據移動的基本單位,根據Raft協議進行復制。 每個Region都復制到幾個節點。 Raft Group由一個Region的副本組成。 Region更像是一個邏輯概念,在單個store中,許多Region可能共享相同的Rocksdb實例。

5.2.2 Placement Driver

關于Placement Driver,這個概念來自Google Spanner的原始文件。 它提供了整個集群的信息。 它有以下職責:

存儲元數據:客戶端有每個Region的位置信息的緩存。維護復制約束,默認情況下為3個副本。處理數據移動從而實現。 當Placement Driver注意到負載太高時,它將重新平衡數據或使用Raft轉移領導權。

感謝Raft,Placement Driver也是一個高可用的集群。

5.2.3 Raft

在TiKV中,我們使用Raft進行縮放和復制。 我們有多個Raft組。 工作負載分布在多個region。 在一個大集群中可能有數百萬個region。 一旦region太大,它將被分裂成兩個較小的區域,就像細胞分裂。

下面我將展示橫向擴容的過程。

這里寫圖片描述

如上圖所示,我們有4個節點,即節點A,節點B,節點C和節點D。還有3個Region,Region1,Region2和Region3。節點A上有3個Region。

為了平衡數據,需要添加一個新節點,節點E。第一步是將領導權從節點A上的Region1的副本傳輸到節點B上的副本。

這里寫圖片描述

第二步,給節點E添加Region1的副本

這里寫圖片描述

第三步,從節點A中刪除Region1的副本。

這里寫圖片描述

現在數據是平衡的,集群從4個節點擴展到5個節點。

這就是TiKV如何擴容。 讓我們看看它如何處理自動故障轉移。

5.2.4 MVCC

每個事務在此事務的開始時間看到數據庫的快照。 在事務提交之前,其他事務將不會看到此事務所做的任何更改。數據使用以下格式的版本標記:Key_version:value。MVCC還確保無鎖快照讀取。

5.2.5 事務

這些是事務API。 作為一個程序員,我想編寫如下代碼:

txn := store.Begin() // start a transactiontxn.Set([]byte("key1"), []byte("value1"))txn.Set([]byte("key2"), []byte("value2"))err = txn.Commit() // commit transactionif err != nil {txn.Rollback()}

說到事務,它主要是一個優化過的兩階段提交協議。 在事務模型中,有3個列族,即cf:lock,cf:write和cf:data。

cf:lock:未提交的事務正在寫此單元格,并包含主鎖的位置/指針。 對于每個事務,我們選擇一個主鎖來指示事務的狀態。cf:write:它存儲數據的提交時間戳cf:data:存儲數據本身

讓我們看一個例子:Bob想要給Joe轉7美元。

初始狀態:Joe有2美元,Bob有10美元。

這里寫圖片描述

轉賬事務通過寫入lock列鎖定Bob的帳戶開始。 此鎖是事務的主鎖。 事務將開始時間戳7寫入數據。

這里寫圖片描述

事務現在鎖定Joe的帳戶,并寫入Joe的新余額。 鎖是事務的二級鎖,并包含對主鎖的引用; 所以我們可以使用這個二級鎖找到主鎖。

這里寫圖片描述

事務現在已達到提交點:刪除主鎖,并在新時間戳(提交時間戳)8處用寫記錄替換它。寫記錄包含指向存儲數據的時間戳的指針。 將來讀行“Bob”中的列“bal”將看到值$ 3。

這里寫圖片描述

通過添加寫記錄并在次要單元刪除鎖來完成事務。 在這種情況下,只有“Joe”一行。(譯者注:這里數字應該是寫錯了,變成轉賬4美元了,領會原作者的核心意思就好)

這里寫圖片描述

下面是事務完成時的樣子

這里寫圖片描述

說明 如有轉載,請注明出處 http://blog.csdn.net/antony9118/article/details/60470115


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕精品—区二区| 精品国产一区二区三区久久久| 精品成人国产在线观看男人呻吟| 国产精品久久久久高潮| 九色成人免费视频| 97在线视频免费| 日韩一区av在线| 日本精品性网站在线观看| 中文字幕少妇一区二区三区| yw.139尤物在线精品视频| 97超视频免费观看| 日韩欧美在线国产| 亚洲成人精品av| 岛国视频午夜一区免费在线观看| 爽爽爽爽爽爽爽成人免费观看| 色妞一区二区三区| 久久久精品国产亚洲| 亚洲免费av片| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美激情一区二区三区久久久| 国产精品爱久久久久久久| 久久久久一本一区二区青青蜜月| 成人中文字幕+乱码+中文字幕| 国模gogo一区二区大胆私拍| 精品人伦一区二区三区蜜桃免费| 国产裸体写真av一区二区| 精品日本高清在线播放| 国产激情视频一区| 欧美日韩国产激情| 精品香蕉一区二区三区| 亚洲人成伊人成综合网久久久| 欧美国产中文字幕| 欧美午夜宅男影院在线观看| 久久久久久91香蕉国产| 日韩av男人的天堂| 久久综合亚洲社区| 亚洲欧美激情四射在线日| 国产精品中文字幕在线观看| 欧美大片在线看| 国产精品福利小视频| 欧美日韩亚洲精品一区二区三区| 亚洲人成在线观看网站高清| 国产一区二区三区在线播放免费观看| 久久99精品视频一区97| 久久久久这里只有精品| www.日本久久久久com.| 26uuu另类亚洲欧美日本老年| 亚洲精品国产精品久久清纯直播| 日韩av资源在线播放| 性视频1819p久久| 蜜臀久久99精品久久久久久宅男| 久久久久久久久电影| 国产91精品高潮白浆喷水| 久久精品国产欧美亚洲人人爽| 97超级碰碰人国产在线观看| 中文字幕亚洲欧美日韩在线不卡| 国产在线视频一区| 欧美激情一级欧美精品| 亚洲美女免费精品视频在线观看| xxx欧美精品| 国产日韩欧美夫妻视频在线观看| 国产九九精品视频| 国产aaa精品| 亚洲最新av网址| 日韩av手机在线看| 国产精品嫩草影院久久久| 国外成人在线视频| 国产亚洲精品久久久久久| 亚洲成av人影院在线观看| 91精品久久久久久久久久| 亚洲一区中文字幕| 精品久久久91| 国产精品69久久久久| 成人在线中文字幕| 国产精品爱久久久久久久| 视频一区视频二区国产精品| 欧美美最猛性xxxxxx| 91探花福利精品国产自产在线| 欧美精品做受xxx性少妇| 午夜精品福利视频| 亚洲欧洲午夜一线一品| 日韩在线观看免费| 国产精品久久久亚洲| 这里只有精品视频| 国产精品美女999| 久久伊人精品视频| 亚洲专区中文字幕| 国产精品色婷婷视频| 中文字幕日韩精品有码视频| 亚洲精品国产福利| 欧美午夜美女看片| 伊人伊成久久人综合网小说| 亚洲精品久久久久久久久久久| 成人啪啪免费看| 2021久久精品国产99国产精品| 亚洲国产婷婷香蕉久久久久久| 亚洲最新av在线| 欧美在线视频观看免费网站| 久久久国产影院| 国产精欧美一区二区三区| 欧美贵妇videos办公室| 欧美一级大胆视频| 国产精品成人免费视频| 日韩美女av在线免费观看| 中文字幕精品一区久久久久| 亚洲天堂男人天堂女人天堂| 国产精品尤物福利片在线观看| 26uuu亚洲伊人春色| 78色国产精品| 成人免费视频网址| 色狠狠av一区二区三区香蕉蜜桃| 亚洲欧美日韩第一区| 97视频在线观看网址| 国产91精品久久久久久| 6080yy精品一区二区三区| 亚洲精品久久久久中文字幕欢迎你| 97在线视频国产| 日韩av电影国产| 国产精品一区二区三区久久| 98精品国产高清在线xxxx天堂| 日韩av免费看网站| 91在线高清免费观看| 国产91色在线|免| 有码中文亚洲精品| 国产精品99久久久久久久久| 啊v视频在线一区二区三区| 最新91在线视频| 国产va免费精品高清在线观看| 2020久久国产精品| 国产精品国产亚洲伊人久久| 日韩乱码在线视频| 国产成人一区三区| 欧美黄色片免费观看| 国产有码一区二区| 国产精品盗摄久久久| 精品国产精品自拍| 91久久久久久久一区二区| 欧美老女人www| 亚洲免费视频观看| 韩国一区二区电影| 亚洲男人天堂九九视频| 国模吧一区二区三区| 国产在线精品成人一区二区三区| 一本一本久久a久久精品综合小说| 欧美亚洲午夜视频在线观看| 日本精品久久久久久久| 成人性生交大片免费看视频直播| 久久视频这里只有精品| 亚洲欧美日韩国产精品| 精品人伦一区二区三区蜜桃免费| 亚洲无限乱码一二三四麻| 成人在线小视频| 国产91色在线|免| 欧美午夜宅男影院在线观看| 欧美多人乱p欧美4p久久| 欧美黄色免费网站| 日韩亚洲在线观看| 国产成人+综合亚洲+天堂| 国产精品久久久久91| 中文字幕视频一区二区在线有码| 国产不卡一区二区在线播放| 精品亚洲一区二区三区四区五区| 黑人巨大精品欧美一区二区免费| 麻豆国产精品va在线观看不卡|