国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

提升Raft以加速分布式鍵值存儲

這篇具有很好參考價值的文章主要介紹了提升Raft以加速分布式鍵值存儲。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

介紹

Raft是當(dāng)前廣泛使用的共識算法。流行的系統(tǒng),如Kafka、Cockroach DB、MongoDB、Neo4j、Splunk等,都使用Raft來實(shí)現(xiàn)共識。系統(tǒng)要么是最終一致性的,要么是強(qiáng)一致性的。線性一致性是一致性模型中最強(qiáng)大的,但實(shí)現(xiàn)它可能很耗時。鍵值數(shù)據(jù)庫出現(xiàn)在市場上,以避免SQL數(shù)據(jù)庫的復(fù)雜性并提供橫向擴(kuò)展性。這些數(shù)據(jù)庫主要提供兩種操作:get(key)put(key, value)。在我對Raft相關(guān)論文的探索中,我找到了一篇有趣的文章,標(biāo)題為‘Rethink the Linearizability Constraints of Raft for Distributed Key-Value Stores’。本文詳細(xì)介紹了在類似鍵值數(shù)據(jù)庫中減少讀寫線性操作延遲以提高吞吐量的技術(shù)。本文提供了對這篇論文的簡要概述。

Raft如何處理寫請求?

Raft處理寫請求涉及三個關(guān)鍵操作:追加(Append)、提交(Commit)和應(yīng)用(Apply),因此引入了一系列用于讀寫請求處理的索引,以確保線性一致性。這些索引包括日志索引、提交索引應(yīng)用索引。

提升Raft以加速分布式鍵值存儲,分布式
1*m7grn7i1F_Oe98hvWwN6QA.png

圖片來源:Paper 9458806

追加

當(dāng)客戶端向領(lǐng)導(dǎo)者發(fā)送寫請求時,請求中的日志將被分配一個唯一遞增的索引號。領(lǐng)導(dǎo)者將日志附加到本地日志存儲,并向跟隨者發(fā)送用于復(fù)制的附加條目請求。領(lǐng)導(dǎo)者收到來自大多數(shù)跟隨者的附加條目請求的響應(yīng)后,將日志設(shè)置為已提交,即新寫入的數(shù)據(jù)在系統(tǒng)中是安全的。

提交

當(dāng)領(lǐng)導(dǎo)者收到附加條目請求的大多數(shù)跟隨者的響應(yīng)時,日志被設(shè)置為已提交,即新寫入的數(shù)據(jù)在系統(tǒng)中是安全的。

應(yīng)用

領(lǐng)導(dǎo)者開始將已提交的日志應(yīng)用到其本地狀態(tài)機(jī),并并行通知跟隨者執(zhí)行相同的操作。每個節(jié)點(diǎn)在應(yīng)用操作成功后將更新其應(yīng)用索引。只有在領(lǐng)導(dǎo)者將日志應(yīng)用到狀態(tài)機(jī)之后,領(lǐng)導(dǎo)者才能向客戶端返回響應(yīng)。

提升Raft以加速分布式鍵值存儲,分布式
1*nR9NBIBLtcXixspPaUsl_A.png

寫請求序列

Raft如何處理讀請求?

為了實(shí)現(xiàn)線性一致性,所有讀請求都由領(lǐng)導(dǎo)者自身處理。Raft還為此引入了讀索引。當(dāng)領(lǐng)導(dǎo)者收到讀請求時,請求的讀索引設(shè)置為當(dāng)前提交索引。只有當(dāng)領(lǐng)導(dǎo)者的應(yīng)用索引不小于讀索引時,領(lǐng)導(dǎo)者才能執(zhí)行讀請求并將結(jié)果返回給客戶端。在這種情況下,我們可以確??蛻舳瞬粫@取到陳舊的數(shù)據(jù)。

讀請求序列

對這些操作的評估

文章討論了所有這些操作的時間消耗評估,如復(fù)制、提交和應(yīng)用。根據(jù)評估,應(yīng)用操作是最耗時的。對于帶有高速網(wǎng)絡(luò)的系統(tǒng),網(wǎng)絡(luò)開銷較低。日志的結(jié)構(gòu)簡單,日志附加通常是一個具有較高速度的順序I/O操作。因此,更新復(fù)雜的狀態(tài)機(jī)最可能成為性能瓶頸。

下圖顯示了值大小從1KB到1MB時,應(yīng)用操作和所有其他操作的時間消耗百分比。它顯示應(yīng)用實(shí)際上是慢的,占寫請求總時間的近40%。

提升Raft以加速分布式鍵值存儲,分布式
1*HBIseE0DNULJmRaxnR8_wg.png

如何改進(jìn)這個?

