Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Paxos made simpleを理解しよう

Paxos made simpleを理解しよう

Paxosを理解するための入り口を目指した資料です。
原論ではなくPaxos made simpleがどんな展開で分散システムの合意を可能とするアルゴリズムを構築するのかをわかった上で調べると理解しやすいのではと考え作成しました。

Avatar for kichinosukey

kichinosukey

October 22, 2017
Tweet

More Decks by kichinosukey

Other Decks in Technology

Transcript

  1. 1BYPT.BEF4JNQMF w ݪ࿦ʢ5IF1BSU5JNF1BSMJBNFOUʣΛ؆୯ʹઆ໌ w ʮҙຯΘ͔ΒΜʯͱݴΘΕͯͨΒ͍͠ w l"UUIF10%$DPOGFSFODF *HPUUJSFEPGFWFSZPOFTBZJOHIPX EJ⒏DVMUJUXBTUPVOEFSTUBOEUIF1BYPTBMHPSJUINz w

    ෼ࢄγεςϜʹ͓͍ͯ߹ҙΛऔΔ͜ͱ͕Ͱ͖ΔΞϧΰϦζϜΛఏҊ w ୯७ͳϞσϧΛݩʹҰͭͣͭ໰୊Λղܾͯ͠׬੒͍ͤͯ͘͞ w ઐ໳༻ޠͳͲ͸ͳ֓͘೦తͳཧղ͕ൺֱత༰қ w ࢀߟϦϯΫ w ຋༁ɿ1BYPT.BEF4JNQMF w ෼ࢄγεςϜͷϦςϥγʔ%JTUSJCVUFE4ZTUFNT-JUFSBDZ w 1BYPT
  2. ͦ΋ͦ΋ w ͳͥ͜Μͳ͜ͱΛௐ΂Δඞཁ͕͋Δͷ͔ʁ w ϏοτίΠϯʹ͓͚Δίϯηϯαε w ʮ࠷௕ͷνΣʔϯ͕།Ұͷ୆ாͰ͋Δʯͱશମ͕৴͡Δ w ΑΓ௕͍νΣʔϯͷग़ݱͰ୆ா͸มΘΓ͏Δ w

    ͭ·Γ߹ҙΛऔΔ͜ͱ͕Ͱ͖ΔΞϓϩʔνΛ୳Δඞཁ͕͋Δ w গͳ͘ͱ΋ܾࡁج൫ͱͯ͠ͷར༻Λߟ͑ΔͳΒ.645 w ʮͦΜͳ͜ͱ஌ͬͱΔʯ w ؒҧ͍ͳͲࢦఠͯ͠΋Β͑Δͱॿ͔Γ·͢ w ʮ͋Μ·Γ஌Βͳ͍ʯ w ͜ΕΛػʹௐ΂ͯΈ·͠ΐ͏ʂ
  3. w 1ɿ"DDFQUPS͸࠷ॳʹड͚औͬͨ஋Λঝೝ͠ͳ͚Ε͹ͳΒͳ͍ w 1஋WΛ࣋ͭఏҊ͕બ୒͞Εͨ৔߹ɺΑΓେ͖ͳ൪߸Λ࣋ͭબ୒͞Εͨ ఏҊ͸શͯಉ͡WΛ࣋ͭ w 1B΋͠஋WΛ࣋ͭఏҊ͕બ୒͞ΕͨͳΒ͹ɺ೚ҙͷ"DDFQUPSʹঝೝ͞ΕͨΑΓେ ͖ͳ൪߸ͷఏҊશͯ͸஋WΛ࣋ͭ w 1C஋WΛ࣋ͭఏҊ͕બ୒͞ΕͨͳΒ͹ɺ೚ҙͷQSPQPTFSʹΑΓఏग़͞Εͨશͯͷ

    ΑΓେ͖ͳ൪߸ͷఏҊ͸஋WΛ࣋ͭ w 1D೚ҙͷWͱOʹ͓͍ͯɺ൪߸Oͱ஋WΛ࣋ͭఏҊ͕ൃߦ͞Εͨͱ͖ɺ࣍ͷͲͪΒ͔ ͷ৚݅ʹै͏ա൒਺ͷBDDFQUPSʹΑΓߏ੒͞ΕΔू߹4͕ଘࡏ͢Δ w ͜ΕΒΛ߱ॱʹʢ1D1Cʜʣຬͨ͢ΞϧΰϦζϜΛఏҊ w ࣮૷Ξϓϩʔνʹ·Ͱݴٴ 1BYPT.BEF4JNQMF
  4. w 1SPQPTFS w ஋ΛఏҊ͢Δਓ w "DDFQUPS w ஋Λड͚Δਓ w ͍͔ͭ͘ͷूஂʢΫΦϥϜʣʹݻ·͍ͬͯΔ

    w ूஂͷதͰϝοηʔδΛ͔֬Ί߹͏ʢηΠϑςΟʣ w -FBSOFS w ஋͕ॲཧ͞Εͨ͜ͱΛ֬ೝ͢Δਓ w ͦͷϝοηʔδ͸͍ͨͣΒ͞ΕΔ͔΋͠Εͳ͍ͷͰෳ਺͍Δ ͭͷΫϥε
  5. 1SPQPTFS "DDFQUPS  -FBSOFS Ͱ͠ΐ Ͷɺ͓L w ࣮૷ʹ͓͍ͯ͸୯Ұͷϓϩηε͕ҰͭҎ্ͷΤʔδΣϯτΛԋͯ͡΋ߏΘ ͳ͍ w

    ׳शͱͯ͠ඇಉظͰɺ#Z[BOUJOFϞσϧͰ͸ͳ͍ w ΤʔδΣϯτ͸ى͖ͨΓ৸ͨΓɺؾ··ʹৼΔ෣͏ w ϝοηʔδ͸յΕͳ͍΋ͷͱ͢Δ ໰୊
  6. 1SPQPTFS "DDFQUPS  -FBSOFS Ͱ͠ΐ Ͷɺ͓L w ࣮૷ʹ͓͍ͯ͸୯Ұͷϓϩηε͕ҰͭҎ্ͷΤʔδΣϯτΛԋͯ͡΋ߏΘͳ͍ w ׳शͱͯ͠ඇಉظͰɺ#Z[BOUJOFϞσϧͰ͸ͳ͍

    w ΤʔδΣϯτ͸ى͖ͨΓ৸ͨΓɺؾ··ʹৼΔ෣͏ w ϝοηʔδ͸յΕͳ͍΋ͷͱ͢Δ w "DDFQUPSʹো֐͕ൃੜͨ͠৔߹ʹ͸΍ΓͱΓ͕Ͱ͖ͳ͘ͳΔ ໰୊
  7. ஋ͷબ୒ Ͱ͠ΐ Β͍͠Α Β͍͠Α Β͍͠Α 1SPQPTFS "DDFQUPS  -FBSOFS "DDFQUPS

    "DDFQUPS Ͱ͠ΐ Ͱ͠ΐ w ෳ਺ͷ"DDFQUPSΛ࠾༻͢Δ w ஋͸े෼ʹେ͖ͳʢ೚ҙͷա൒਺ͷΤʔδΣϯτʹΑΓ੒ΓཱͭʣूஂʹΑͬ ͯ஋ͷબ୒͕֬໿͞ΕΔ w ͭͷूஂ͕ଘࡏ͢Δͱ͖͸Ұͭͷ"DDFQUPSΛڞ௨ʹ࣋ͨͤΔ͜ͱͰ͏·͍͘͘ w 1ɿ"DDFQUPS͸࠷ॳʹड͚औͬͨ஋Λঝೝ͠ͳ͚Ε͹ͳΒͳ͍
  8. ໰୊ղܾͷํ਑ w ෳ਺ͷఏҊ͕બ୒͞ΕΔ͜ͱΛڐՄ͍ͨ͠ w શͯͷબ୒͞ΕͨఏҊ͸ಉ͡஋Λ͍࣋ͬͯͳ͚Ε͹ͳΒͳ͍ w 1஋WΛ࣋ͭఏҊ͕બ୒͞Εͨ৔߹ɺΑΓେ͖ͳ൪߸Λ࣋ͭબ୒ ͞ΕͨఏҊ͸શͯಉ͡WΛ࣋ͭ w ॏେͳηΠϑςΟཁ݅ɺʮͨͬͨҰͭͷ஋͕બ୒͞ΕΔʯͱ͍͏ଐੑ

    Λอূ͢Δ w ஋͕બ୒͞ΕΔͨΊʹ͸ɺఏҊ͸࠷௿Ͱ΋Ұͭͷ"DDFQUPSʹঝೝ ͞ΕΔඞཁ͕͋Δ w 1B΋͠஋WΛ࣋ͭఏҊ͕બ୒͞ΕͨͳΒ͹ɺ೚ҙͷ"DDFQUPSʹ ঝೝ͞ΕͨΑΓେ͖ͳ൪߸ͷఏҊશͯ͸஋WΛ࣋ͭ w Έ͍ͨͳ͜ͱΛԆʑͱଓ͚͍ͯ͘
  9. ֤Ϋϥεͷؔ܎ੑ 2VPSVN 1SPQPTFS -FBEFS "DDFQUPS -FBSOFS w աڈʹঝೝ͞Εͨ஋Λ
 ໰͍߹ΘͤΔ w

    ఏҊ൪߸ҎԼͷఏҊΛ
 ঝೝ͠ͳ͍Α͏ཁٻ͢Δ w ఏҊ͢Δ w ى͖ͨ࣌ʹաڈͷ͜ͱΛ
 ๨ΕΔ͜ͱ͕͋Δ w աڈʹঝೝ͞Εͨ஋Λ
 ໰͍߹ΘͤΔ w ఏҊ൪߸ҎԼͷఏҊΛ
 ঝೝ͠ͳ͍Α͏ཁٻ͢Δ w ఏҊΛऔΓ·ͱΊΔ w ఏҊ͢Δ w ى͖ͨ࣌ʹաڈͷ͜ͱΛ
 ๨ΕΔ͜ͱ͕͋Δ w ఏҊΛड͚औΓ஋Λঝೝ͢Δ w બ୒ͨ͠஋Λ2VPSVN಺Ͱ͔֬Ί߹͏ w ৔߹ʹΑͬͯ͸ఏҊΛແࢹ͢Δ w ى͖ͨޙ΋աڈͷ͜ͱ͸͍֮͑ͯΔ w 2VPSVN͕ෳ਺ଘࡏ͢Δ৔߹͸
 ڞ௨ͷ"DDFQUPSΛ࣋ͭ ڞ௨ w ϝοηʔδ͸յΕͳ͍ w ΤʔδΣϯτ͸৸ͨΓى͖ͨΓ
 ؾ··ʹৼΔ෣͏ w #Z[BOUJOFো֐͕ͳ͍͜ͱલఏ w બ୒͞Εͨ஋ΛهԱ͢Δ w ୅දऀ͸࠷ѱ͍ͳͯ͘΋͍͍ w "DDFQUPS͕͍ͳ͘ͳͬͨ࣌
 1SPQPTFSʹ஋ΛఏҊͤ͞Δ