CAP定理: 在一個(gè)分布式計(jì)算機(jī)系統(tǒng)中,一致性,可用性和分區(qū)容錯(cuò)性這三種保證無法同時(shí)得到滿足;
Consistency 一致性
Availability 可用性
Partition Tolerance 分區(qū)容錯(cuò)性
CAP取舍
CP:發(fā)生分區(qū),需要犧牲用戶的體驗(yàn),等待所有數(shù)據(jù)全部一致了之后再讓用戶訪問系統(tǒng)。
AP:發(fā)生分區(qū),為了高可用,每個(gè)節(jié)點(diǎn)只能用本地?cái)?shù)據(jù)提供服務(wù),會(huì)導(dǎo)致全局?jǐn)?shù)據(jù)的不一致性。
理想情況下,單機(jī)數(shù)據(jù)庫 AC 模型
分布式數(shù)據(jù)庫系統(tǒng) CP模型
單機(jī)數(shù)據(jù)庫分布式解決方案:例如mysql
- 垂直拆分
- 水平拆分
- 讀寫分離
帶來問題:
- 業(yè)務(wù)侵入大,維護(hù)成本高
- 帶來分布式事務(wù)問題
分布數(shù)據(jù)庫特性
- 存儲(chǔ)量不受單機(jī)容量限制
- 計(jì)算能力不受單機(jī)資源限制
- 擴(kuò)展性強(qiáng)
- 容錯(cuò)能力強(qiáng)
- 數(shù)據(jù)可靠性高
分布數(shù)據(jù)庫設(shè)計(jì)思路
-
多副本的存儲(chǔ)
保證數(shù)據(jù)一致性 一般KV存儲(chǔ)模型
-
主從模型:
提供數(shù)據(jù)分片路由支持
多副本的存儲(chǔ)方式
技術(shù)難點(diǎn)——熱數(shù)據(jù)問題
- 熱點(diǎn)數(shù)據(jù)
數(shù)據(jù)分快 熱數(shù)據(jù)遷移
解決思路:實(shí)時(shí)調(diào)整塊位置將讀寫頻繁的塊均勻分布在各個(gè)存儲(chǔ)節(jié)點(diǎn);
技術(shù)難點(diǎn)——原子性問題
- 保障多個(gè)Key寫入的原子性
解決思路:一般都遵守Google Percolator分布式事務(wù)。(在這里不具體講)
采取的樂觀鎖的方式,如圖所示:
兩階段提交:Prewrite(預(yù)寫)、commit(提交);并發(fā)沖突提交的問題。
如圖所示:
RocksDB數(shù)據(jù)庫存儲(chǔ)原理
RocksDB:使用C++編寫的嵌入式kv存儲(chǔ)引擎,其鍵值均允許使用二進(jìn)制流。由Facebook基于levelDB開發(fā)。
-
LSM的設(shè)計(jì)依據(jù)
隨機(jī)寫轉(zhuǎn)換成順序?qū)?/p>
優(yōu)化讀性能
-
三種數(shù)據(jù)結(jié)構(gòu)
MenTable
logfile
sstfiles
如下圖:
RocksDB寫入
- 插入
記錄log MenTable寫入新記錄
- 更新
記錄log MenTable寫入新記錄
- 刪除
記錄log MenTable標(biāo)記key刪除
WAL:write-ahead log,確保數(shù)據(jù)不丟失全部是內(nèi)存寫入,沒有磁盤I/O
MenTable寫滿后寫入磁盤,順序I/O。
LSM讀
-
讀MemTable
-
定位sslFile,文件內(nèi)查找
RocksDB首先會(huì)去查看內(nèi)存中的Memtable,如果Memtable中包含key及其對(duì)應(yīng)的value,則返回value值即可;如果在Memtable沒有讀到key,則接下來到同樣處于內(nèi)存中的Memtable中去讀取,類似地,如果讀到就返回,若是沒有讀到,那么會(huì)從磁盤中的SSTable文件中查找。
RocksDB為了提高讀取速遞,增加了讀cache和Bloomfilter。
上面的分布式存儲(chǔ)原理都理解了,那我們具體的tidb的架構(gòu)原理就很簡(jiǎn)單了。
TiDB架構(gòu)
- 基于RocksDB
- Raft一致性協(xié)議
- Etcd存儲(chǔ)元數(shù)據(jù)
- 支持OLTA
- 支持OLAP
MySql遷移到TiDb:數(shù)據(jù)遷移和流量遷移
數(shù)據(jù)遷移:
1、支持主從同步的方式
2、雙寫(MQ)
流量遷移:
1、切讀
2、停雙寫
如下圖所示:
注意的事項(xiàng):
樂觀鎖沖突的問題,使用分布式鎖,串行化處理解決;
-
計(jì)算機(jī)系統(tǒng)
+關(guān)注
關(guān)注
0文章
290瀏覽量
24523 -
分布式
+關(guān)注
關(guān)注
1文章
980瀏覽量
75171 -
CAP
+關(guān)注
關(guān)注
0文章
21瀏覽量
2208
發(fā)布評(píng)論請(qǐng)先 登錄
視頻監(jiān)控中分布式存儲(chǔ)技術(shù)方案
深度解讀分布式存儲(chǔ)技術(shù)之分布式剪枝系統(tǒng)
分布式存儲(chǔ)技術(shù)有哪些
阿里巴巴如何使用分布式存儲(chǔ)技術(shù)

瞄上分布式存儲(chǔ)技術(shù) 京東云投資EasyStack
分布式存儲(chǔ)技術(shù) 從你說了算到大家說了算
區(qū)塊鏈技術(shù)的應(yīng)用有望解決供應(yīng)鏈金融的發(fā)展痛點(diǎn)
分布式存儲(chǔ)技術(shù)之TurboEx超融合郵件系統(tǒng)
分布式存儲(chǔ)技術(shù)將引領(lǐng)著產(chǎn)業(yè)區(qū)塊鏈的發(fā)展
曙光中標(biāo)分布式塊存儲(chǔ)產(chǎn)品集采 中國(guó)移動(dòng)給大訂單
主流分布式存儲(chǔ)技術(shù)的對(duì)比分析與應(yīng)用

阿里巴巴探討新基建下數(shù)字經(jīng)濟(jì)分布式存儲(chǔ)新機(jī)遇
一文知道分布式存儲(chǔ)技術(shù)的發(fā)展歷程
主流分布式存儲(chǔ)技術(shù)對(duì)比分析

評(píng)論