Slide 1

Slide 1 text

8FCΞϓϦέʔγϣϯʹ ͓͚Δฒߦॲཧͷ೉͠͞ (P$POGFSFODF`JO"VUVNO4&/%"* /BPLJ,JTIJ !QBTT

Slide 2

Slide 2 text

ͯ͞ɺօ͞Μ

Slide 3

Slide 3 text

ฒߦॲཧ΍ͬͯ·͔͢ʁ !

Slide 4

Slide 4 text

ฒߦॲཧਏ͍Ͱ͔͢ʁ "

Slide 5

Slide 5 text

๻͸ਏ͔ͬͨͰ͢

Slide 6

Slide 6 text

ࠓ೔͸ͦͷਏ͞ʹͲ͏ରॲ͔ͨ͠ ʹ͍ͭͯ঺հ͠·͢

Slide 7

Slide 7 text

ࠓ೔ͷτʔΫ ˔ ಺༰ ฒߦॲཧͰϋϚͬͨ໰୊ʹͲ͏Ξϓϩʔν͍͔ͯͬͨ͠ ˓ 8FCΞϓϦέʔγϣϯ "1* Λ୊ࡐʹ ˓ ίʔυͷ࿩ΑΓɺઃܭ΍ߟ͑ํͷ࿩͕ϝΠϯ ˔ Ϩϕϧײ #FHJOOFSd*OUFSNFEJBUFΛ૝ఆ ˓ (Pͷجຊจ๏͸લఏ஌ࣝͱ͠·͢ ˓ HPSPVUJOF΍DIBOOFMͷجຊతͳ࢖͍ํ΋લఏ஌ࣝͱ͠·͢

Slide 8

Slide 8 text

ࣗݾ঺հ /BPLJ,JTIJ ˔ (Pྺ೥ ˔ (P$POGFSFODFྺճ ௌߨ ˔ ژ౎େֶ ޻ֶ෦ ˔ $".1)03୅ද !QBTT

Slide 9

Slide 9 text

Slide 10

Slide 10 text

Slide 11

Slide 11 text

"HFOEB ฒߦॲཧͷԿ͕ਏ͍ʁ ୊ࡐͱͳΔฒߦॲཧΛ࢖ͬͨ8FCΞϓϦέʔγϣϯ ϋϚͬͨͱ͜Ζ ·ͱΊ

Slide 12

Slide 12 text

ฒߦॲཧͷԿ͕ਏ͍ʁ

Slide 13

Slide 13 text

શମ೺Ѳͷ೉͠͞ ˔ ඞͣ͠΋ιʔείʔυͷ্͔Βॱʹ࣮ߦ͞Εͳ͍ ˔ ͋Δ࣌఺ͰͲͷHPSPVUJOF͕ىಈ͍ͯ͠Δ͔೺Ѳͮ͠Β͍ ˔ ෳ਺ͷHPSPVUJOFΛಉ࣌ʹ೺Ѳ͢Δඞཁ͕͋Γೝ஌ෛՙߴ ༁Θ͔ΒΜ

Slide 14

Slide 14 text

HPSPVUJOFηʔϑͷ୲อ ˔ ෳ਺ͷHPSPVUJOF͔Βม਺Λಉ࣌ʹಡΈॻ͖ͯ͠΋໰୊ͳ͍ঢ়ଶ ˓ ଞͷݴޠͰ͸ʮεϨουηʔϑʯͱ΋ݴ͏ ˔ DIBOOFM΍TZOD.VUFYΛ࢖ͬͯHPSPVUJOFηʔϑʹ͠Α͏ͱࢼΈΔ ˓ ࡉ͔͍ม਺Ͱରࡦ࿙Ε͕ͪ͠ ͍ͭͷؒʹ͔஋͕ ॻ͖׵ΘͬͯΔ

Slide 15

Slide 15 text

DIBOOFMͷϒϩοΩϯά ˔ DIBOOFMʹ༰ྔҎ্ͷ஋Λૹ৴͠Α͏ͱ͢ΔͱϒϩοΫ͞ΕΔ ˔ DIBOOFM͕ҲΕΔͱҙਤͤͣϒϩοΩϯά͕ൃੜ͢ΔՄೳੑ ˓ ϦΫΤετ਺͕গͳ͍ͱݦࡏԽ͠ʹ͍͘ ٸʹΞϓϦέʔγϣϯࢭ ·ͬͨΜ͚ͩͲ

Slide 16

Slide 16 text

͜Εશ෦ϋϚΓ·ͨ͠

Slide 17

Slide 17 text

Ͳ͏ཱͪ޲͔͔ͬͨʁ

Slide 18

Slide 18 text

ͦͷલʹ

Slide 19

Slide 19 text

୊ࡐͱͳΔฒߦॲཧΛ ࢖ͬͨΞϓϦέʔγϣϯ

Slide 20

Slide 20 text

৽͍͠Իָͱग़ձ͏ָ͠͞Λ͋ͳͨʹ

Slide 21

Slide 21 text

3FMBZN ϦϞʔτϫʔΫதͷ࡞ۀ༻#(.Λ 4/4Ͱืू ༑ୡͱͷυϥΠϒதʹྲྀ͢ۂΛ ֤ʑͷεϚϗ͔Βࣗ༝ʹ௥Ճ օ͕ௌָ͖͍ͨۂΛͭͷεϐʔΧʔͰָ͠ΊΔ8FCΞϓϦ

Slide 22

Slide 22 text

3FMBZNͷಛ௃ օ͕ௌָ͖͍ͨۂΛͭͷεϐʔΧʔͰָ͠ΊΔ8FCΞϓϦ

Slide 23

Slide 23 text

3FMBZNͷ։ൃ ˔ ֶੜͷʮझຯ։ൃʯ ˔ 044Ͱ։ൃ ˓ IUUQTHJUIVCDPNDBNQIPSSFMBZNTFSWFS ˓ IUUQTHJUIVCDPNDBNQIPSSFMBZNDMJFOU ˔ ࢖༻ٕज़(P 7VF

Slide 24

Slide 24 text

3FMBZNʹ͓͚Δʮηογϣϯʯ ˔ ͭͷ࠶ੜΛද͢୯Ґ ˓ /ਓͷϢʔβʢࢀՃऀʣ͕ηογϣϯʹࢀՃͰ͖Δ ˓ .ۂָۂΛ௥ՃͰ͖Δ ͜Ε͕ηογϣϯ ˞ηογϣϯʹΧϥΦέϧʔϜͱߟ͑Δͱཧղ͠΍͍͔͢΋

Slide 25

Slide 25 text

ฒߦॲཧΛ࢖͍ͬͯΔՕॴ

Slide 26

Slide 26 text

ࢀՃऀಉ࢜ͷϦΞϧλΠϜಉظ ˔ ۂͷ௥Ճɺ࠶ੜ։࢝౳ͷΠϕϯτΛશͯͷ୺຤ʹ൓ө͍ͤͨ͞ ˔ 8FC4PDLFUΛ࢖࣮ͬͯݱ ˓ 4FSWFSˠ$MJFOU

Slide 27

Slide 27 text

ηογϣϯͷ࠶ੜঢ়گͷ؅ཧ ˔ ࠶ੜঢ়گͷมԽΛ؂ࢹ ˔ ηογϣϯʹHPSPVUJOF ˔ Πϕϯτ͸8FC4PDLFUͰ഑৴

Slide 28

Slide 28 text

ۂͷ࠶ੜ͕ऴྃͨ͠λΠϛϯάͰ%#ͷߋ৽΍Πϕϯτͷ഑৴Λ͍ͨ͠ ͳͥηογϣϯ؅ཧHPSPVUJOF͕ඞཁͳͷ͔ʁ ΞϓϦέʔγϣϯଆͰλΠϚʔΛ࣋ͬͯ࠶ੜऴྃΛݕ஌͢Δ͜ͱʹ ˔ 4QPUJGZ8FC"1*ʹ͸8FCIPPL͕ͳ͍ ˔ ʮ͍ͭۂͷ࠶ੜ͕ऴ͔ྃͨ͠ʯΛ஌Δ͢΂͕ͳ͍

Slide 29

Slide 29 text

ϋϚͬͨͱ͜Ζ

Slide 30

Slide 30 text

࿈ଧ͢Δͱฦͬͯ͜ͳ͘ͳΔ"1*

Slide 31

Slide 31 text

࿈ଧ͢Δͱฦͬͯ͜ͳ͘ͳΔ"1* ˔ ָۂͷεΩοϓૢ࡞Λߦ͏ΤϯυϙΠϯτ ˓ ୟ͘ͱ࣍ͷۂʹભҠ͢Δ ˔ NT͓͖ʹλοϓͨ͠Β໰୊ͳ͘ಈ࡞ ˔ ௒଎࿈ଧͨ͠ΒϨεϙϯε͕ฦͬͯ͜ͳ͘ͳΔ

Slide 32

Slide 32 text

Slide 33

Slide 33 text

εΩοϓ"1*ͷ࣮૷Λ෼ੳ εΩοϓ"1*͸ඇಉظͰηογϣϯͷ࠶ੜঢ়گΛߋ৽ ηογϣϯऴྃঢ়ଶͳΒ#BE3FRVFTUͯ͠SFUVSO 4QPUJGZ8FC"1*Λୟ͍ͯۂΛεΩοϓ TLJQ$Iͱ͍͏DIBOOFMΛ௨ͯ͡ɺηογϣϯ؅ཧHPSPVUJOFʹ "1*͕ݺ͹Εͨ͜ͱΛૹ৴ B λΠϚʔͷ࣌ؒΛϦηοτ͢Δඞཁ͕͋Δ "DDFQUFE )BOEMFSHPSPVUJOF͸ऴྃ

Slide 34

Slide 34 text

DIBOOFMͷૹ৴͕ոͦ͠͏

Slide 35

Slide 35 text

HPSPVUJOFͷϥΠϑαΠΫϧΛ ҙࣝͯ͠ DIBOOFMͷ௨৴Λௐࠪ͢Δ

Slide 36

Slide 36 text

HPSPVUJOFͷϥΠϑαΠΫϧΛҙࣝ͢Δ ˔ HPSPVUJOF͕ʮ͍ͭ։࢝͞ΕΔ͔ʯʮ͍ͭऴྃ͢Δ͔ʯΛߟ͑Δ ˔ DIBOOFMͷૹ৴࣌ʹHPSPVUJOF͕ੜ͖͍ͯΔ͔Ͳ͏͔Λߟ͑Δ ϥΠϑαΠΫϧΛҙࣝ͢ΔͱDIBOOFMͷόάΛൃݟ͠΍͍͢

Slide 37

Slide 37 text

؆୯ͳྫ ˔ HPSPVUJOF#͸͍ͭૹ৴ͯ͠΋ྑ͍ ˔ HPSPVUJOF"͸ૹ৴Ͱ͖ͳ͍৔߹͕͋Δ "ˠ#ʹૹ͍ͬͯΔίʔυ͕ ͋Ε͹όάͷةݥ

Slide 38

Slide 38 text

࣮ࡍʹߟ͑ͯΈΔ

Slide 39

Slide 39 text

TLJQ$Iͷड͚औΓଆͰߦ͍ͬͯͨॲཧ ड͚औΓଆ͸ηογϣϯ؅ཧHPSPVUJOF ˔ ࣍ʹ࠶ੜ͢Δۂ͕ଘࡏ͢Δ৔߹ ࣍ͷۂΛ4QPUJGZͷΩϡʔʹ௥Ճ ˔ શͯͷۂͷ࠶ੜ͕ऴΘͬͨ৔߹ ηογϣϯΛऴྃঢ়ଶʹભҠɺ%#Λߋ৽ શͯͷ୺຤ʹηογϣϯऴྃΠϕϯτΛૹ৴ HPSPVUJOFΛऴྃ ˡո͍͠

Slide 40

Slide 40 text

˔ ͷεΩοϓͰηογϣϯ͕ऴྃ ˔ ʙ/ͷεΩοϓॲཧ͸DIBOOFM͕ ͦͷ͏ͪҲΕ్ͯத͔ΒϒϩοΫ Կ͕ى͍͔ͬͯͨ͜ )BOEMFS͕ϒϩοΫ͞Ε Ϩεϙϯε͕ฦΒͳ͍ࣄଶʹ

Slide 41

Slide 41 text

ҰԠରࡦΛ͍ͯͨ͠ ˔ ࠶ੜঢ়ଶΛνΣοΫ͠ɺऴྃঢ়ଶͳΒ#BE3FRVFTUͰSFUVSO ˔ τϥϯβΫγϣϯͷϩοΫ͕͖ͪΜͱ͔͔͍ͬͯͳ͔ͬͨ ˓ εΩοϓͷঢ়ଶมߋ͕൓ө͞ΕΔલͷ࠶ੜঢ়ଶΛऔಘ͍ͯͨ͠ ˓ ߴස౓ͰϦΫΤετ͕དྷͳ͍ͱ࠶ݱ͠ͳ͍

Slide 42

Slide 42 text

࢑ఆతͳରԠ DIBOOFMͷઃܭΛม͑Δʹ͸͕͔͔࣌ؒΔͱ൑அɺ࢑ఆతͳରԠΛߦ͏ ˔ ద੾ͳϩοΫΛऔΔ ˔ εΩοϓ"1*ͷϦΫΤετഁغ ˓ 4QPUJGZ8FC"1*ͷϨεϙϯε͕஗͍ͷͰͦ΋ͦ΋࿈ଧ͞Εͨ͘ͳ͍ ˓ ࿈ଧ͞ΕͨΒ͍͔ͭ͘ͷϦΫΤετ͸ഁغͯ͠͠·͏

Slide 43

Slide 43 text

εΩοϓ"1*ͷϦΫΤετഁغ DIBOOFMͷDBQҎ্ͷϦΫΤετ͸ഁغ͢Δ func sendToSkipCh() { if len(skipCh) < cap(skipCh) { skipCh <- struct{}{} } }

Slide 44

Slide 44 text

˔ DIBOOFMपΓͷόά͕͔͋ͬͨΒͱ͍ͬͯɺDIBOOFMΛۦ࢖ͯ͠όά ͷରࡦΛ͠ͳ͍͍ͯ͘ ˔ ΋ͬͱखલͷஈ֊Ͱॲཧ͢Ε͹ɺ؆୯ʹରॲͰ͖Δ͜ͱ΋ଟ͍ ͨͩ͠ɺٕज़తʹഊ๺ײ ฒߦॲཧͷόάΛฒߦॲཧҎ֎ͷͱ͜ΖͰରࡦ

Slide 45

Slide 45 text

શମઃܭϨϕϧͰ ࠜຊతͳରࡦΛߟ͑ͯΈΔ

Slide 46

Slide 46 text

DIBOOFMͷॴ༗ݖΛߟ͑Δ ˔ ߟ͑ํͷ࿩ ʮ(PݴޠʹΑΔฒߦॲཧʯʹͯղઆ ˔ DIBOOFMΛੜ੒ͨ͠HPSPVUJOFͷΈ͕DIBOOFM΁ૹ৴Մೳ ˔ ͦͷଞͷHPSPVUJOF͸ಡΈࠐΈͷΈՄೳ ˔ DIBOOFMͷDMPTF౳ͷϋϯυϦϯά͕͠΍͍͢ func SkipCh() <-chan struct{} { return skipCh } ϥΠϑαΠΫϧͷ୹͍ํ͕DIBOOFMͷॴ༗ݖΛ࣋ͯ͹ ૹ৴͕ϒϩοΫ͞ΕͣʹࡁΉ

Slide 47

Slide 47 text

εΩοϓ"1*ʹ͓͚ΔTLJQ$Iͷॴ༗ݖ ˔ /ݸͷ)BOEMFSHPSPVUJOF͔Β DIBOOFM΁ૹ৴͕ඞཁ ˔ ੜ੒ଆͰॴ༗ݖΛ࣋ͯͯͳ͍ঢ়گ ૹ৴ଆͷHPSPVUJOFͰDIBOOFMΛੜ੒ͯ͠΋ɺηογϣϯ؅ཧHPSPVUJOFʹ౉ͤͳ͍

Slide 48

Slide 48 text

˔ ͜͜Ͱ͸$PNNBOEFSͱ໋໊ ˔ $PNNBOEFS͕ηογϣϯ؅ཧHPSPVUJOFͷॴ༗ݖΛ࣋ͭ ˔ ηογϣϯૢ࡞͸$PNNBOEFSHPSPVUJOFΛܦ༝͢Δ ͣͬͱىಈ͍ͯ͠Δ਌HPSPVUJOFΛ༻ҙ

Slide 49

Slide 49 text

˔ $PNNBOEFS͸)BOEMFSΑΓ௕ੜ͖ͳͷͰϒϩοΫ͞ΕΔ͜ͱ͸ͳ͍ ˔ )BOEMFSଆͷॲཧ͕؆୯ʹ ͜ͷํ๏ͷϝϦοτ

Slide 50

Slide 50 text

σϝϦοτ ˔ ࢖༻͢ΔHPSPVUJOF͕૿͑Δ෼ɺશମ૾͕೺Ѳͮ͠Β͍ ˓ ࠷ॳʹڍ͛ͨʮશମ೺Ѳͷ೉͠͞ʯ

Slide 51

Slide 51 text

ฒߦॲཧϞϦϞϦͰؤுΔ͔Ͳ͏͔͸νʔϜ࣍ୈ ˔ ؤுΔͳΒ ˓ શମ૾͕೺Ѳ͠ʹ͍͘෼ɺυΩϡϝϯτ౳ͷ੔උ͸ͱͯ΋ॏཁ ˓ ͖Ε͍ͳίʔυͰ͋Ε͹υΩϡϝϯτ͸ෆཁ͸͋·Γ௨͡ͳ͍ʢओ؍ʣ ˔ ͜ΕΒʹ౤ࢿ͕Ͱ͖ͳ͍ͳΒͰ͖Δ͚ͩฒߦॲཧΛආ͚Δͷ΋ख ˓ εΩοϓ"1*ͷ࢑ఆରԠͷΑ͏ʹ΍͍ͬͯ͘ ˓ ͦΕ͚ͩͰे෼ͳέʔε΋ଟ͍ ˓ ຊ౰ʹඞཁͳͱ͜ΖͰϐϯϙΠϯτͰ࢖͍ͬͯ͘

Slide 52

Slide 52 text

·ͱΊ

Slide 53

Slide 53 text

·ͱΊ ˔ 3FMBZNͷ"1*αʔόͷ࣮૷தʹฒߦॲཧؔ࿈ͰϋϚͬͨࣄྫΛ঺հ ˓ ࿈ଧ͢Δͱฦͬͯ͜ͳ͘ͳΔ"1* ˔ HPSPVUJOFͷϥΠϑαΠΫϧ΍ॴ༗ݖΛҙࣝͯ͠ઃܭ͢Δͱྑͦ͞͏ ˔ ฒߦॲཧͰϞϦϞϦͰؤுΔ͔Ͳ͏͔͸νʔϜ࣍ୈ ˓ ؤுΔ৔߹͸͖ͪΜͱ౤ࢿ͍ͯ͘͜͠ͱ͕େࣄ ਏ͞Λ৐Γӽ͑ͯΑΓྑ͍ฒߦॲཧϥΠϑΛʂ

Slide 54

Slide 54 text

ࢀߟϦϯΫ ˔ 3FMBZN ˓ IUUQTSFMBZNDBNQIOFU ˔ $PODVSSFODZJTOPUQBSBMMFMJTN 5IF(P#MPH ˓ IUUQTCMPHHPMBOHPSHXB[BUBML ˔ (PݴޠʹΑΔฒߦॲཧ c,BUIFSJOF$PY#VEBZ ࢁޱ ೳ᫫