Slide 1

Slide 1 text

Why Riak? Why SoftLayer? 2014/7/25 SoftLayerษڧձ #2 @kuenishi

Slide 2

Slide 2 text

ࣗݾ঺հ •UENISHI Kota @ kuenishi •github, twitter, … •Erlangྺ5೥ɺ෼ࢄγεςϜྺ6೥ •࠷ۙ͸ Riak CS ͷ։ൃ

Slide 3

Slide 3 text

Riak is Կ •ʮNoSQLσʔλϕʔεʯ •ErlangͰॻ͔Ε͍ͯΔΒ͍͠ •…ͱ͍ΘΕ͍ͯΔ͕ৄ͍͠࿩͸ޙ΄Ͳ

Slide 4

Slide 4 text

What?

Slide 5

Slide 5 text

Yay!!

Slide 6

Slide 6 text

1೥Ҏ্લ͔Β ࢖͑ͯ·ͨ͠

Slide 7

Slide 7 text

Why Riak?

Slide 8

Slide 8 text

Riak࢖͍υίϩ •Մ༻ੑ͕େࣄͳ৔໘ •εέʔϧΞοϓɾμ΢ϯͳͲӡ༻ •ϑΣΠϧΦʔόʔ is େม •ωοτϫʔΫ͕੾ΕͨΒ •ϊʔυ௥Ճɾ࡟আͷίετ

Slide 9

Slide 9 text

σʔλϕʔεͷ Մ༻ੑʹର͢ΔڴҖ •ϋʔυ΢ΣΞނোʢωοτϫʔΫ΋ʣ ʹΑΔϑΣΠϧΦʔόʔ •ΞοϓάϨʔυɺϝϯςφϯε •աෛՙ •όοΫΞοϓ

Slide 10

Slide 10 text

ϑΣΠϧΦʔόʔ 1. ϚελʔͷނোΛݕग़ʢ>10s secondsʣ 2. εϨʔϒʹ੾Γସ͑ʢ> ??ʣ 3. ϚελʔΛम෮ (>hours) 4. Ϛελʔʹ੾Γ໭͠ (> ??) ͏͠Ζ͕Shared DiskͩΖ͏͕ɺShared NothingͩΖ͏͕ɺ DBϓϩηεͷϑΟΤϧΦʔόʔத͸ΞΫηεͰ͖ͳ͍

Slide 11

Slide 11 text

ωοτϫʔΫނো •ಛผͳ޻෉Λ͠ͳ͍ݶΓɺϚϧνϚελ ʢSplit Brainʣঢ়ଶʹͳͬͯσʔλ͕ͣΕ ͯ͠·͏→म෮ෆೳ •ӡ༻Λ޻෉ͯ͠ͲͪΒ͔ΛϚελʹͯ͠΋ɺ ϚελͰͳ͍ํͷωοτϫʔΫͰ͸ɺσʔ λϕʔε͕࢖͑ͳ͘ͳΔ ? ?

Slide 12

Slide 12 text

ΞοϓάϨʔυ •σʔλϕʔεͷΞοϓάϨʔυ͸ϚΠφʔ όʔδϣϯͰ͋ͬͯ΋େม •Ͳ͜ΛͲ͏ࢭΊΔɺͲ͏ىಈ͢Δ 1.↑ 2.↑

Slide 13

Slide 13 text

աෛՙ •جຊํ਑ɿ ෛՙΛԼ͛Δ BUSY!!!

Slide 14

Slide 14 text

όοΫΞοϓ •ࢭΊΕΔͱ΋ͷָ͘͢͝ͳΜ͚ͩͲ… 1.→ 2.→

Slide 15

Slide 15 text

With Riak:

Slide 16

Slide 16 text

Quorum ϨϓϦέʔγϣϯ •NݸͷϊʔυʹσʔλΛෳ੡ •ॻࠐ࣌͸ W ݸͷAck͕͋Ε͹Α͍ •ʢ௨ৗɺN͸ح਺ʣ •ಡΈग़࣌͠͸ R ݸͷAck͕͋Ε͹Α͍ • R + W > N ͱͳ͍ͬͯΕ͹Α͍ σϑΥϧτ: (R, W, N) = (2, 2, 3) ͻͱΓ͘Β͍յΕ͍ͯͯ΋WriteՄೳ

Slide 17

Slide 17 text

Consistent Hashing • 160-bit Ωʔۭؒ • ۭؒΛ౳෼͢Δ • ύʔςΟγϣϯ͸ϊʔυ͕ ݸผ؅ཧ • ϨϓϦΧ͸NݸͷύʔςΟ γϣϯʹίϐʔ͞ΕΔ OPEF OPEF OPEF OPEF hash(“meetups/spamham”) N=3

Slide 18

Slide 18 text

Ұ࣌ނোͷͱ͖ • Ϧϯά্ͷ࣍ͷύʔςΟγϣ ϯʹͱΓ͋͑ͣॻ͖ࠐΜͰ ίϐʔΛ3ͭ࡞͓ͬͯ͘ • ͋ͱͰ෮چͨ͠ͱ͖ʹίϐʔ Λฦ͢ OPEF OPEF OPEF OPEF hash(“meetups/spamham”) N=3

Slide 19

Slide 19 text

ωοτϫʔΫނোͰ΋ •ωοτϫʔΫ෼அ͕ى͖͍ͯͯ΋ͱΓ͋͑ͣॻ͖ࠐΈΛڐ͢ Server2 Server1 Server3 PUT V=42 PUT V=0 Server4 ෮چͨ͠Βॻ͖໭͢ ྆ํ͓࣋ͬͯ͘

Slide 20

Slide 20 text

