RM新时代网站-首页

電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Dragonboat Go實(shí)現(xiàn)的多組Raft庫

Dragonboat Go實(shí)現(xiàn)的多組Raft庫

2022-06-22 | zip | 0.79 MB | 次下載 | 免費(fèi)

資料介紹

授權(quán)協(xié)議 Apache-2.0
開發(fā)語言 C/C++ Google Go 匯編
軟件類型 開源軟件

軟件簡(jiǎn)介

關(guān)于

Dragonboat 是一個(gè)高性能 Go 實(shí)現(xiàn)的多組?Raft?共識(shí)算法庫,它同時(shí)提供?C++11?支持。Dragonboat 是目前 github.com 上速度最快的 Raft 開源實(shí)現(xiàn)。

Raft 這樣的共識(shí)算法使得只要系統(tǒng)中的多數(shù)成員在線便可使得系統(tǒng)持續(xù)運(yùn)行。比如,一個(gè)擁有 5 臺(tái)服務(wù)器的 Raft 集群中即使有兩臺(tái)服務(wù)器故障依舊可以工作。它同時(shí)向客戶端展現(xiàn)一個(gè)單機(jī)節(jié)點(diǎn),始終提供強(qiáng)一致保證的數(shù)據(jù)訪存。同時(shí),所有在線的成員節(jié)點(diǎn)都可用來提供讀操作,從而提供更高的讀吞吐總和。

所有 Raft 相關(guān)的技術(shù)難點(diǎn)都會(huì)由 Dragonboat 來承擔(dān),用戶從而可以只關(guān)注他們各自的應(yīng)用領(lǐng)域。Dragonboats 使用十分簡(jiǎn)便,詳細(xì)的例程可使新用戶在半小時(shí)內(nèi)完全掌握它。

功能

  • 便于使用的可構(gòu)建單組與多組 Raft 應(yīng)用的 Go 和 C++ API

  • 功能完備的多組 Raft 協(xié)議的實(shí)現(xiàn),同機(jī)支持?jǐn)?shù)千 Raft 組

  • 完備的測(cè)試確保正確性,這包括?Jepsen?所帶的?Knossos?強(qiáng)一致性檢查,部分測(cè)試日志在此

  • 全流水線設(shè)計(jì)、TLS 支持,適合被部署于跨地域的高網(wǎng)絡(luò)延時(shí)公網(wǎng)環(huán)境

  • 在中檔硬件上即可獲得約 300 萬/秒的寫或 1000 萬/秒的強(qiáng)一致讀的性能

  • 支持定制的 Raft log 存儲(chǔ)與 Raft RPC 模塊,可方便整合最新 IO 類技術(shù)產(chǎn)品

  • 多 Raft 組由自帶的 Drummer 服務(wù)器組件管理以獲得良好的高可用

性能

Dragonboat 是目前 GitHub 網(wǎng)站上最快的開源多組 Raft 實(shí)現(xiàn)。

在三節(jié)點(diǎn)系統(tǒng)上,使用中端硬件,如 22 核 2.8Ghz 的 Intel 至強(qiáng)處理器和 NVME 固態(tài)硬盤,在 16 字節(jié)的荷載下,Dragonboat 可持續(xù)每秒 900 萬次寫或在 9:1 的高讀寫比場(chǎng)景下提供每秒 1100 萬次的混合讀寫操作。高吞吐在跨地域分布環(huán)境依舊被保持,在使用更多的 clients 的情況下,在 RTT 為 30ms 時(shí)依舊能實(shí)現(xiàn) 200 萬次每秒的 IO 操作。?

pYYBAGKn5-WANHAcAAESVP6hFy4637.jpg

每個(gè)服務(wù)器上可輕易承載數(shù)千 Raft 組。并發(fā)的活躍 Raft 組數(shù)量對(duì)吞吐有直接影響,而大量的閑置 Raft 組對(duì)系統(tǒng)性能并無巨大影響。?

poYBAGKn5-mAYKVOAADtksSOL3s701.jpg

下表是毫秒為單位的寫延遲數(shù)據(jù)。Dragonboat 可以在處理每秒 800 萬次寫(16 字節(jié)荷載)的時(shí)候做到 P99 的寫延遲小于 5ms。讀延遲低于寫延遲,因?yàn)橛糜?linearizable 讀的 ReadIndex 協(xié)議無需對(duì)每個(gè)讀請(qǐng)求做落盤寫。

pYYBAGKn5-uAbcW9AACJrN3Gdto927.jpg

當(dāng)測(cè)試單組性能時(shí),Dragonboat?可以在 16 字節(jié)負(fù)載下持續(xù)每秒完成 125 萬次寫,此時(shí)平均寫延遲是 1.3 毫秒,P99 寫延遲為 2.6 毫秒。上述性能是在平均單機(jī)占用三個(gè) 2.8Ghz 的核心的情況下實(shí)現(xiàn)的。

即使在很高的系統(tǒng)負(fù)載下,Go 的 GC 所帶來的 Stop-the-World 停頓也顯著低于 1 毫秒。在即將發(fā)布的 Go 1.12 版中,GC 的 Stop-the-World 停頓時(shí)間將進(jìn)一步大幅減低。Golang 的 runtime.ReadMemStats 顯示即使在很高的系統(tǒng)負(fù)載下,GC 也僅占用了少于 1% 的可利用 CPU 時(shí)間。?

poYBAGKn5-yATPQmAADOeDfZf-E262.jpg

系統(tǒng)需求

  • x86_64 Linux 或 MacOS, Go 1.10, 1.11,支持 C++11 的近期版本 GCC 或 Clang

  • RocksDB?5.13.4 或更新的版本

開始使用

下載?Dragonboat?庫至您的 Go 工作環(huán)境:

$?go?get?-u?-d?github.com/lni/dragonboat

如果 RocksDB 5.13.4 或者更新版本尚未安裝:

$?cd?$GOPATH/src/github.com/lni/dragonboat
$?make?install-rocksdb-ull

上述命令將把 RocksDB 5.13.4 安裝到 /usr/local/lib和/usr/local/include/rocksdb。如果 RocksDB 已經(jīng)被安裝,則可跳過此步。

運(yùn)行內(nèi)建測(cè)試以檢查安裝是否完成:

$?cd?$GOPATH/src/github.com/lni/dragonboat
$?make?dragonboat-test

編譯您的應(yīng)用:

??go?build?-v?pkgname

上述步驟使用的是 Master branch 的代碼。Master 是用于開發(fā)的非穩(wěn)定 branch。生產(chǎn)環(huán)境請(qǐng)使用已發(fā)布版本。

(可選)安裝 C++ Binding:

$?cd?$GOPATH/src/github.com/lni/dragonboat
$?make?binding
$?sudo?make?install-binding

(可選)運(yùn)行 C++ binding測(cè)試(需 gtest 庫):

$?cd?$GOPATH/src/github.com/lni/dragonboat
$?make?clean
$?make?test-cppwrapper

中文例程

中文例程在這里。

項(xiàng)目狀態(tài)

Dragonboat?適用于生產(chǎn)環(huán)境。

開源許可協(xié)議

本項(xiàng)目以 Apache License Version 2.0 授權(quán)開源,請(qǐng)參考 LICENSE 文件。

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
RM新时代网站-首页