與其他類型的數(shù)據(jù)庫相比,鍵值存儲是一個簡單的數(shù)據(jù)庫。寫操作只是將鍵和值插入或更新到數(shù)據(jù)庫,而讀操作只是為給定的鍵讀取相應(yīng)的值。文章證明,去除請求處理中的應(yīng)用階段可能會減少延遲。應(yīng)用操作可以異步執(zhí)行。讀和寫操作不需要等待應(yīng)用完成。為此,文章引入了兩種新方法:

a)?提交返回(用于寫操作)

b)?立即讀(用于讀操作)

提交返回

這個想法是一旦請求中的日志被提交,直接向客戶端返回成功響應(yīng),而不必等待將日志應(yīng)用到狀態(tài)機(jī)。因此,這個方法被稱為提交返回。提交返回不會破壞KV存儲的正確性和線性一致性。

提升Raft以加速分布式鍵值存儲,分布式
1*tbvkumRzu_NL29XELovbDQ.png

提交返回

立即讀

在Raft中,讀操作在查詢狀態(tài)機(jī)之前等待應(yīng)用索引追上讀索引。當(dāng)實(shí)施提交返回時,應(yīng)用索引和讀索引之間的差距會比傳統(tǒng)Raft方法中的差距更大。因此,提交返回可以提升寫處理但可能降低讀處理。然而,如果

我們能夠消除由于應(yīng)用索引和讀索引之間的差距而引起的等待時間,讀性能將得到顯著改善。

由于鍵值對的讀操作簡單,我們可以直接根據(jù)位于讀索引和應(yīng)用索引之間的日志數(shù)據(jù)副本執(zhí)行讀請求,而不必查詢狀態(tài)機(jī)。如果日志中存在鍵的值,則立即返回,否則查詢狀態(tài)機(jī)并返回結(jié)果。通過這種方式,讀性能將大大提高。

例子:立即讀

采用這種方法,平均寫入延遲將減少36.4% ~ 39.9%,平均讀取延遲將減少5.8% ~ 16.2%,與Raft相比。有關(guān)詳細(xì)信息,請參閱實(shí)際論文,文章中提供了論文鏈接。

參考資料

?Rethink the Linearizability Constraints of Raft for Distributed Key-Value Stores?In Search of an Understandable Consensus Algorithm
文章來源地址http://www.zghlxwxcb.cn/news/detail-803899.html

到了這里,關(guān)于提升Raft以加速分布式鍵值存儲的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 分布式共識 - Raft 算法

    分布式共識 - Raft 算法

    本文由 SnailClimbopen in new window 和 Xieqijunopen in new window 共同完成。 Raft協(xié)議由Diego Ongaro和John Ousterhout(斯坦福大學(xué))開發(fā),Diego于2014年獲得了博士學(xué)位。Raft的設(shè)計是為了更好地理解如何實(shí)現(xiàn)一致性,考慮到它的前身Paxos算法,由Lesli Lamport開發(fā),非常難以理解和實(shí)現(xiàn)。因此,Di

    2024年02月20日
    瀏覽(22)
  • 分布式協(xié)議Raft和Paxos詳解

    一、Raft是一種相對簡化的分布式一致性算法,它由Diego Ongaro和John Ousterhout于2013年提出。與Paxos相比,Raft的設(shè)計目標(biāo)是使一致性問題更易于理解、實(shí)現(xiàn)和部署。 Raft協(xié)議核心思想是將一致性問題分解為幾個關(guān)鍵組件,包括領(lǐng)導(dǎo)者選舉、日志復(fù)制和安全性。 領(lǐng)導(dǎo)者選舉:Raft協(xié)議

    2024年02月15日
    瀏覽(19)
  • 分布式一致性算法——Paxos 和 Raft 算法

    分布式一致性算法——Paxos 和 Raft 算法

    本文隸屬于專欄《100個問題搞定大數(shù)據(jù)理論體系》,該專欄為筆者原創(chuàng),引用請注明來源,不足和錯誤之處請在評論區(qū)幫忙指出,謝謝! 本專欄目錄結(jié)構(gòu)和參考文獻(xiàn)請見100個問題搞定大數(shù)據(jù)理論體系 Paxos和Raft算法都是 分布式一致性算法 ,它們的目的都是 在一個分布式系統(tǒng)

    2024年01月20日
    瀏覽(31)
  • 分布式一致性算法Paxos、Raft 及 Zookeeper ZAB

    分布式一致性算法Paxos、Raft 及 Zookeeper ZAB

    國科大學(xué)習(xí)生活(期末復(fù)習(xí)資料、課程大作業(yè)解析、學(xué)習(xí)文檔等): 文章專欄(點(diǎn)擊跳轉(zhuǎn)) 大數(shù)據(jù)開發(fā)學(xué)習(xí)文檔(分布式文件系統(tǒng)的實(shí)現(xiàn),大數(shù)據(jù)生態(tài)圈學(xué)習(xí)文檔等): 文章專欄(點(diǎn)擊跳轉(zhuǎn)) 分布式一致性算法是用于在分布式系統(tǒng)中 確保數(shù)據(jù)一致性 的一類算法。在分布式計

    2024年02月04日
    瀏覽(26)
  • 分布式系統(tǒng)中的那些一致性(CAP、BASE、2PC、3PC、Paxos、ZAB、Raft)

    分布式系統(tǒng)中的那些一致性(CAP、BASE、2PC、3PC、Paxos、ZAB、Raft)

    本文介紹 CAP、BASE理論的正確理解、Paxos 算法如何保證一致性及死循環(huán)問題、ZAB 協(xié)議中原子廣播及崩潰恢復(fù)以及 Raft 算法的動態(tài)演示。 下面還有投票,一起參與進(jìn)來吧?? 工作過幾年的同學(xué),尤其是這幾年,大家或多或少都參與過分布式系統(tǒng)的開發(fā),遇到過各式各樣“分布式

    2024年02月05日
    瀏覽(29)
  • 【分布式】分布式存儲架構(gòu)

    【分布式】分布式存儲架構(gòu)

    說到分布式存儲,我們先來看一下傳統(tǒng)的存儲是怎么個樣子。 傳統(tǒng)的存儲也稱為集中式存儲, 從概念上可以看出來是具有集中性的,也就是整個存儲是集中在一個系統(tǒng)中的,但集中式存儲并不是一個單獨(dú)的設(shè)備,是集中在一套系統(tǒng)當(dāng)中的多個設(shè)備,比如下圖中的 EMC 存儲就需

    2024年02月10日
    瀏覽(28)
  • 【分布式技術(shù)】分布式存儲ceph之RBD塊存儲部署

    【分布式技術(shù)】分布式存儲ceph之RBD塊存儲部署

    目錄 創(chuàng)建 Ceph 塊存儲系統(tǒng) RBD 接口 服務(wù)端操作 1、創(chuàng)建一個名為 rbd-demo 的專門用于 RBD 的存儲池 2、將存儲池轉(zhuǎn)換為 RBD 模式 3、初始化存儲池 4、創(chuàng)建鏡像 5、在管理節(jié)點(diǎn)創(chuàng)建并授權(quán)一個用戶可訪問指定的 RBD 存儲池 6、修改RBD鏡像特性,CentOS7默認(rèn)情況下只支持layering和stripin

    2024年01月18日
    瀏覽(35)
  • 云存儲、云計算與分布式存儲、分布式計算是一回事嗎?

    云存儲、云計算與分布式存儲、分布式計算是一回事嗎?

    隨著互聯(lián)網(wǎng)的蓬勃興起,大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)、云計算與云存儲等這些專業(yè)詞匯在大眾視野內(nèi)出現(xiàn)的頻率越來越高,再加上近幾年分布式技術(shù)異軍突起,更使得分布式存儲、分布式計算等成為熱詞。然而,很多人對這些名詞都一知半解,所以本文將主要和大家聊一聊,

    2024年01月25日
    瀏覽(30)
  • 【分布式技術(shù)】分布式存儲ceph之RGW接口

    【分布式技術(shù)】分布式存儲ceph之RGW接口

    目錄 1、對象存儲概念 ?2、創(chuàng)建 RGW 接口 //在管理節(jié)點(diǎn)創(chuàng)建一個 RGW 守護(hù)進(jìn)程 #創(chuàng)建成功后默認(rèn)情況下會自動創(chuàng)建一系列用于 RGW 的存儲池? #默認(rèn)情況下 RGW 監(jiān)聽 7480 號端口? //開啟 http+https ,更改監(jiān)聽端口 #更改監(jiān)聽端口 ?? ? ? ? ? //創(chuàng)建 RadosGW 賬戶 客戶端測試 OSD 故障模擬

    2024年01月19日
    瀏覽(25)
  • 分布式系統(tǒng)架構(gòu)設(shè)計之分布式數(shù)據(jù)存儲的擴(kuò)展方式、主從復(fù)制以及分布式一致性

    分布式系統(tǒng)架構(gòu)設(shè)計之分布式數(shù)據(jù)存儲的擴(kuò)展方式、主從復(fù)制以及分布式一致性

    在分布式系統(tǒng)中,數(shù)據(jù)存儲的擴(kuò)展是為了適應(yīng)業(yè)務(wù)的增長和提高系統(tǒng)的性能。分為水平擴(kuò)展和垂直擴(kuò)展兩種方式,這兩種方式在架構(gòu)設(shè)計和應(yīng)用場景上有著不同的優(yōu)勢和局限性。 水平擴(kuò)展是通過增加節(jié)點(diǎn)或服務(wù)器的數(shù)量來擴(kuò)大整個系統(tǒng)的容量和性能。在數(shù)據(jù)存儲領(lǐng)域,水平擴(kuò)

    2024年02月03日
    瀏覽(100)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包