Write-write Conflict͕ ى͖ͨΒʁ •҉໧ʹ্ॻ͖ͯ͠͠·Θͳ͍ͨΊͷ࢓૊Έ͕͋Δ •ώϯτ: Siblings & Vector Clocks Server2 Server1 Server3 PUT V=42 PUT V=0 V=?

Slide 21

Slide 21 text

ιϑτ΢ΣΞͷ ΞοϓάϨʔυ •ྡಉ࢜ͷόʔδϣϯͰͷແఀࢭɾϩʔ ϦϯάΞοϓάϨʔυͷಈ࡞อূ 1.3.2 1.3.2 1.3.2 1.3.2 1.3.2 1.3.2 1.3.2 1.4.10 1.4.10 1.4.10 1.4.10 1.4.10 1.4.10 1.4.10

Slide 22

Slide 22 text

ϋʔυ΢ΣΞͷ ΞοϓάϨʔυ •ͲͪΒ΋ແఀࢭͰͰ͖Δ •௕ظతʹੑೳΛ্͍͛ͨͱ͖ •ϊʔυަ׵ͰεέʔϧΞοϓ •Ϧιʔεͷར༻ޮ཰͕Α͍ •୹ظతʹੑೳΛ্͍͛ͨͱ͖ •ϊʔυ௥ՃͰεέʔϧΞ΢τ •͙͢ʹ௥Ճͯ͠ΦϯϥΠϯʹͳΕΔ աෛՙʹͳΓͦ͏ͳ λΠϛϯάͰ…

Slide 23

Slide 23 text

Ϋϥελؒ ϨϓϦέʔγϣϯ

Slide 24

Slide 24 text

Ϋϥελؒ ϨϓϦέʔγϣϯ

Slide 25

Slide 25 text

Ϋϥελؒ ϨϓϦέʔγϣϯ

Slide 26

Slide 26 text

Ϋϥελؒ ϨϓϦέʔγϣϯ

Slide 27

Slide 27 text

Why Cloud?

Slide 28

Slide 28 text

Մ༻ੑɺӡ༻ੑ •σʔλϕʔεͳͲͷϛυ ϧ΢ΣΞ͕͍͘Β༏Εͯ ͍ͯ΋ҙຯ͕ͳ͍ •ϋʔυ΢ΣΞ΍ωοτϫʔ Ϋ͕ਖ਼͘͠ઃܭɾӡ༻͞ Ε͍ͯͳ͚Ε͹αʔϏε Λӡ༻Ͱ͖ͳ͍ ݐ෺ɾిݯɾۭௐ ωοτϫʔΫ αʔόʔHW ϛυϧ΢ΣΞ αʔϏε

Slide 29

Slide 29 text

͔ͩΒΫϥ΢υ

Slide 30

Slide 30 text

Why SoftLayer?

Slide 31

Slide 31 text

ϕΞϝλϧαʔόʔ why?

Slide 32

Slide 32 text

Ծ૝ԽͷΦʔόʔϔουʁ

Slide 33

Slide 33 text

one of ෼ࢄγεςϜͰେࣄͳ͜ͱ is ނোͷ୯Ґ

Slide 34

Slide 34 text

ނোͷ୯Ґ •1ͭͷσΟεΫ •1ͭͷNIC •1ͭͷαʔόʔ •1ͭͷεΠον Ծ૝Խͯ͠ɺͻͱͭͷ Ϛγϯ্ʹෳ਺ͷϊʔ υ͕ೖ͍ͬͯΔͱɺͻ ͱͭͷϚγϯނো͕ଟ ॏނোʹݟ͑ͯ͠·͏

Slide 35

Slide 35 text

ނোͷ୯Ґ ϕΞϝλϧαʔόʔ Ծ૝Խ͞ΕͨϚγϯ OS Riak OS Riak OS Riak OS Riak OS Riak OS Riak OS Riak OS Riak

Slide 36

Slide 36 text

ଞʹ΋ •1୆ͷϚγϯͷϦιʔεΛ઎༗Ͱ͖Δ •σΟεΫυϥΠϒͷѻ͍͕೉͍͠ •ڞ༗σΟεΫΛ੾Γग़ͯ͠Ϛ΢ϯτͯ͠࢖͏ ελΠϧ •EphemeralσΟεΫ •RawσόΠε΋෼ࢄετϨʔδʹͯ͠͠·͏ •Sheepdogతͳ΋ͷͬͯλΠϔϯ

Slide 37

Slide 37 text

࣮ࡍɺੑೳ΋ҧ͏ Bare Metal Virtual “Riak Performance Analysis: Bare Metal vs Virtual” July 16, 2013 http://blog.softlayer.com/2013/riak-performance-analysis-bare-metal-v-virtual

Slide 38

Slide 38 text

͔͠΋SoftLayerͳΒ… •Webϒϥ΢βͰRiakΛҰൃσϓϩΠͰ ͖ͯ͠·͏ •DCؒϨϓϦέʔγϣϯͷઃఆʢ͜Ε͕ ׂͱ೉͍͠ʣ΋͠ͳ͍͍ͯ͘ •ΤϯλʔϓϥΠζ൛ɺBasho͔ΒϥΠη ϯεΛങ͏ඞཁ͢Βͳ͍

Slide 39

Slide 39 text

·ͱΊ •αʔϏεͷՄ༻ੑɺӡ༻ੑ͸ϑϧελοΫͰߟ͑ Δ΂͖ •Riak͸෼ࢄγεςϜͷ೉͍͠໰୊Λղ͍ͯ͘ΕΔ •DC~NW~OSͷ೉͍͠໰୊͸SoftLayerͰ •RiakͷΫϥελؒϨϓϦέʔγϣϯͰσʔληϯ λʔΛލ͝͏

Slide 40

Slide 40 text

Questions? @BashoJapan [email protected] http://basho.co.jp/riak http://github.com/basho/riak