0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

分布式存儲的技術原理

jf_78858299 ? 來源:老李說架構之道 ? 作者: 夢海飛翔 ? 2023-02-15 15:38 ? 次閱讀

CAP定理: 在一個分布式計算機系統(tǒng)中,一致性,可用性和分區(qū)容錯性這三種保證無法同時得到滿足;

Consistency  一致性
Availability 可用性
Partition Tolerance 分區(qū)容錯性

CAP取舍

CP:發(fā)生分區(qū),需要犧牲用戶的體驗,等待所有數(shù)據(jù)全部一致了之后再讓用戶訪問系統(tǒng)。

AP:發(fā)生分區(qū),為了高可用,每個節(jié)點只能用本地數(shù)據(jù)提供服務,會導致全局數(shù)據(jù)的不一致性。

理想情況下,單機數(shù)據(jù)庫 AC 模型

分布式數(shù)據(jù)庫系統(tǒng) CP模型

單機數(shù)據(jù)庫分布式解決方案:例如mysql

  • 垂直拆分
  • 水平拆分
  • 讀寫分離

帶來問題:

  • 業(yè)務侵入大,維護成本高
  • 帶來分布式事務問題

分布數(shù)據(jù)庫特性

  • 存儲量不受單機容量限制
  • 計算能力不受單機資源限制
  • 擴展性強
  • 容錯能力強
  • 數(shù)據(jù)可靠性高

分布數(shù)據(jù)庫設計思路

  • 多副本的存儲

    保證數(shù)據(jù)一致性
    
                一般KV存儲模型
    
  • 主從模型:

    提供數(shù)據(jù)分片路由支持

多副本的存儲方式

圖片

技術難點——熱數(shù)據(jù)問題

  • 熱點數(shù)據(jù)
    數(shù)據(jù)分快
    
            熱數(shù)據(jù)遷移
    

解決思路:實時調(diào)整塊位置將讀寫頻繁的塊均勻分布在各個存儲節(jié)點;

技術難點——原子性問題

  • 保障多個Key寫入的原子性

解決思路:一般都遵守Google Percolator分布式事務。(在這里不具體講)

采取的樂觀鎖的方式,如圖所示:

圖片

兩階段提交:Prewrite(預寫)、commit(提交);并發(fā)沖突提交的問題。

如圖所示:

圖片

RocksDB數(shù)據(jù)庫存儲原理

RocksDB:使用C++編寫的嵌入式kv存儲引擎,其鍵值均允許使用二進制流。由Facebook基于levelDB開發(fā)。

  • LSM的設計依據(jù)

    隨機寫轉(zhuǎn)換成順序?qū)?/p>

    優(yōu)化讀性能

  • 三種數(shù)據(jù)結構

    MenTable

    logfile

    sstfiles

    如下圖:

圖片

RocksDB寫入

  • 插入
    記錄log
    
          MenTable寫入新記錄
    
  • 更新
    記錄log
    
          MenTable寫入新記錄
    
  • 刪除
    記錄log
    
          MenTable標記key刪除
    

WAL:write-ahead log,確保數(shù)據(jù)不丟失全部是內(nèi)存寫入,沒有磁盤I/O

MenTable寫滿后寫入磁盤,順序I/O。

LSM讀

  • 讀MemTable

  • 定位sslFile,文件內(nèi)查找

    圖片

RocksDB首先會去查看內(nèi)存中的Memtable,如果Memtable中包含key及其對應的value,則返回value值即可;如果在Memtable沒有讀到key,則接下來到同樣處于內(nèi)存中的Memtable中去讀取,類似地,如果讀到就返回,若是沒有讀到,那么會從磁盤中的SSTable文件中查找。

RocksDB為了提高讀取速遞,增加了讀cache和Bloomfilter。

上面的分布式存儲原理都理解了,那我們具體的tidb的架構原理就很簡單了。

TiDB架構

  • 基于RocksDB
  • Raft一致性協(xié)議
  • Etcd存儲元數(shù)據(jù)
  • 支持OLTA
  • 支持OLAP

圖片

MySql遷移到TiDb:數(shù)據(jù)遷移和流量遷移

數(shù)據(jù)遷移:

            1、支持主從同步的方式

            2、雙寫(MQ)
流量遷移:

            1、切讀

            2、停雙寫

如下圖所示:

圖片

注意的事項:

樂觀鎖沖突的問題,使用分布式鎖,串行化處理解決;
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計算機系統(tǒng)

    關注

    0

    文章

    277

    瀏覽量

    24072
  • 分布式
    +關注

    關注

    1

    文章

    859

    瀏覽量

    74439
  • CAP
    CAP
    +關注

    關注

    0

    文章

    16

    瀏覽量

    2073
