Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
分散システムにおける 無兆候データ破損の影響について
Search
Cybozu
PRO
March 14, 2025
Technology
1
93
分散システムにおける 無兆候データ破損の影響について
第14期サイボウズ・ラボユース成果発表会
https://cybozu.connpass.com/event/347931/
木田碧
Cybozu
PRO
March 14, 2025
Tweet
Share
More Decks by Cybozu
See All by Cybozu
kintone開発チームの紹介
cybozuinsideout
PRO
0
73k
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
51
AIツール開発ワークショップ(Dify)【サイボウズ新人研修2025】
cybozuinsideout
PRO
20
22k
モバイル【サイボウズ新人研修2025】
cybozuinsideout
PRO
3
3.7k
Git/GitHub を使う上で知っておくと嬉しいかも Tips【サイボウズ新人研修2025】
cybozuinsideout
PRO
14
9.9k
GitHub Copilot活用【サイボウズ新人研修2025】
cybozuinsideout
PRO
14
14k
ソフトウェアライセンス【サイボウズ新人研修2025】
cybozuinsideout
PRO
13
8.2k
エンジニアのためのアウトプット講座 〜知識をシェアするはじめの一歩〜【サイボウズ新人研修2025】
cybozuinsideout
PRO
7
4.6k
Docker入門【サイボウズ新人研修2025】
cybozuinsideout
PRO
13
11k
Other Decks in Technology
See All in Technology
実運用で考える PGO
kworkdev
PRO
0
130
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
2.3k
iPhone Eye Tracking機能から学ぶやさしいアクセシビリティ
fujiyamaorange
0
280
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
2
130
TypeScript入門
recruitengineers
PRO
35
11k
【 LLMエンジニアがヒューマノイド開発に挑んでみた 】 - 第104回 Machine Learning 15minutes! Hybrid
soneo1127
0
250
PRDの正しい使い方 ~AI時代にも効く思考・対話・成長ツールとして~
techtekt
PRO
0
510
Automating Web Accessibility Testing with AI Agents
maminami373
0
480
「魔法少女まどか☆マギカ Magia Exedra」の必殺技演出を徹底解剖! -キャラクターの魅力を最大限にファンに届けるためのこだわり-
gree_tech
PRO
0
450
AI時代にPdMとPMMはどう連携すべきか / PdM–PMM-collaboration-in-AI-era
rakus_dev
0
260
『FailNet~やらかし共有SNS~』エレベーターピッチ
yokomachi
1
200
退屈なことはDevinにやらせよう〜〜Devin APIを使ったVisual Regression Testの自動追加〜
kawamataryo
4
1.1k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
111
20k
Six Lessons from altMBA
skipperchong
28
4k
Speed Design
sergeychernyshev
32
1.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
Bash Introduction
62gerente
614
210k
Docker and Python
trallard
45
3.5k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
11
1.1k
Designing for humans not robots
tammielis
253
25k
Transcript
ࢄγεςϜʹ͓͚Δ ແஹީσʔλഁଛͷӨڹʹ͍ͭͯ ୈظαΠϘζɾϥϘϢʔεՌൃදձ ాป ܚጯٛक़େֶࡦɾϝσΟΞݚڀՊम࢜ γεςϜιϑτΣΞݚڀ։ൃ ୲͞Μ
ࣗݾհ • ࢯ໊: ా ป • ॴଐ: ܚጯٛक़େֶ ࡦɾϝσΟΞݚڀՊ
म࢜Ұ • ݚڀ: ࢄσʔλϕʔεɺࢄ߹ҙΞϧΰϦζϜ
ແஹީσʔλഁଛͱʁ σʔλ͕ഁଛ͍ͯ͠Δʹ͔͔ΘΒͣɺγεςϜ͕ͦͷഁଛΛݕग़Ͱ͖ͳ͍ݱ IUUQTHSPVQOUUKQOFXTSFMFBTFBIUNM • ιϑτΣΞͰͳ͘ɺϋʔυΣΞʹൃ ੜ͢ΔσʔλഁଛͰɺϋʔυΣΞͷΤϥʔ ݕग़ػߏ (ྫ ECCϝϞϦ,
RAID)Λ͢Γൈ ͚ͨͷ • ओͳݪҼ • ཧతཁҼ (ӈਤࢀߟ) • ϋʔυΣΞཁҼ (ॳظෆྑɺܦྼԽ)
ແஹީσʔλഁଛʹ͓͚ΔӨڹ ແஹީσʔλഁଛେنࢄγεςϜͰಛʹͱͳΔ • Amazon S3Ͱ20087݄20ʢถࠃ࣌ؒʣʹɺαʔϏε ͕9࣌ؒʹΘͨͬͯར༻Ͱ͖ͳ͘ͳΔͱ͍͏ো͕ൃੜͨ͠ [1] • Intel σʔληϯλʔͷΑ͏ͳେྔͷϓϩηοαΛ༻͢
ΔڥͰɺແஹީσʔλഁଛͷΑ͏ͳඇৗʹكͳࣄͰ ɺରࡦ͕ෆՄܽͳ΄Ͳසൟʹൃੜ͢ΔՄೳੑ͕͋Δͱड़ Δ [2] <>IUUQTXFCBSDIJWFPSHXFCIUUQTTUBUVTBXTBNB[PODPNTIUNM <>IUUQTXXXJOUFMDPKQDPOUFOUXXXKQKBDPOUFOUEFUBJMTEBUBDFOUFSTJMFOUEBUBFSSPSTUFDIOJDBMQBQFSIUNM
ࢄγεςϜ ෳͷίϯϐϡʔλ͕ωοτϫʔΫΛհͯ͠ଓ͞Εɺڠௐಈ࡞͢ΔγεςϜ
োੑ (ϑΥʔϧττϨϥϯε) ߏཁૉͷҰ෦ʹো͕ൃੜͯ͠ɺγεςϜ͕ػೳ͠ଓ͚Δೳྗ ❓ 😄
োੑͷྨ Ϋϥογϡোੑ (Crash Fault Tolerance, CFT) োੑ ੑೳɾίετ Ϗβϯνϯোੑ
(Byzantine Fault Tolerance, BFT)
োੑͷྨ Ϋϥογϡোੑ (Crash Fault Tolerance, CFT) োੑ ੑೳɾίετ Ϗβϯνϯোੑ
(Byzantine Fault Tolerance, BFT) ݱࡏͷγεςϜͷओྲྀ
োੑͷྨ Ϋϥογϡোੑ (Crash Fault Tolerance, CFT) োੑ ੑೳɾίετ Ϗβϯνϯোੑ
(Byzantine Fault Tolerance, BFT) ແஹީσʔλഁଛϏβϯνϯ োʹྨ͞ΕΔ
࣮ࢄγεςϜʹແஹީσʔλഁଛೖ • Braft (https://github.com/baidu/braft) • Baiduͷߴ৴པੑ͕ٻΊΒΕΔ༷ʑͳγεςϜΛ ࢧ͍͑ͯΔࢄ߹ҙΞϧΰϦζϜRaft࣮ 3BGUΞʔΩςΫνϟ -FBEFS
'PMMPXFS 'PMMPXFS
Intel PinʹΑΔແஹީσʔλഁଛͷ࠶ݱ • ແஹީσʔλഁଛͷ࠶ݱʹɺDBI (Dynamic Binary Instrument)πʔϧͷ Intel PinΛ༻
• Just-In-Time (JIT) ίϯύΠϥΛ༻͠ ͯϓϩάϥϜΛ࣮ߦதʹมߋ • ࠨͷਤͷApplication͕BraftͰɺPintool ͕ແஹީσʔλഁଛΛҾ͖ى͜͢ιʔ είʔυ [2] ʹͨΔ <>$IJ,FVOH-VL 3PCFSU$PIO 3PCFSU.VUI )BSJTI1BUJM "SUVS ,MBVTFS (FP ff -PXOFZ 4UFWFO8BMMBDF 7JKBZ+BOBQB3FEEJ BOE ,JN)B[FMXPPE1JOCVJMEJOHDVTUPNJ[FEQSPHSBNBOBMZTJT UPPMTXJUIEZOBNJDJOTUSVNFOUBUJPO4*(1-"//PU +VOF rIUUQTEPJPSH <>IUUQTCJUCVDLFUPSHECC f <>
Braftͷ௨ৗͷڍಈ • ΫϥΠΞϯτϦΫΤετͷछྨ • Write: valueʹ1ΛՃ͢Δ • Read: valueͷΛಡΉ
<3&"%>7BMVF <83*5&>"EE <3&"%>7BMVF <83*5&>"EE <3&"%>7BMVF <83*5&>"EE <3&"%>7BMVF <83*5&>"EE <3&"%>7BMVF <83*5&>"EE <3&"%>7BMVF ࣮ߦϩά
ແஹީσʔλഁଛ͕ൃੜ͢Δͱɺɺ • Write࣌ͷॲཧᶅͰແஹީσʔλഁଛ͕ ൃੜ͠ɺ1Ͱͳ͘ɺ ͕ε ςʔτϚγϯ্ͷvalueʹՃ͞ΕΔɻ −(264 − 1) <3&"%>7BMVF
<83*5&>"EE <3&"%>7BMVF <83*5&>"EE <3&"%>7BMVF <83*5&>"EE <3&"%>7BMVF <83*5&>"EE <3&"%>7BMVF <83*5&>"EE <3&"%>7BMVF ࣮ߦϩά
ແஹީσʔλഁଛͷφΠʔϒͳରࡦ๏ 😃ਖ਼͍͠ 😱ޡ͍ͬͯΔ طଘख๏ φΠʔϒͳରࡦ๏ -FBEFS 'PMMPXFS 'PMMPXFS ❓ 😱
-FBEFS 'PMMPXFS 'PMMPXFS ❓ ❓ ❓ 😱 😃 😃
ແஹީσʔλഁଛͷφΠʔϒͳରࡦ๏ 😃ਖ਼͍͠ 😱ޡ͍ͬͯΔ طଘख๏ φΠʔϒͳରࡦ๏ -FBEFS 'PMMPXFS 'PMMPXFS ❓ 😱
-FBEFS 'PMMPXFS 'PMMPXFS ❓ ❓ ❓ 😱 😃 😃 ଟܾͰਖ਼͍͠Λಋ͚Δ
࣮ࡍͷ࣮ߦϩά
͔͠͠ແஹީσʔλഁଛͦΜͳʹ؆୯Ͱͳ͍ 8SJUFૢ࡞ 3FBEૢ࡞ -FBEFS 'PMMPXFS 'PMMPXFS 😃 😱 😱 -FBEFS
'PMMPXFS 'PMMPXFS 😱 😱 😱
ࠓޙͷ՝ • Braftʹແஹީσʔλഁଛͷ ཏతͳੑΛ༩͢Δ (HardPaxos [1]Λࢀߟ) • ූ߸Խͱ࣮ߦΛΈ߹Θ ͤΔ͜ͱͰɺແஹީσʔλഁ
ଛΛݕग़͠ɺσʔλഁଛΛΫ ϥογϡোม͢Δ Πϝʔδਤ <>%#FISFOT %,VWBJTLJJBOE$'FU[FS )BSE1BYPT3FQMJDBUJPO)BSEFOFEBHBJOTU)BSEXBSF&SSPST *&&&SE*OUFSOBUJPOBM 4ZNQPTJVNPO3FMJBCMF%JTUSJCVUFE4ZTUFNT /BSB +BQBO QQ EPJ43%4
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂʂ