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
First step of “Chord”
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yoshiaki Yoshida
September 23, 2016
Technology
0
820
First step of “Chord”
First step of “Chord”
Yoshiaki Yoshida
September 23, 2016
Tweet
Share
More Decks by Yoshiaki Yoshida
See All by Yoshiaki Yoshida
技術ブロガーを育てる!ブログメンタリングで何を教えているのか / Passion for Blog Mentoring
kakakakakku
8
37k
プログラミング初心者に教えるときは「身近な比喩」が重要なのだ! / Metaphor is Important for Beginner Programmer
kakakakakku
2
5.7k
プロジェクトの成功を支える ZenHub と モブプログラミング / ZenHub and Mob Programming
kakakakakku
1
5.9k
楽しく!アウトプットを習慣化しよう / Let's Enjoy Output
kakakakakku
3
7k
さぁ!今すぐプロジェクトリーダーに立候補しよう / Be a Project Leader
kakakakakku
3
9.9k
プロジェクトをリードする技術 (Kyash 社 再演) / Project Leading is Skill for Kyash
kakakakakku
4
2.2k
プロジェクトをリードする技術 / Project Leading is Skill
kakakakakku
45
52k
Mackerel で ECS をどこまでモニタリングできるのか / Monitoring ECS with Mackerel
kakakakakku
0
13k
[2018/01/30] Redash 初心者向けハンズオン / Redash Meetup #0.1
kakakakakku
0
2.5k
Other Decks in Technology
See All in Technology
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
220
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
380
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
330
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
240
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
3
290
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.5k
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
170
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.4k
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
How GitHub (no longer) Works
holman
316
140k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
It's Worth the Effort
3n
188
29k
Designing for humans not robots
tammielis
254
26k
The SEO Collaboration Effect
kristinabergwall1
0
350
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Between Models and Reality
mayunak
1
190
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
From π to Pie charts
rasagy
0
130
Transcript
First step of “Chord” 2016-09-23 ࣾษڧձ @kakakakakku
Cloud Computing Concepts, Part 1 by
࠷ۙ Coursera Ͱ ཤमͯ͠ΔߨٛͰֶΜͩ “Chord” ΛβοΫϦͱհ͠·͢
What is “Chord” ?
None
(ƅшƅ) ŴƅŜŖƃ ?
εέʔϥϏϦςΟͷ͋Δ P2P ୳ࡧΞϧΰϦζϜʢҙ༁ʣ → ൃද2001
[Related Algorithms] Tapestry Pastry Kademlia ʘ ࠓհ͠ͳ͍͚Ͳଞʹ͋Δ ʗ
[Related Implementation] Cassandra Dynamo Riak Voldemort ʘ ϛυϧΣΞΛΠϝʔδ͢Δͱۙײ༙͘ ʗ
ʘ Dynamo ͷจ·ͨผͷػձʹհ͠·͢ ʗ
P2P Λྨ͢Δͱ...
Unstructured Overlay Structured Overlay Chord Napster / Gnutella
Goal of “Chord”
େྔͷΩʔΛͲ͏ࢄͤ͞Δ ? େྔͷΩʔΛͲ͏ޮతʹ୳ࡧͤ͞Δ ? ϊʔυͷ૿ݮʹͲ͏ରԠ͢Δ ?
“Chord” = Consistent Hashing + Finger Table
(ƅшƅ) Űō?
Consistent Hashing ղઆ
None
ҰݴͰද͢ͱ Ωʔͷ࠶ஔͷӨڹΛݮͨ͠ ޮతͳϋογϡ๏ʢҙ༁ʣ
Bad Example ʘ ࠷ॳʹμϝͳྫΛݟͯΈ·͠ΐ͏ ʗ
3 Nodes 4 Keys ΩϨΠʹ ࢄͨ͠ ??? ୯७ʹ mod ͰΩʔΛϊʔυʹஔ͢Δͱ...
͠1 ނোͨ͠߹ ΦϨϯδҎ֎ શͯͷΩʔΛ࠶ஔ ͢Δඞཁ͕͋Δ
Consistent Hashing ొ
ϊʔυͱΩʔΛϋογϡԽͯ͠ ԾϦϯά্ʹஔ͢Δ ※ԾͷҙຯࠓճׂѪ͠·͢...
֤Ωʔ͔Βݟͯ ࣌ܭճΓʹ1൪ۙͨ͠ϊʔυʹ ΩʔΛஔ͢Δͱ͍͏ߟ͑ํ ʢͦͷϊʔυ Successor ͱݺͿʣ
Ϧϯάۭؒ ஔ ஔ ஔ
Ϧϯάۭؒ ނোͰ࠶ஔ͕ඞཁͳΩʔ ʹݮ͞ΕΔ ஔ ࠶ஔ ஔ
Αͬͯ ϊʔυՃʗނোʢҙਤతͳݮগʣ ʹରͯ͠ ہॴతͳӨڹʹ͑ΒΕΔ
Finger Table ղઆ
Chord ͷಛతͳΈ ! ҰݴͰද͢ͱγϣʔτΧοτతͳ ?
Bad Example ʘ ࠷ॳʹμϝͳྫΛݟͯΈ·͠ΐ͏ ʗ
୳ࡧ͢Δͱ͖ʹ key ͕͋Δ ୳ࡧΛϦΫΤετ ͢Δϊʔυ
ϊʔυΛॱ൪ʹḷͬͯ͠·͏ͱ ઢܗ୳ࡧʹͳͬͯ͠·͏… ʘ Oh, No! ʗ
Finger Table ొ
ҙͷϊʔυʹରͯ͠ ࢦؔతʹ୳ࡧՄೳͳ ϩέʔγϣϯʢҙ༁ʣΛఆΊͯ ଟஈ֊ʹ୳ࡧͤ͞Δ
͜ͷྫͩͱ m=3 ͰޮՌ͕ແͦ͞͏ʹݟ͑Δ͚Ͳ... Finger Table
ઢܗ୳ࡧΛճආͰ͖ΔͨΊ ۭؒͷεέʔϦϯάʹରͯ͠ ୳ࡧ࣌ؒେ͖͘ࠨӈ͞Εͳ͘ͳΔ ʘ Good! ʗ
“Chord” = Consistent Hashing + Finger Table ʘ βοΫϦͱཧղͯ͠Β͑ͨ ?
ʗ
࣮ࡍͷ “Chord” Ͱ ϊʔυΛ SHA-1(ip, port) Ͱஔͯ͠ ΩʔΛ SHA-1(key) Ͱஔ͢Δ
※SHA-1 ͳΒ 160 bit ͷۭؒͰදݱͰ͖Δ
·ͱΊ
ʑͬͯΔٕज़ ੈքதͷεΰΠਓ͕ͨͪߟ͑ͨ ΞϧΰϦζϜʹࢧ͑ΒΕ͍ͯΔʂ
ٕज़Λͨͩ͏͚ͩͰͳ͘ ཁૉٕज़Λཧղ͢Δ͜ͱॏཁʂ
To be continued …