日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Raft当初为什么会被命名为Raft?

發布時間:2024/4/11 编程问答 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Raft当初为什么会被命名为Raft? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“朱小廝的博客”,選擇“設為星標”

后臺回復”加群“獲取公眾號專屬群聊入口

歡迎跳轉到本文的原文鏈接:https://honeypps.com/architect/why-is-raft-called-raft/

Raft 是用來管理復制日志(replicated log)的共識算法。(共識,即consenus,關于consistency和consensus的爭論可以參考《Paxos、Raft不是一致性算法/協議?》。)Raft 跟 multi-Paxos 作用相同,效率也相當,但是它的組織結構跟 Paxos 不同,Raft 也比 Paxos 更容易理解并且更容易在工程實踐中實現。為了使 Raft 協議更易懂,Raft 將一致性的關鍵元素分開,如 leader 選舉、日志復制和安全性,并且它實施更強的一致性以減少必須考慮的狀態的數量。用戶研究的結果表明,Raft 比 Paxos 更容易學習。Raft 還包括一個用于變更集群成員的新機制,它使用重疊的大多數(overlapping majorities)來保證安全性。

你第一次接觸Raft的時候,有沒有打開字典查一下 Raft 是什么意思?會不會好奇會類似于Zookeeper、Apollo、Janus、Kafka、Hadoop之類的命名?Raft直譯成中文就是“木筏”的意思。有網友起初是這樣將“木筏”和“共識算法”關聯起來的:

I'd been thinking that a raft is something that allows its different components to achieve buoyancy together and survive collectively. But that would apply to any consensus algorithm.

簡單解釋一下:木筏是一種讓它的各個組成部分共同獲得浮力、共同生存的東西,共識是讓它的所有節點達成共識,牽強附會一下好像有那么點意思哦。比如,當初 RabbitMQ 的取名就是因為它的作者覺得它像 Rabbit 一樣迅速。

真實情況是不是這樣呢?

在網絡上有這么一個帖子 —— Why the "Raft" name? (https://groups.google.com/forum/#!topic/raft-dev/95rZqptGpmU)

Raft算法(In Search of an Understandable Consensus Algorithm)的第一作者Diego Ongaro對此做了相關的回答:

大致意思如下:


大家都問我為什么稱它為Raft,其實迄今為止,我還沒有公開過相關的信息。今天,我借著這個帖子訴說一下,以后誰要問到我我就可以把這個帖子的鏈接甩給他~

我們想出 Raft 這個名字有以下幾個原因:

  • 它不是一個縮寫單詞,但是當時我們也考慮了與 reliable,replicated,redundant 以及 fault-tolerant這些詞的關聯性。

  • 我們當時考慮了日志(logs),以及使用它們可以構建什么。

  • 我們當時還考慮了 "the island of Paxos"以及如何逃離它。(注:Leslie Lamport在Paxos的最初論文《The Part-Time Parliament》中提到了the island of Paxos問題,另一篇簡化論文《Paxos Made Simple》是Leslie Lamport后來寫的)

另外,在2012年9月我們想出 Raft 這個名字之前,我們在論文中使用了隨機生成的名字 Cheesomi。那個時候,這個名字在我們提交的論文中出現了100多次,所以改用更短的名字實際上幫助論文縮小了不少。

我們很難想出一個好名字,所以我們在一次RAMCloud會議上把它作為一個明確的議程項目。我發現了兩張照片的白板在會議期間/之后,我附上在這里(就是下面的兩幅圖)。

皮皮注:第一張圖上,寫了好多名字,分成“Not too bad”、“Pretty good”和“Love it”進行投票。Raft這個名字獲得了2個 “Not too bad”,1個“Love it”;Knox這個名字獲得了3.5個“Not too bad”以及0.5個“Pretty good”;Redundo獲得了2個 “Not too bad”和2個“Pretty good”;Cloudsense獲得了3個“Pretty good”。從圖上還能看到其它的名字,比如craft、crap等。

看起來最大的競爭者是Raft、Knox(我猜是在Fort Knox)、Redundo和Cloudsense(沒有線索)。我不記得我們是如何得到Raft的,因為它顯然沒有贏得投票,但我記得這個名字很快就流行起來了。人們似乎馬上就喜歡上了它。我真他媽高興(I'm so f**king glad...)它不叫Redundo。


總結一下,按照Diego Ongaro大佬的說法,Raft原本使用了隨機生成的名字 Cheesomi,后來覺得這個名字不好,還在一個會上專門探討了命名問題。會上想了很多個名字,還專門進行了投票,但是Raft其實并沒有獲選,但是由于后來莫名其妙地迅速fasion了起來就用了這個(就好像某些綜藝選秀一樣,冠軍沒火,下面幾個火的不行)。

仔細看下Diego Ongaro大佬的第一張圖,在raft旁邊有個括號,里面寫了(Reliable, Replicated, Redundant, And Fault-Tolerant),暗示著Raft其實就是 Re{liable|plicated|dundant} And Fault-Tolerant 的縮寫。在Wikipedia中也有類似的說明:It is named after Reliable, Replicated, Redundant, And Fault-Tolerant.

今天的知識點,你Get了嘛?

歡迎跳轉到本文的原文鏈接:https://honeypps.com/architect/why-is-raft-called-raft/

想知道更多?描下面的二維碼關注我

后臺回復”加群“獲取公眾號專屬群聊入口

【精彩推薦】

  • 咱們從頭到尾說一次Java垃圾回收

  • Netty、Kafka中的零拷貝技術到底有多牛?

  • go為什么這么快?

  • 面試前,我們要復習多少Redis知識?

  • 《深入理解Java虛擬機》第2版挖的坑終于在第3版中被R大填平了

  • Redis性能問題分析

  • 淺談CAP和Paxos共識算法

  • 聊一聊Java中的文件鎖

  • Kafka為什么這么快?

  • Paxos、Raft不是一致性算法嘛?

  • 聊聊Java的幾把JVM級鎖

  • 越說越迷糊的CAP

  • 大公司為什么都有API網關?沒你想的這么簡單!

>>>?字節跳動社招內推入口?<<<

>>> 字節跳動校招內推入口 <<<

朕已閱?

總結

以上是生活随笔為你收集整理的Raft当初为什么会被命名为Raft?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。