Slide 1

Slide 1 text

First step of “Chord” 2016-09-23 ࣾ಺ษڧձ @kakakakakku

Slide 2

Slide 2 text

Cloud Computing Concepts, Part 1 by

Slide 3

Slide 3 text

࠷ۙ Coursera Ͱ ཤमͯ͠ΔߨٛͰֶΜͩ “Chord” ΛβοΫϦͱ঺հ͠·͢

Slide 4

Slide 4 text

What is “Chord” ?

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

(ƅшƅ) ŴƅŜŖƃ ?

Slide 7

Slide 7 text

εέʔϥϏϦςΟͷ͋Δ P2P ୳ࡧΞϧΰϦζϜʢҙ༁ʣ → ൃද͸2001೥

Slide 8

Slide 8 text

[Related Algorithms] Tapestry Pastry Kademlia ʘ ࠓ೔͸঺հ͠ͳ͍͚Ͳଞʹ΋͋Δ ʗ

Slide 9

Slide 9 text

[Related Implementation] Cassandra Dynamo Riak Voldemort ʘ ϛυϧ΢ΣΞΛΠϝʔδ͢Δͱ਌ۙײ༙͘ ʗ

Slide 10

Slide 10 text

ʘ Dynamo ͷ࿦จ΋·ͨผͷػձʹ঺հ͠·͢ ʗ

Slide 11

Slide 11 text

P2P Λ෼ྨ͢Δͱ...

Slide 12

Slide 12 text

Unstructured Overlay Structured Overlay Chord Napster / Gnutella

Slide 13

Slide 13 text

Goal of “Chord”

Slide 14

Slide 14 text

େྔͷΩʔΛͲ͏෼ࢄͤ͞Δ ? େྔͷΩʔΛͲ͏ޮ཰తʹ୳ࡧͤ͞Δ ? ϊʔυͷ૿ݮʹͲ͏ରԠ͢Δ ?

Slide 15

Slide 15 text

“Chord” = Consistent Hashing + Finger Table

Slide 16

Slide 16 text

(ƅшƅ) Űō?

Slide 17

Slide 17 text

Consistent Hashing ղઆ

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

ҰݴͰද͢ͱ Ωʔͷ࠶഑ஔͷӨڹΛ࡟ݮͨ͠ ޮ཰తͳϋογϡ๏ʢҙ༁ʣ

Slide 20

Slide 20 text

Bad Example ʘ ࠷ॳʹμϝͳྫΛݟͯΈ·͠ΐ͏ ʗ

Slide 21

Slide 21 text

3 Nodes 4 Keys ΩϨΠʹ ෼ࢄͨ͠ ??? ୯७ʹ mod ͰΩʔΛϊʔυʹ഑ஔ͢Δͱ...

Slide 22

Slide 22 text

΋͠1୆ ނোͨ͠৔߹ ΦϨϯδҎ֎ શͯͷΩʔΛ࠶഑ஔ ͢Δඞཁ͕͋Δ

Slide 23

Slide 23 text

Consistent Hashing ొ৔

Slide 24

Slide 24 text

ϊʔυͱΩʔΛϋογϡԽͯ͠ Ծ૝Ϧϯά্ʹ഑ஔ͢Δ ※Ծ૝ͷҙຯ͸ࠓճ͸ׂѪ͠·͢...

Slide 25

Slide 25 text

֤Ωʔ͔Βݟͯ ࣌ܭճΓʹ1൪ۙ઀ͨ͠ϊʔυʹ ΩʔΛ഑ஔ͢Δͱ͍͏ߟ͑ํ ʢͦͷϊʔυ͸ Successor ͱݺͿʣ

Slide 26

Slide 26 text

Ϧϯάۭؒ ഑ஔ ഑ஔ ഑ஔ

Slide 27

Slide 27 text

Ϧϯάۭؒ ނোͰ࠶഑ஔ͕ඞཁͳΩʔ਺͸ ʹ࡟ݮ͞ΕΔ ഑ஔ ࠶഑ஔ ഑ஔ

Slide 28

Slide 28 text

Αͬͯ ϊʔυ௥Ճʗނোʢҙਤతͳݮগ΋ʣ ʹରͯ͠ ہॴతͳӨڹʹ཈͑ΒΕΔ

Slide 29

Slide 29 text

Finger Table ղઆ

Slide 30

Slide 30 text

Chord ͷಛ௃తͳ࢓૊Έ ! ҰݴͰද͢ͱγϣʔτΧοτతͳ ?

Slide 31

Slide 31 text

Bad Example ʘ ࠷ॳʹμϝͳྫΛݟͯΈ·͠ΐ͏ ʗ

Slide 32

Slide 32 text

୳ࡧ͢Δͱ͖ʹ key ͕͋Δ ୳ࡧΛϦΫΤετ ͢Δϊʔυ

Slide 33

Slide 33 text

ϊʔυΛॱ൪ʹḷͬͯ͠·͏ͱ ઢܗ୳ࡧʹͳͬͯ͠·͏… ʘ Oh, No! ʗ

Slide 34

Slide 34 text

Finger Table ొ৔

Slide 35

Slide 35 text

೚ҙͷϊʔυʹରͯ͠ ࢦ਺ؔ਺తʹ୳ࡧՄೳͳ ϩέʔγϣϯʢҙ༁ʣΛఆΊͯ ଟஈ֊ʹ୳ࡧͤ͞Δ

Slide 36

Slide 36 text

͜ͷྫͩͱ m=3 ͰޮՌ͕ແͦ͞͏ʹݟ͑Δ͚Ͳ... Finger Table

Slide 37

Slide 37 text

ઢܗ୳ࡧΛճආͰ͖ΔͨΊ ۭؒͷεέʔϦϯάʹରͯ͠ ୳ࡧ࣌ؒ͸େ͖͘ࠨӈ͞Εͳ͘ͳΔ ʘ Good! ʗ

Slide 38

Slide 38 text

“Chord” = Consistent Hashing + Finger Table ʘ βοΫϦͱཧղͯ͠΋Β͑ͨ ? ʗ

Slide 39

Slide 39 text

࣮ࡍͷ “Chord” Ͱ͸ ϊʔυΛ SHA-1(ip, port) Ͱ഑ஔͯ͠ ΩʔΛ SHA-1(key) Ͱ഑ஔ͢Δ ※SHA-1 ͳΒ 160 bit ͷۭؒͰදݱͰ͖Δ

Slide 40

Slide 40 text

·ͱΊ

Slide 41

Slide 41 text

೔ʑ࢖ͬͯΔٕज़͸ ੈքதͷεΰΠਓ͕ͨͪߟ͑ͨ ΞϧΰϦζϜʹࢧ͑ΒΕ͍ͯΔʂ

Slide 42

Slide 42 text

ٕज़Λͨͩ࢖͏͚ͩͰ͸ͳ͘ ཁૉٕज़Λཧղ͢Δ͜ͱ΋ॏཁʂ

Slide 43

Slide 43 text

To be continued …