收藏 人收藏

    評論

    相關推薦

    視頻監(jiān)控中分布式存儲技術方案

     在一個視頻監(jiān)控系統(tǒng)中,選擇什么樣的存儲解決方案直接決定了整個系統(tǒng)的系統(tǒng)架構以及系統(tǒng)的性能和穩(wěn)定程度,目前視頻監(jiān)控系統(tǒng)中的存儲方案大致上有兩種。視頻監(jiān)控系統(tǒng)存儲方案
    發(fā)表于 03-10 10:22 ?4729次閱讀

    深度解讀分布式存儲技術分布式剪枝系統(tǒng)

    分布式文件系統(tǒng)存儲目標以非結構化數(shù)據(jù)為主,但在實際應用中,存在大量的結構化和半結構化的數(shù)據(jù)存儲需求。分布式鍵值系統(tǒng)是一種有別于我們所熟悉的分布式
    發(fā)表于 10-27 09:25 ?1822次閱讀

    什么是分布式存儲技術?有哪些應用?

    分布式存儲概念 與目前常見的集中式存儲技術不同,分布式存儲
    的頭像 發(fā)表于 11-17 09:26 ?2.3w次閱讀
    什么是<b class='flag-5'>分布式</b><b class='flag-5'>存儲</b><b class='flag-5'>技術</b>?有哪些應用?

    分布式存儲技術有哪些

    本視頻主要詳細介紹了分布式存儲技術有哪些,分別是元數(shù)據(jù)管理、系統(tǒng)彈性擴展技術存儲層級內(nèi)的優(yōu)化技術
    的頭像 發(fā)表于 01-04 16:39 ?1.6w次閱讀

    阿里巴巴如何使用分布式存儲技術

    阿里巴巴可能和其他做云產(chǎn)品的公司不一樣,對于我們來說,我們做這些新的技術,并不是讓大家去做小白鼠,阿里巴巴自己內(nèi)部關鍵的電商業(yè)務也是跑在同一套系統(tǒng)上。
    發(fā)表于 05-21 11:32 ?2246次閱讀
    阿里巴巴如何使用<b class='flag-5'>分布式</b><b class='flag-5'>存儲</b><b class='flag-5'>技術</b>

    瞄上分布式存儲技術 京東云投資EasyStack

    8月8日消息,億邦動力獲悉,京東云宣布戰(zhàn)略投資EasyStack,雙方將在云計算、分布式存儲、容器三大開源技術領域進行合作,助力京東云成為可托付的云計算服務商。
    發(fā)表于 06-11 10:54 ?593次閱讀

    分布式存儲技術 從你說了算到大家說了算

    我們總說區(qū)塊鏈就是一個分布式賬本,但實際上,區(qū)塊鏈的核心技術包含智能合約、共識機制、加密算法等等,分布式存儲技術只是其核心
    發(fā)表于 06-12 16:39 ?1064次閱讀

    區(qū)塊鏈技術的應用有望解決供應鏈金融的發(fā)展痛點

    區(qū)塊鏈技術作為一種分布式存儲技術,可以通過共識算法解決信任問題,通過智能合約防范履約風險,從而使信任可沿供應鏈條有效傳導,降低合作成本,提高履約效率。
    發(fā)表于 06-13 10:59 ?652次閱讀

    分布式存儲技術之TurboEx超融合郵件系統(tǒng)

    近日,國產(chǎn)郵件系統(tǒng)的領先品牌TurboEx正式發(fā)布分布式存儲技術,通過最新的分布式存儲技術,Tu
    發(fā)表于 10-29 11:38 ?1233次閱讀

    分布式存儲技術將引領著產(chǎn)業(yè)區(qū)塊鏈的發(fā)展

    為了應對海量數(shù)據(jù)傳輸、存儲以及計算帶來的挑戰(zhàn),發(fā)展分布式網(wǎng)絡勢在必行。而利用區(qū)塊鏈技術的治理機制、安全機制、激勵機制才能有效的組織分布式網(wǎng)絡資源。
    發(fā)表于 10-30 11:21 ?1414次閱讀

    曙光中標分布式存儲產(chǎn)品集采 中國移動給大訂單

    近年來,分布式存儲技術在電信行業(yè)得到廣泛的推廣,在云化轉(zhuǎn)型、 IoT、5G 等新興業(yè)務,虛擬化資源池、數(shù)據(jù)庫業(yè)務、傳統(tǒng)老舊存儲替換等場景下都有著大量的落地。
    發(fā)表于 07-02 09:07 ?432次閱讀

    主流分布式存儲技術的對比分析與應用

    隨著數(shù)字化轉(zhuǎn)型的深入,海量數(shù)據(jù)對存儲提出了新的要求。傳統(tǒng)存儲雖然有技術成熟、性能良好、可用性高等優(yōu)點,但面對海量數(shù)據(jù),其缺點也越來越明顯:如擴展性差、成本高等。為了克服上述缺點,滿足海量數(shù)據(jù)的
    發(fā)表于 07-13 15:52 ?3639次閱讀
    主流<b class='flag-5'>分布式</b><b class='flag-5'>存儲</b><b class='flag-5'>技術</b>的對比分析與應用

    阿里巴巴探討新基建下數(shù)字經(jīng)濟分布式存儲新機遇

    本次大會匯集眾多領導、嘉賓,在此共同探討新基建下數(shù)字經(jīng)濟以及分布式存儲技術的發(fā)展新機遇。
    的頭像 發(fā)表于 08-17 14:21 ?2933次閱讀

    一文知道分布式存儲技術的發(fā)展歷程

    互聯(lián)網(wǎng)起源于1969年的美國國防部高級研究計劃署的阿帕網(wǎng)(ARPANet),阿帕網(wǎng)是計算機網(wǎng)絡技術發(fā)展的一個重要里程碑,其核心分組交換技術實現(xiàn)了計算機與計算機之間的通信。
    發(fā)表于 09-30 14:17 ?3800次閱讀

    主流分布式存儲技術對比分析

    如今分布式存儲產(chǎn)品眾多令人眼花繚亂,如何選型?要根據(jù)其背后的核心架構來分析它本來的原貌,然后才能決定其是否適合我們的具體場景。
    的頭像 發(fā)表于 02-15 15:06 ?1390次閱讀
    主流<b class='flag-5'>分布式</b><b class='flag-5'>存儲</b><b class='flag-5'>技術</b>對比分析