Slide 1

Slide 1 text

͜Ε·Ͱͷݚڀܦաͱر๬͢Δݚڀ ௶಺ ༎थ 2020೥2݄6೔ ྩ࿨2೥౓4݄ظೖֶ ژ౎େֶେֶӃ ৘ใֶݚڀՊ ത࢜ޙظ՝ఔ ୈֶ̎࣍ྗݕࠪ ޱ಄ࢼ໰

Slide 2

Slide 2 text

2 1. ֶ࢜՝ఔɾम࢜՝ఔͰͷݚڀ 2. ر๬͢Δݚڀͷഎܠͱ໨త 3. ر๬͢Δݚڀͷ՝୊ͱํ๏ 4. ظ଴͞ΕΔݚڀ੒Ռ ໨࣍

Slide 3

Slide 3 text

1. ֶ࢜՝ఔɾम࢜՝ఔͰͷݚڀ

Slide 4

Slide 4 text

4 ֶ࢜՝ఔ: SHA-1ܭࢉγεςϜͷߴεϧʔϓοτԽ ɾഎܠ: ετϨʔδ্ͷσʔλอଘྔ͕૿େ͍ͯ͠Δ ɾ໰୊: σʔλͷॏෳՕॴΛഉআ͢Δ͜ͱʹΑΓɼσʔλอଘྔΛ௿ ݮՄೳ͕ͩɼॏෳ෦෼ͷൃݟॲཧ଎౓͕ϘτϧωοΫͱͳΔ ɾఏҊ: ෳ਺ͷҟͳΔνϟϯΫʹର͢ΔॏෳൃݟॲཧΛSIMDԋࢉثʹ ΑΓฒྻॲཧ͠ɼߴ଎Խ͢Δ ɾ࣮ݧ: ઌߦख๏ͱൺֱͯ͠ɼ2.0ഒͷεϧʔϓοτ޲্Λୡ੒ͨ͠ ௶಺༎थ, ҏ໺จ඙, ஔాਅੜ, ࢁ઒૱, ദ໦ַ඙, ഡݪ݉Ұ, ॏෳഉআετϨʔδͷͨΊͷ SHA-1ܭࢉγεςϜͷSSE໋ྩʹ ΑΔߴεϧʔϓοτԽ, ిࢠ৘ใ௨৴ֶձ࿦จࢽ D, 96(10), 2101-2109 2013.

Slide 5

Slide 5 text

5 म࢜՝ఔ: TCP/IPνΣοΫαϜͷGPUʹΑΔੑೳ޲্ ɾഎܠ: ίϯϐϡʔλωοτϫʔΫ͕޿ଳҬԽ͍ͯ͠Δ ɾ໰୊: OS಺෦ͷ௨৴ॲཧͷͨΊͷCPUෛՙ͕ߴ·ͬͯ ͍Δ ɾఏҊ: ௨৴ॲཧͷ͏ͪ௨৴σʔλʹର͢ΔνΣοΫαϜܭࢉΛGPU ʹҕৡ͢Δ͜ͱʹΑΓɼCPUෛՙΛ௿ݮͤ͞Δ ɾ࣮ݧ: CPUʹΑΔνΣοΫαϜΛߦ͏৔ͱൺֱ͠ɼσʔλసૹε ϧʔϓοτ͕࠷େͰ13%޲্ ௶಺༎थ, ௕୩઒߶, ୩ޱٛ໌, த໺തོ, দԬໜొ, TCP/IPελοΫʹ͓͚ΔνΣοΫαϜܭࢉͷ GPU Φϑ ϩʔυʹΑΔ ੑೳ޲্ख๏, ిࢠ৘ใ௨৴ֶձٕज़ݚڀใࠂ, NS, ωοτϫʔΫγεςϜ, 113(244), pp.67-72 2013೥ 10݄.

Slide 6

Slide 6 text

஍ཧతʹ෼ࢄͨ͠ΞϓϦέʔγϣϯͷ ߴ৴པԽͷͨΊͷΞʔΩςΫνϟʹؔ͢Δݚڀ ത࢜՝ఔͰر๬͢Δݚڀͷ୊໨

Slide 7

Slide 7 text

2. ر๬͢Δݚڀͷഎܠͱ໨త

Slide 8

Slide 8 text

8 WebαʔϏε΁ͷཁٻͷߴ౓Խ ・サービスの信頼性の期待値向上 ・冗⻑性の確保,アクセス増に対するスケーラビリティの向上 ɾ୯ҰͷࣄۀऀʹΑΔෳ਺ͷαʔϏεల։ ɾڞ௨෦඼Λ֤αʔϏεͰڞ༗͢Δ͜ͱͰαʔϏεಉ͕࢜௨৴ ɾ10೥୯Ґͷ௕ظؒͷαʔϏεఏڙ ɾػೳͷ௥Ճɼιϑτ΢ΣΞͷߋ৽ɼγεςϜߏ੒ͷ࡮৽ͳͲΛܧଓ ɾར༻ऀͷ୺຤͔ΒΫϥ΢υ΁ͷωοτϫʔΫ஗ԆΛ୹ॖ ɾ஍ཧతʹ෼ࢄͨ͠؀ڥʹ͓͚Δ෼ࢄΞϓϦέʔγϣϯઃܭ͕ࠓޙඞ ཁͱͳΔ => ۭؒతӨڹൣғͷ૿େ => ࣌ؒతӨڹൣғͷ૿େ

Slide 9

Slide 9 text

9 ஍ཧ෼ࢄԽʹؔ͢Δ໰୊ҙࣝ γεςϜͷ಺෦ঢ়ଶͷ೺Ѳ ͕೉͘͠ͳΔ ωοτϫʔΫ஗Ԇͷ૿Ճ ɾγεςϜʹมߋΛՃ͑Δલ ʹɼϦεΫͷൣғΛݟੵ΋Ε ͳ͘ͳΔ ɾϦεΫ͕ݦࡏԽͨ͠ͱ͖ʹɼ ݪҼͷಛఆ͕஗͘ͳΔ ɾ֤ڌ఺ʹ෼ࢄ͢Δσʔλͷ ಉظ଴͕ͪ࣌ؒେ͖͘ͳΔ ɾσʔλϕʔε(DBMS)ͷҰ؏ ੑͱੑೳΛཱ྆ͤͮ͞Β͍ ߏ੒ཁૉ਺ͷ૿Ճ

Slide 10

Slide 10 text

10 ઌߦݚڀͱ՝୊: Մ؍ଌੑ ࣌ؒ࣠ํ޲ͷՄ؍ଌੑ ۭؒ࣠ํ޲ͷՄ؍ଌੑ ɾ࣌ܥྻσʔλϕʔεʹ֤छ ܭଌ஋Λอଘ͢Δ ɾੑೳΛॏࢹ࣮ͯ͠૷Λ࣌ܥ ྻσʔλʹ࠷దԽ͍ͯ͠Δ ɾطଘͷDBMSΛར༻ͨ͠ޓ ׵ੑ΍֦ுੑ͕ࣦΘΕΔ ɾαϒγεςϜؒͷґଘؔ܎Λ ࣗಈͰ௥੻͢Δ ɾطଘͷΞϓϦέʔγϣϯίʔ υͷมߋΛͱ΋ͳ͏ɼ͋Δ͍ ͸ΞϓϦέʔγϣϯʹ༩͑Δ ੑೳӨڹ͕େ͖͍

Slide 11

Slide 11 text

11 ઌߦݚڀͱ՝୊: ੑೳͱσʔλҰ؏ੑ ɾ֤ڌ఺ؒͰσʔλΛಉظߋ৽ ɾωοτϫʔΫ஗Ԇͷେ͖͍ڌ఺ ʹಉظ͕࣌ؒ཯଎͞ΕΔ ɾ֤ڌ఺ؒͷσʔλΛඇಉظߋ৽ ɾσʔλҰ؏ੑʹର͢ΔΞϓϦ έʔγϣϯ։ൃऀͷ੹೚ൣғ͕ େ͖͘ͳΔ ऑ͍Ұ؏ੑ(݁Ռ੔߹ੑ) ஗Ԇͷେ͖ͳ؀ڥͰͷੑೳͱσʔλҰ؏ੑͷཱ྆ ڧ͍Ұ؏ੑ

Slide 12

Slide 12 text

ݚڀͷ໨త ɾ໨త: ஍ཧతʹ෼ࢄͨ͠ΞϓϦέʔγϣϯͷ৴པੑ޲্ ɾ੍໿: طଘͷΞϓϦέʔγϣϯ΍ϛυϧ΢ΣΞͷίʔυΛมߋͤͣɼ ੑೳӨڹΛ͋ͨ͑ͳ͍ ɾ3ͭͷݚڀ՝୊ 1. ࣌ؒ࣠ͷՄ؍ଌੑ: ࣌ܥྻσʔλϕʔεͷੑೳͱޓ׵ੑͷཱ྆ 2. ۭؒ࣠ͷՄ؍ଌੑ: ґଘؔ܎Λ௿ෛՙ͔ͭ໢ཏతʹ௥੻ 3. σʔλͷҰ؏ੑΛอূͭͭ͠ɼԠ౴ੑೳΛ࠷େԽ 12

Slide 13

Slide 13 text

3. ر๬͢Δݚڀͷ՝୊ͱํ๏

Slide 14

Slide 14 text

՝୊(1) ࣌ؒ࣠ํ޲ͷՄ؍ଌੑ ࣌ܥྻσʔλϕʔεʹ͓͚Δੑೳͱ֦ுੑͷཱ྆

Slide 15

Slide 15 text

15 ఏҊ(1): ՝୊ͱఏҊ ࣌ܥྻσʔλϕʔεͷ՝୊ ɾطଘͷDBMSΛར༻ͨ͠ޓ ׵ੑ͕ࣦΘΕΔ ఏҊ ɾ୯ҰͷDBMSΛσʔλߏ଄୯ҐͰ ෼ղ͠ɼૄ݁߹Խ ɾΠϯϝϞϦͱΦϯσΟεΫͷKVSΛ ֊૚Խͯ͠ॲཧͱอଘͷޮ཰Խ ɾ֤σʔλߏ଄ʹରͯ͠طଘͷDBMS Λར༻Մೳ In-Memory KVS On—Disk KVS Tiering Single DBMS DBMS Index DBMS Log ఏҊΞʔΩςΫνϟ

Slide 16

Slide 16 text

՝୊(2) ۭؒ࣠ํ޲ʹ͓͚ΔՄ؍ଌੑ ґଘؔ܎Λ௥੻͢Δ্Ͱ ໢ཏੑͱ௿ΦʔόʔϔουΛཱ྆

Slide 17

Slide 17 text

17 ఏҊ(2): ιέοτ؂ࢹ ґଘؔ܎௥੻ͷ՝୊ ɾطଘͷΞϓϦέʔγϣϯ ίʔυͷมߋΛͱ΋ͳ͏ɼ ͋Δ͍͸ΞϓϦέʔγϣϯ ʹ༩͑ΔੑೳӨڹ͕େ͖͍ ఏҊ ɾશαʔό্ͰɼOSΧʔωϧ಺ͷTCP ઀ଓͷऴ୺఺Ͱ͋ΔιέοτΛ؂ࢹ ɾιέοτ؂ࢹϓϩηεΛ഑ஔ͢Δͷ ΈͰ௥੻Մೳ ɾιέοτ؂ࢹ͸ΞϓϦέʔγϣϯͷ ௨৴ʹׂΓ͜·ͣɼ௿Φʔόϔου Kernel Process TCP Flows . . . User ιέοτ؂ࢹ Process

Slide 18

Slide 18 text

՝୊(3) ஍ཧ෼ࢄ؀ڥʹ͓͚Δσʔλϕʔε ͷҰ؏ੑͱੑೳͷཱ྆

Slide 19

Slide 19 text

19 ఏҊ(3): σʔλͷಉظൣғΛదԠతʹܾఆ σʔλҰ؏ੑͱੑೳͷ՝୊ ɾ֤ڌ఺ؒͰσʔλΛಉظߋ৽ ɾωοτϫʔΫ஗Ԇͷେ͖ͳڌ ఺ʹಉظॲཧ͕཯଎͞ΕΔ ఏҊ ɾಡΈࠐΈॲཧͷΈͷ୹ॖʹண໨͠ɼ தԝͷڌ఺ʹॻ͖ࠐΈΛ޲͚Δ ɾશڌ఺Ͱಉظͤͣʹɼதԝͷڌ఺͔ ΒωοτϫʔΫ஗Ԇ͕Ұఆ஋ΑΓখ ͍͞Ұ෦ͷڌ఺ͷΈಉظ ɾΞϓϦέʔγϣϯ୯ҐͷಡΈॻ͖ൺ ཰ʹج͖ͮಉظൣғΛదԠతʹܾఆ Origin தԝͷڌ఺ Replica Τοδͷڌ఺ Replica ಉظൣғ

Slide 20

Slide 20 text

4. ظ଴͞ΕΔݚڀ੒Ռ

Slide 21

Slide 21 text

21 ݚڀશମͷظ଴͞ΕΔߩݙ ɾطଘͷΞϓϦέʔγϣϯίʔυ΍DBMSΛมߋͤͣɼ͔ͭੑೳʹେ ͖ͳӨڹΛ༩͑ͳ͍ͱ͍͏੍໿ͷ΋ͱ 1. ஍ཧ෼ࢄΞϓϦέʔγϣϯͷՄ؍ଌੑΛ޲্Մೳ 2. ؍ଌ݁ՌΛར༻͠Ԡ౴ੑೳΛ࠷େԽ͢ΔΑ͏ʹదԠతʹ੍ޚՄೳ ɾγεςϜ؅ཧऀͷෛ୲Λ૿΍ͣ͞ʹWebαʔϏεͷ৴པੑΛ޲্͞ ͤɼਓʑ͕WebαʔϏεΛշద͔ͭ࣋ଓతʹར༻Ͱ͖ΔΑ͏ʹͳΔ