Vol.2019-CSEC-85 No.14
Vol.2019-IOT-45 No.14
2019/5/24

৘ใॲཧֶձ‫ڀݚ‬ใࠂ
IPSJ SIG Technical Report௒‫ݸ‬ମ‫ܕ‬σʔληϯλʔΛ໨ࢦͨ͠෼ࢄ‫ڠ‬ௐΫΤϦΩϟογϡߏ૝௶಺ ༎थ†1,a)দຊ ྄հ†1֓ཁɿΠϯλʔωοτ͕ී‫͠ٴ‬ɼWeb αʔϏε͕޿͘ར༻͞ΕΔΑ͏ʹͳΔʹͭΕͯɼར༻ऀ͔Βͷίϯςϯπ഑৴ͷ଎౓΁ͷཁ‫͍ͯͬ·ߴ͕ٻ‬ΔɽΫϥ΢υίϯϐϡʔςΟϯάΛར༻͢Δ৔߹ɼར༻ऀʹରͯ͠ߴ଎ʹԠ౴͢Δʹ͸ɼશମͷϨΠςϯγͷओཁͳ෦෼Λ઎ΊΔωοτϫʔΫϨΠςϯγΛ௿‫͢ݮ‬Δ͜ͱ
͕ॏཁͱͳΔɽͦ͜ͰɼίϯϐϡʔςΟϯάͷར༻ऀͷۙ๣Ͱཁ‫ٻ‬Λॲཧ͢Δ͜ͱʹΑΓɼϨΠςϯγΛ࠷খԽ͢Δ CDN(Content Delivery Network) ͕ར༻͞Ε͓ͯΓɼۙ೥Ͱ͸ɼIoTɼεϚʔτγςΟ΍Ϋϥ΢υήʔϛϯάͷΑ͏ͳ௿ϨΠςϯγΛཁ‫͢ٻ‬ΔΞϓϦέʔγϣϯʹ޲͚ͯɼΫϥ΢υ্ͷॲཧΛར༻ऀۙ๣ͷΤοδ΁ͱҠಈ͢ΔΤοδίϯϐϡʔςΟϯά͕‫͞ڀݚ‬Ε͍ͯΔɽ͜ͷΑ͏ͳഎ‫ʹܠ‬ΑΓɼզʑ͸ɼΫϥ΢υΛத৺ʹখ‫ن‬໛σʔληϯλʔɼ͋Δ͍͸σʔληϯλʔͱ‫Ͱ·͍ͳ΂ݺ‬΋খ‫ܕ‬ͷϥοΫ‫͕͋܈‬ΒΏΔ৔ॴʹ෼ࢄ͍ͯ͘͠௒‫ݸ‬ମ‫ܕ‬σʔληϯλʔͷ࣌୅ʹͳ͍ͬͯ͘ͱߟ͍͑ͯΔɽ௒‫ݸ‬ମ‫ܕ‬σʔληϯλʔΛ໨ࢦ্͢Ͱɼ֤σʔληϯλʔΛந৅Խͯ͠ར༻͢ΔͨΊʹɼ֤σʔληϯλʔͷ৔ॴ΍‫ن‬໛Λҙࣝͤͣʹɼಁաత͔ͭߴ଎ʹσʔλΛಡΈॻ͖Ͱ͖Δඞཁ͕͋Δɽຊ‫Ͱڀݚ‬͸ɼWeb ΞϓϦέʔγϣϯͷίϯςϯπ഑৴ͷੑೳΛ޲্ͤ͞ΔͨΊʹɼσʔλϕʔε΁ͷΫΤϦ݁ՌͷΩϟογϡΛ෼ࢄͨ͠σʔληϯλʔؒͰҰ؏ੑΛอͪͭͭ΋‫ڞ‬༗͠ɼσʔληϯλʔؒͷϨΠςϯγΛҙࣝͤͣʹɼॻ͖ࠐΈ࣌ͱಡΈࠐΈ࣌ͷԠ౴ੑೳͷτϨʔυΦϑΛղܾ͢ΔͨΊͷ‫ج‬൫ͷઃ‫ߏܭ‬૝ΛఏҊ͢Δɽ

A Concept of Distributed Coordinated Query Caching
Toward Super-Organic Data Center
Yuuki Tsubouchi†1,a)1. ͸͡Ίʹ

Ryosuke Matsumoto†1

ΈΛ 3 ඵҎ্଴ͯͳ͍ͱ͍͏ௐࠪ݁Ռ͕ใࠂ͞Ε͍ͯΔɽ
ͦ͜ͰɼWeb αʔϏεΛ։ൃ͠ɼӡӦ͢Δ Web αʔϏεΠϯλʔωοτ͕ී‫͠ٴ‬ɼWeb αʔϏε͕޿͘ར༻͞Εࣄ‫͓ऀۀ‬Αͼଟ͘ͷ Web αΠτΛ؅ཧ͢Δ Web ϗεςΟΔΑ͏ʹͳΓɼҰൠͷਓʑ͕จষ΍ը૾ɼಈըͱ͍ͬͨίϯάαʔϏεࣄ‫ͯͬͱʹऀۀ‬ɼར༻ऀ਺Λ૿େͤ͞ΔͨΊϯςϯπΛੜΈग़͠ɼՈ଒΍༑ਓɼͦͷଞͷਓʑͱ‫ڞ‬༗͢ʹɼWeb αʔϏεͷԠ౴ੑೳΛ޲্͢Δ͜ͱ͕ॏཁͱͳͬΔ͜ͱ͕౰ͨΓલͷ࣌୅ͱͳ͖͍ͬͯͯΔɽ͞Βʹ͸ɼε͍ͯΔɽϚʔτϑΥϯͷී‫ʹٴ‬ΑΓɼΠϯλʔωοτ͸ΑΓ਎ۙͳWeb αʔϏεͷఏ‫ڙ‬ͷͨΊʹΫϥ΢υίϯϐϡʔςΟ΋ͷʹͳ͖͍ͬͯͯΔɽWeb αʔϏε͕೔ৗతʹར༻͞ΕϯάΛར༻͢Δ৔߹ɼதԝू‫ݖ‬ͷσʔληϯλʔ্ͰίϯΔʹͭΕͯɼར༻ऀ਺͸૿େ͠ɼར༻ऀ͔Βͷ Web αʔϐϡʔςΟϯάΛ࣮ߦ͢ΔͨΊʹɼԠ౴͢Δ·ͰͷϨΠςϏεͷԠ౴ੑೳ΁ͷཁ‫ٻ‬΋ߴ·͍ͬͯΔɽจ‫[ ݙ‬1] ʹΑΔϯγ͸࣍ͷΑ͏ʹ෼ղͰ͖Δ [2]ɽ·ͣɼར༻ऀͷ୺຤্

ͱɼ40%Ҏ্ͷ Web αʔϏεͷར༻ऀ͸ϖʔδͷಡΈࠐͷॲཧͷͨΊͷϨΠςϯγɼ࣍ʹɼར༻ऀ͔Βσʔληϯλʔ্ͷαʔό·Ͱͷԟ෮ͷωοτϫʔΫϨΠςϯγɼ࠷†1a)͘͞ΒΠϯλʔωοτ‫ࣜג‬ձࣾ ͘͞ΒΠϯλʔωοτ‫ॴڀݚ‬
SAKURA Research Center, SAKURA Internet Inc.,Ofukatyo, Kitaku, Osaka 530-0011 Japany-tsubouchi@sakura.ad.jp

c 2019 Information Processing Society of Japan!

‫ʹޙ‬ɼσʔληϯλʔ্ͷαʔόͷॲཧͷͨΊͷϨΠςϯγ͕͋Δɽจ‫[ ݙ‬2] ͷ‫Ͱڀݚ‬͸ɼશମͷϨΠςϯγ͕ 100ms

1Vol.2019-CSEC-85 No.14
Vol.2019-IOT-45 No.14
2019/5/24

৘ใॲཧֶձ‫ڀݚ‬ใࠂ
IPSJ SIG Technical Reportͷ͏ͪɼར༻ऀͱσʔληϯλʔؒͷωοτϫʔΫϨΠςΔඞཁ͕͋Δɽσʔλͷ഑ஔΛҙࣝͤͣʹར༻͢ΔͨΊʹϯγ͕ 80ms Λ઎ΊΔͱ͞Ε͍ͯΔɽ͕ͨͬͯ͠ɼར༻ऀ͸ɼ֤σʔληϯλʔ্ͷσʔλ͕Ұ؏͍ͯ͠Δඞཁ͕͋ʹରͯ͠ߴ଎ʹԠ౴͢Δʹ͸ɼશମͷϨΠςϯγͷओཁͳΔɽ͔͠͠ɼΫϥ΢υ಺ʹ͓͚Δαʔόͷ෼ࢄͱ͸ҟͳΓɼ෦෼Λ઎ΊΔωοτϫʔΫϨΠςϯγΛ௿‫͢ݮ‬Δ͜ͱ͕ॏσʔληϯλʔ͕෼ࢄͨ݁͠ՌɼσʔληϯλʔؒͷϨΠཁͱͳΔɽ

ςϯγΛߟྀ͢Δඞཁ͕͋ΔɽσʔλͷҰ؏ੑΛҡ࣋͢Δͦ͜Ͱɼར༻ऀͷۙ๣Ͱ͋ΔωοτϫʔΫ୺ʢҎ߱ɼΤοͨΊʹɼσʔληϯλʔؒͰಉ͡σʔλΛ‫ڞ‬༗͠Α͏ͱ͢δͱ͢Δʣʹͯ༧ΊΩϟογϡͱͯ͠ίϯςϯπΛ഑ஔΕ͹ɼॻ͖ࠐΈ࣌ͷσʔλͷಉ‫͕ؒ࣌ظ‬େ͖͘ͳΓɼ‫ʹٯ‬͓͖ͯ͠ɼར༻ऀ͸ͦͷίϯςϯπʹΞΫηε͢Δ͜ͱಛఆͷσʔληϯλʔͷΈʹ͋ΔσʔλΛಡΈग़ͦ͏ͱ͢Ͱߴ଎ʹίϯςϯπΛऔಘՄೳͳ CDN(Content DeliveryΕ͹ɼಡΈग़࣌͠ͷσʔλͷసૹ͕࣌ؒେ͖͘ͳΔɽͨ͠Network)[3] Λ‫͢༻׆‬ΔɽCDN ʹΑΓɼΫϥ΢υ্ͷσʔ͕ͬͯɼσʔληϯλʔؒͷσʔλͷҰ؏ੑΛҡ࣋ͭͭ͠ɼληϯλʔ·Ͱ౸ୡ͢Δ͜ͱͳ͘ɼίϯςϯπΛ഑৴Ͱॻ͖ࠐΈ࣌ͱಡΈࠐΈ࣌ͷͦΕͧΕͷԠ౴ੑೳ͸τϨʔυ͖ΔͨΊɼωοτϫʔΫϨΠςϯγ͕௿‫͞ݮ‬ΕΔɽۙ೥ΦϑͱͳΔɽΤοδΛར༻ͨ͠ Web ίϯςϯπ഑৴Λ‫ݕ‬Ͱ͸ɼҰ౓Ωϟογϡ͞ΕͨσʔλΛഁ‫͢غ‬Δ·Ͱͷॲ౼͍ͯ͠Δઌߦ‫ڀݚ‬ͷ Ferdinand[13] Ͱ͸ɼಈతίϯςϯཧ͕࣌ؒߴ଎Խͨ͜͠ͱʹΑΓɼը૾΍ಈըͱ͍ͬͨ੩πͷ഑৴Λߴ଎Խ͢ΔͨΊʹɼΦʔόʔϨΠωοτϫʔΫతίϯςϯπҎ֎ʹɼར༻ऀͷߦಈʹԠͯ͡ɼத਎͕ม

Λར༻͠ɼσʔλϕʔε΁ͷΫΤϦͷ݁ՌΩϟογϡΛෳԽ͢ΔಈతίϯςϯπͷΩϟογϡʹ΋ CDN Λར༻͢Δ਺ͷαʔό͕‫ڞ‬༗͢Δख๏͕ఏҊ͞Ε͓ͯΓɼαʔόؒͷ͜ͱ͕͋Δ [4]ɽ͞Βʹ͸ɼ୯ͳΔίϯςϯπΛ഑৴͢ΔϨΠςϯγͷେ͖ͳ‫ʹ͖ͱͨ͠ݧ࣮Ͱڥ؀‬ɼಡΈࠐΈ࣌ͷ͚ͩͰͳ͘ɼCDN ͷΤοδαʔό্Ͱཁ‫ʹٻ‬ରͯ͠೚ҙσʔλͷసૹ͕࣌ؒੑೳϘτϧωοΫͱͳΔ͜ͱ͕՝୊ͱͷॲཧΛ࣮ߦͰ͖ΔΑ͏ʹɼΤοδαʔόʹ೚ҙͷΞϓͳ͍ͬͯΔɽ͞ΒʹɼFerdinand Ͱ͸ɼҰ࣌తͳΤοδͷϦέʔγϣϯϩδοΫΛ഑ஔ͢Δ͜ͱ͕ՄೳͱͳΔ CDN‫ނ‬োʹΑΓϨΠςϯγ͕૿େͨ͠ͱ͖ʹɼ౰֘Τοδ͕΋

Edge Worker[5], [6], [7] ͕ొ৔͍ͯ͠Δɽ͜ͷΑ͏ʹ CDNͭΩϟογϡΤϯτϦʹΞΫηε͢Δ৔߹ʹԠ౴ੑೳ͕௿ͷΤοδαʔόͷ‫༻׆‬ͷ෯͕޿͕͍ͬͯΔഎ‫ʹܠ‬Ճ͑ͯɼ

Լ͢ΔՄೳੑ͕͋Δɽ

IoT(Internet of Things)[8]ɼεϚʔτγςΟɼΫϥ΢υήʔຊ‫Ͱڀݚ‬͸ɼWeb ΞϓϦέʔγϣϯͷίϯςϯπ഑৴ͷϛϯά [2] ͳͲͷϦΞϧλΠϜੑΛཁ‫͞ٻ‬ΕΔྖҬʹ͓͍Ԡ౴ੑೳΛ޲্ͤ͞ΔͨΊʹɼσʔλϕʔε΁ͷΫΤϦ݁ͯɼඇྗͳΤϯυσόΠεɼར༻ऀۙ๣ͷϗʔϜήʔτՌͷΩϟογϡΛ෼ࢄͨ͠σʔληϯλʔؒͰҰ؏ੑΛอ΢ΣΠ΍ωοτϫʔΫϧʔλʔɼখ‫ن‬໛σʔληϯλʔͱͪͭͭ΋‫ڞ‬༗͠ɼॻ͖ࠐΈ࣌ͱಡΈࠐΈ࣌ͷԠ౴ੑೳͷτ͍ͬͨΑ͏ͳΤοδͷίϯϐϡʔςΟϯάࢿ‫ݯ‬Λ‫͢༻׆‬ΔϨʔυΦϑΛղܾ͢ΔͨΊͷઃ‫ߏܭ‬૝ΛఏҊ͢Δɽ۩ମతΤοδίϯϐϡʔςΟϯά [9], [10], [11] ͕‫͞ڀݚ‬Ε͍ͯʹ͸ɼΫΥʔϥϜγεςϜΛ‫ʹج‬ɼ෼ࢄͨ͢͠΂ͯͷσʔΔɽ͞ΒʹɼদຊΒͷ‫[ ڀݚ‬12] Ͱ͸ɼΫϥ΢υʹूதͨ͠ληϯλʔʹΩϟογϡΛಉ‫ʹͣͤظ‬ɼΫϥ΢υͷۙ๣ʹίϯϐϡʔςΟϯάࢿ‫ݯ‬͸ͦͷ··ʹɼΫϥ΢υΛத৺ʹ͋ΔσʔληϯλʔʹͷΈಉ‫͠ظ‬ɼಡΈࠐΈ࣌͸σʔλ͕Τοδͱͯ͠ͷখ‫ن‬໛σʔληϯλʔɼ͋Δ͍͸σʔληಉ‫͞ظ‬Ε͍ͯΔۙ๣ͷσʔληϯλʔ͔Βసૹ͢Δɽ͞Βϯλʔͱ‫Ͱ·͍ͳ΂ݺ‬΋খ‫ܕ‬ͷϥοΫ‫͕͋܈‬ΒΏΔ৔ॴʹʹɼҰ࣌తͳΤοδͷ‫ނ‬োʹରͯ͠ɼΫϥ΢υ্ͷσʔλ෼ࢄ͍ͯ࣌͘͠୅ʹͳ͍ͬͯ͘ͱ͍͏ߏ૝͕ใࠂ͞Εͯϕʔεαʔό͕‫ނ‬োΛ‫ݕ‬஌͠ɼ౰֘ΤοδΛΫϥελ͔Β͍Δɽ͞Βʹɼ͜ͷΑ͏ͳ࣌୅ͷσʔληϯλʔͷ͋Γํআ֎͢Δ͜ͱʹΑΓɼ‫ނ‬োͷӨ‫ڹ‬Λ࠷খ‫ཹʹݶ‬ΊΔख๏ΛΛ෼ࢄ‫ܕ‬σʔληϯλʔͱఆٛ͠ɼ෼ࢄ͞ΕͨσʔληϯఏҊ͢Δɽຊख๏ʹΑΓɼ͢΂ͯͷΤοδͰಉҰͷΩϟολʔΛந৅Խ͢Δ OS ͷ૚Λ෼ࢄ‫ܕ‬σʔληϯλʔ OS ͱγϡΛҰ؏ੑΛҡ࣋͠ͳ͕Β‫ڞ‬༗͢Δ৔߹ͱൺֱ͠ɼಡΈఆ͍ٛͯ͠Δɽ෼ࢄ‫ܕ‬σʔληϯλʔʹ͓͚Δ֤σʔληࠐΈੑೳ͕௿Լ͢Δ͜ͱ͸͋Δ΋ͷͷɼॻ͖ࠐΈੑೳʹରϯλʔ͸୯ʹ෼ࢄ͢Δ͚ͩͰͳ͘ɼ‫ڠ‬ௐ͠ɼશମͱͯ͠͸͢ΔσʔληϯλʔؒϨΠςϯγͷӨ‫ڹ‬Λখ͘͞Ͱ͖ΔɽҰͭͱͯ͠‫͑ݟ‬ΔΑ͏ʹಈ࡞͢Δ͜ͱ͔Βɼ໊শΛΑΓదຊߘͷߏ੒Λड़΂Δɽ2 ষͰ͸ɼWeb ΞϓϦέʔγϣϯ੾ͳ΋ͷͱ͢ΔͨΊʹɼຊߘͰ͸ɼ෼ࢄ‫ܕ‬σʔληϯλʔΛΤοδ΁ల։͢Δͱ͖ͷ՝୊ʹ͍ͭͯٞ࿦͢Δɽ3 ষͰͷ໋໊ΛվΊɼ௒‫ݸ‬ମ‫ܕ‬σʔληϯλʔͱ͢Δɽ௒‫ݸ‬ମ‫ܕ‬͸ɼ෼ࢄ‫ڠ‬ௐΩϟογϯάͷͨΊͷؔ࿈ٕज़ʹ͍ͭͯ੔ཧσʔληϯλʔΛ໨ࢦ্͢Ͱɼ֤σʔληϯλʔΛந৅Խ

͢Δɽ4 ষͰ͸ɼຊ‫Ͱڀݚ‬ͷఏҊΛड़΂Δɽ࠷‫ʹޙ‬ɼ5 ষͯ͠ར༻͢ΔͨΊʹɼ֤σʔληϯλʔͷ৔ॴ΍‫ن‬໛ΛҙͰ·ͱΊͱ͢Δɽࣝͤͣʹɼಁաత͔ͭߴ଎ʹσʔλΛಡΈॻ͖Ͱ͖Δඞཁ͕͋Δɽ෼ࢄͨ͠σʔληϯλʔ্ͷσʔλΛಁաతʹѻ͏ͨΊ

2. Web ΞϓϦέʔγϣϯͷΤοδ΁ͷల։2.1 σʔληϯλʔΛ෼ࢄͨ͠ͱ͖ͷσʔλந৅ʹ͸ɼ͍ͭ୭͕Ͳ͜ͰΫϥ΢υΛར༻ͯ͠΋ɼσʔλ͕Ͳͷ෼ࢄͨ͠σʔληϯλʔ্ͷσʔλΛந৅Խ͠ɼಁաతσʔληϯλʔʹ഑ஔ͞Ε͍ͯΔ͔Λҙࣝͤͣʹར༻Ͱ͖ʹѻ͏ͨΊʹɼσʔληϯλʔؒͷϨΠςϯγΛ͍͔ʹӅc 2019 Information Processing Society of Japan!

2৘ใॲཧֶձ‫ڀݚ‬ใࠂ
IPSJ SIG Technical Report

Vol.2019-CSEC-85 No.14
Vol.2019-IOT-45 No.14
2019/5/24

ณ͠ɼԠ౴ੑೳͱσʔλҰ؏ੑΛཱ྆͢Δ͔͕ॏཁͱͳ
Δɽ‫͍ڧ‬σʔλҰ؏ੑΛҡ࣋͢ΔલఏͰɼσʔληϯλʔؒͷϨΠςϯγ͕Ԡ౴ੑೳʹӨ‫͢ڹ‬Δͷ͸ɼ࣍ͷ 2 ௨ΓͷωοτϫʔΫసૹͰ͋Δɽ·ͣɼ͋ΔσʔλΛಛఆͷσʔληϯλʔͷΈʹ഑ஔ͠ɼಡΈग़࣌͠ʹσʔληϯλʔΛಛఆ͠ωοτϫʔΫసૹ͢ΔʢҎ߱ɼΦϯσϚϯυసૹͱ
͢Δʣ৔߹Ͱ͋Δɽ2 ͭ໨ʹɼશͯ·ͨ͸ओཁͳ෦෼ͷෳ਺ͷσʔληϯλʔʹσʔλͷෳ੡Λ഑ஔ͠ɼಡΈग़࣌͠ʹࣗ਎ͷσʔληϯλʔ·ͨ͸ۙ๣ͷσʔληϯλʔ͔ΒωοτϫʔΫసૹ͢ΔʢҎ߱ɼϨϓϦέʔγϣϯసૹͱ
͢Δʣ৔߹Ͱ͋Δɽ͍ͣΕͷख๏ʹ͓͍ͯ΋ɼσʔλͷಡΈग़࣌͠·ͨ͸σʔλͷෳ੡ͷ഑ஔ࣌ʹ͓͍ͯɼσʔλͷωοτϫʔΫసૹ࣌ؒΛཁ͢ΔɽΦϯσϚϯυసૹͷ৔߹ਤ 1: ύλʔϯ (a): ϦʔμʔϨε͸ɼར༻ऀۙ๣ͷσʔληϯλʔ͔Βԕ͍σʔληϯλʔ͔Βసૹ͠ͳ͚Ε͹ͳΒͳ͍৔߹ɼԠ౴ੑೳ͕௿Լ͢ΔɽҰํͰɼϨϓϦέʔγϣϯసૹͷ৔߹͸ɼ֤σʔληϯλʔ্ͷσʔλͷҰ؏ੑΛอ࣋͢ΔͷͰ͋Ε͹ɼॻ͖ࠐΈ࣌ͷσʔλಉ‫͕ؒ࣌ظ‬௕͘ͳΓɼಉ‫ظ‬଴ͪͷͨΊʹԠ౴ੑೳ͕௿Լ͢Δͱ͍͏՝୊͕͋ΔɽσʔλͷҰ؏ੑΛ؇ΊΔͷͰ͋Ε͹ɼඇಉ‫Ͱظ‬ϨϓϦέʔγϣϯ͢Δ͜ͱʹΑΓɼԠ౴ੑೳͷ௿ԼΛ๷͛Δ͔ΘΓʹɼ͋Δॠؒʹ͓͍ͯɼΤοδ্ͷΞϓϦέʔγϣϯ͕‫͍ݹ‬σʔλΛಡΈࠐΉՄೳੑ͕͋Δ͜ͱΛ‫ڐ‬༰͢Δඞཁ͕͋Δɽ͜ͷΑ͏ʹɼָ‫؍‬తͳҰ؏ੑϞσϧΛ࠾༻͢Δ৔߹ɼΞϓϦέʔγϣϯ։ൃऀ͕ɼ‫ݹ‬͍σʔλΛಡΈࠐΉ͜ͱΛߟ্ྀͨ͠ͰɼΞϓϦέʔγϣϯͷॲཧΛ‫ه‬ड़͠ͳ͚Ε͹ͳΒͳ͍ͱ͍͏՝୊͕͋Δɽਤ 2: ύλʔϯ (a): γϯάϧϦʔμʔ

2.2 Web ΞϓϦέʔγϣϯͷߏ੒ύλʔϯ఻౷తͳ Web ΞϓϦέʔγϣϯ͸ɼWeb αʔόɼΞϓϦέʔγϣϯαʔόɼσʔλϕʔεαʔόͷ 3 ֊૚ [14] ʹΑΓߏ੒͞ΕΔɽ͜ͷ 3 ֊૚ͷ֤ߏ੒ཁૉΛΤοδͱΫϥ΢υ‫ʹڥ؀‬ల։͢Δͱɼ૊Έ߹Θͤύλʔϯ͸࣍ͷ 3 ͭͱͳΔɽ(a) Web αʔόɼΞϓϦέʔγϣϯαʔόɼσʔλϕʔεαʔόΛ͢΂ͯΤοδʹ഑ஔɽ(b) Web αʔόͱΞϓϦέʔγϣϯαʔόΛΤοδʹ഑ஔ͠ɼσʔλϕʔεαʔόΛΫϥ΢υʹ഑ஔɽ(c) Web αʔόΛΤοδʹ഑ஔ͠ɼΞϓϦέʔγϣϯαʔόͱσʔλϕʔεαʔόΛΫϥ΢υʹ഑ஔɽ
ਤ 1 ͓Αͼਤ 2 ʹࣔ͢ύλʔϯ (a) ʹ͍ͭͯ͸ɼΤοδ‫֤ͯʹڥ؀‬ཁૉΛ͢΂ͯ഑ஔ͢Δ͜ͱʹΑΓɼΤοδ಺Ͱਤ 3: ύλʔϯ (b)ॲཧ͕‫݁͢׬‬ΔͨΊɼར༻ऀ΁ͷԠ౴࣌ؒΛ୹ॖͰ͖Δɽ͔͠͠ɼσʔλϕʔεαʔόΛ෼ࢄ͢Δ͜ͱʹΑΓɼσʔ͢Α͏ʹߏ੒͠ɼಡΈࠐΈΫΤϦͷΈΛߴ଎Խ͢Δख๏΋

λϕʔεؒͷॻ͖ࠐΈ‫ൃ͕߹ڝ‬ੜ͠΍͘͢ͳΓɼ֤σʔλ͋Δɽͭ·ΓɼΫϥ΢υ্ͷσʔλϕʔεαʔόΛ୯ҰͷϕʔεαʔόͷҰ؏ੑͷ੍‫͕ޚ‬ෳࡶͱͳΔɽॻ͖ࠐΈ‫߹ڝ‬ϦʔμʔʢϚελͱ΋‫Ϳݺ‬ʣͱͯ͠ɼΤοδ্ͷσʔλϕʔΛආ͚ΔͨΊʹɼਤ 2 ʹࣔ͢Α͏ʹɼ֤Τοδ্ͷΞϓϦεαʔόΛϑΥϩϫʔʢεϨʔϒͱ΋‫Ϳݺ‬ʣͱ͠ɼϑΥϩέʔγϣϯαʔό͕Ϋϥ΢υ্ͷσʔλϕʔεαʔόͷΈϫʔʹ͸ಡΈࠐΈΫΤϦͷΈΛ޲͚Δɽ͔͠͠ɼҰ؏ੑΛʹॻ͖ࠐΈɼϩʔΧϧͷϨϓϦΧσʔλϕʔε͔ΒಡΈग़‫ڧ‬ΊΔ৔߹͸Ϋϥ΢υͱΤοδؒͷϨΠςϯγͷ෼͚ͩಉc 2019 Information Processing Society of Japan!

3Vol.2019-CSEC-85 No.14
Vol.2019-IOT-45 No.14
2019/5/24

৘ใॲཧֶձ‫ڀݚ‬ใࠂ
IPSJ SIG Technical ReportͳΔͨΊɼύλʔϯ (b) ͷΑ͏ʹԠ౴଎౓͕௿Լ͢Δ͜ͱ͸ͳ͍ɽ͔͠͠ɼΞϓϦέʔγϣϯαʔό͕ Web ΞϓϦέʔγϣϯͱͯ͠ͷॲཧͷେ෦෼Λ࣮ߦ͢Δͱ͍͏લఏ͔ΒɼΤοδͷར఺Λੜ͔͍ͤͯͳ͍ߏ੒ͱ͍͑Δɽ

3. ෼ࢄ‫ڠ‬ௐΩϟογϡͷؔ࿈ٕज़ΩϟογϡͷҰ؏ੑΛอ࣋ͭͭ͠ɼͲͷΑ͏ʹͯ͠ΦϯσϚϯυసૹͱϨϓϦέʔγϣϯసૹͷϨΠςϯγͷӨ‫ڹ‬Λ࠷খԽ͢Δ͔ͱ͍͏‫Ͱ఺؍‬ɼ෼ࢄ‫ڠ‬ௐΩϟογϡͷؔ࿈ٕज़Λ੔ཧ͢Δɽ

3.1 ΦϒδΣΫτΩϟογϡ
ਤ 4: ύλʔϯ (c)ΦϒδΣΫτΩϟογϡ͸ΞϓϦέʔγϣϯ͕೚ҙͷΦϒδΣΫτΛΩϟογϡ͢ΔͨΊͷ‫͋Ͱߏػ‬ΔɽΦϒδΣ‫ظ‬଴͕ͪൃੜ͠ɼඇಉ‫ʹظ‬ϨϓϦέʔγϣϯ͢Δ͜ͱʹΑΫτΩϟογϡͷͨΊͷσʔλετΞͱͯ͠ɼΞϓϦέʔΓϦʔμʔɾϑΥϩϫʔ͔ؒͭϑΥϩϫʔؒͷҰ؏ੑ͕؇γϣϯϓϩηε͕ωοτϫʔΫ௨৴ͯ͠ར༻͢Δωοτ͘ͳΓɼʹؔ͢Δ໰୊͕ൃੜ͢Δ͜ͱ͕͋ΔɽϫʔΫ‫ܕ‬ͷ෼ࢄΩϟογϡγεςϜͱɼΞϓϦέʔγϣϯ௒‫ݸ‬ମ‫ܕ‬σʔληϯλʔͷΑ͏ʹɼΫϥ΢υ಺௨৴ͱൺϓϩηεͱಉҰͷϝϞϦۭؒʹΩϟογϡσʔλΛอֱ࣋͢͠σʔληϯλʔؒͷϨΠςϯγͷେ͖͍‫Ͱڥ؀‬͸ɼॻΔ૊ΈࠐΈ‫ܕ‬ͷ෼ࢄΩϟογϡγεςϜ͕͋Δɽ͍ͣΕ΋͖ࠐΈ͕શϊʔυʹ఻ൖ͢Δલʹผͷϊʔυ͕࣍ͷॻ͖ࠐΩϟογϡγεςϜʹ͓͍ͯ΋ɼΩϟογϡͷσʔλετΈΛ։࢝͢ΔՄೳੑ͕ߴ͘ͳΔͨΊɼҰ؏ੑΛҡ࣋͢ΔͨΞͱͯ͠ɼΩʔόϦϡʔετΞ [15] ͕ར༻͞ΕΔ͜ͱ͕ΊʹΩϟογϡͷߋ৽࣌ʹ଴ͪ࣌ؒΛཁ͢Δ͸ͣͰ͋Δɽଟ͍ɽ‫ڧ‬ΊͷҰ؏ੑϞσϧΛ࠾༻͢Δͱɼશମͷεϧʔϓοτ͕ωοτϫʔΫ‫ܕ‬ͷ෼ࢄΩϟογϡγεςϜͱͯ͠ɼMem-௿Լ͢Δ‫ڪ‬Ε͕͋ΔͨΊɼੑೳΛ༏ઌ͢ΔͷͰ͋Ε͹ɼ݁cached[16] ΍ Redis[17] ͕޿͘ར༻͞Ε͍ͯΔɽ͜ΕΒͷՌ੔߹ੑͳͲͷऑ͍Ұ؏ੑϞσϧΛ࠾༻͢Δඞཁ͕͋ΔɽΩϟογϡγεςϜΛෳ਺ͷΩϟογϡϊʔυ΁ෛՙ෼ࢄ͜ͷΑ͏ͳҰ؏ੑͱੑೳͷτϨʔυΦϑʹରͯ͠ɼσʔλ͢ΔͨΊʹɼϋογϡ๏Λར༻͢Δ͜ͱʹΑΓɼΦϒδΣϕʔεϛυϧ΢ΣΞͷΈͰղܾ͢Δ͜ͱ͸೉͘͠ɼΞϓϦΫτͷΩʔͱ෼ࢄઌͷΩϟογϡϊʔυΛඥ͚ͮ͠ɼΦϒέʔγϣϯ࢓༷΍ίʔυʹͯҰ؏ੑͷߟྀ͕ඞཁͱͳΔɽδΣΫτ୯ҐͰ෼ࢄͤͯ͞Ωϟογϡϊʔυ΁σʔλΛ഑ਤ 3 ʹࣔ͢ύλʔϯ (b) ʹ͍ͭͯ͸ɼΞϓϦέʔγϣϯஔ͢Δɽ͜ͷख๏͸ɼΩϟογϡϊʔυͷ௥Ճ·ͨ͸࡟আαʔόͱσʔλϕʔεαʔόؒͷϨΠςϯγ͕ଞͷύλʔ࣌ʹɼΦϒδΣΫτͷΩʔͱϊʔυͷඥ͚͕ͮมߋ͞Εɼϯͱൺֱ͠େ͖͍ͱ͍͏ੑ࣭͕͋ΔɽΞϓϦέʔγϣϯେ෦෼ͷΩʔ͕Ωϟογϡϛε͠ɼੑೳ͕௿Լ͢Δͱ͍͏αʔό͕ಈతίϯςϯπΛੜ੒ͨ͠ΓɼAPI(Application՝୊͕͋Δɽͦ͜ͰɼΦϒδΣΫτͷ഑ஔΞϧΰϦζϜͱProgramming Interface) ͷॲཧΛ͢Δʹ͸ɼ1 ճҎ্σʔͯ͠ɼϊʔυͷ૿‫ʹ࣌ݮ‬ɼΦϒδΣΫτͷΩʔͱϊʔυͷ

λϕʔεʹ໰͍߹ΘͤΔ͜ͱʹͳΔɽ͕ͨͬͯ͠ɼར༻ऀׂΓ౰ͯΛͳΔ΂͘มߋͤͣʹ෼ࢄ͢ΔͨΊʹίϯγες

ͱ Web αʔόؒͰ HTTP ͷϦΫΤετͱϨεϙϯεΛ 1ϯτϋογϡ๏ [18] ͕ར༻͞ΕΔɽԟ෮͢ΔॲཧͷؒʹɼΞϓϦέʔγϣϯαʔό͔Βσʔλgroupcache[19] ͸૊ΈࠐΈ‫ܕ‬ͷΦϒδΣΫτΩϟογϡϕʔεαʔό΁ͷΫΤϦͱ݁Ռऔಘͷԟ෮͕গͳ͘ͱ΋ 1Ͱ͋ΓɼGo ‫[ ޠݴ‬20] ͷϥΠϒϥϦͱ࣮ͯ͠૷͞Ε͍ͯΔɽճҎ্͋ΔͨΊɼΫϥ΢υͷΈͷύλʔϯͱൺֱ͠ɼ٫ͬ

groupcache ͸ෳ਺ͷϊʔυ͕‫ڠ‬ௐͯ͠ҰͭͷΩϟογϡۭͯԠ౴͕஗͘ͳΔՄೳੑ͕͋ΔɽؒΛ࡞੒ՄೳͰ͋ΓɼϩʔΧϧϊʔυʹ౰֘Ωϟογϡ͕ਤ 4 ʹࣔ͢ύλʔϯ (c) ʹ͍ͭͯ͸ɼWeb αʔόͱΞϓͳ͚Ε͹ɼϐΞϊʔυ΁ΞΫηε͠ɼϐΞϊʔυ্ͷΩϟοϦέʔγϣϯαʔόؒͷϨΠςϯγ͕େ͖͍ͱ͍͏ੑ࣭͕γϡΛऔಘ͢ΔΑ͏ʹͳ͍ͬͯΔɽ͞Βʹɼgroupcache ͸͋Δɽύλʔϯ (c) ʹ͓͍ͯɼHTTP ϦμΠϨΫτ΍੩తϑΥʔϧόοΫ‫཰֬ʹޙ‬తʹϩʔΧϧϊʔυͷΩϟογϡ

ίϯςϯπͷ഑৴ͳͲɼWeb αʔόͷΈͰ‫݁͢׬‬ΔॲཧʹσʔλΛॻ͖ࠐΈɼ࣍ճҎ߱౰֘ΦϒδΣΫτͷΩϟο͸ɼར༻ऀͷۙ๣Ͱॲཧ͕‫݁͢׬‬ΔͨΊɼԠ౴ੑೳ͕ߴ͘γϡ͸ϩʔΧϧϊʔυͰऔಘՄೳͱͳΔɽ·ͨɼϐΞϊʔͳΔɽ·ͨɼWeb αʔόͱΞϓϦέʔγϣϯαʔόؒͷ઀υ͸ίϯγεςϯτϋογϡ๏ʹΑΓબ୒͞ΕΔͨΊɼϩʔଓΛӬଓԽ͢Δ͜ͱʹΑΓɼTCP ͷ 3-way ϋϯυγΣΠΧϧͰͷΩϟογϡϛε࣌ʹ͢΂ͯͷϐΞʹϑΥʔϧόοΫͷͨΊͷϥ΢ϯυτϦοϓ࣌ؒΛ཈͑ΒΕΔɽWeb αʔΫ͠ͳͯ͘Α͍ɽgroupcache ͸ߋ৽ͱ࡟আΛαϙʔτ͠όͱΞϓϦέʔγϣϯαʔόؒ͸ HTTP ͷԟ෮͸ 1 ճͱ͓ͯΒͣɼLRU(Least Recently Used) ʹΑΓΩϟογϡc 2019 Information Processing Society of Japan!

4Vol.2019-CSEC-85 No.14
Vol.2019-IOT-45 No.14
2019/5/24

৘ใॲཧֶձ‫ڀݚ‬ใࠂ
IPSJ SIG Technical Report͕ഁ‫͞غ‬Εͳ͍͔͗ΓɼීวͷσʔλΛ֨ೲ͢Δɽ

3.2 ΫΤϦϦβϧτΩϟογϡσʔλϕʔεϛυϧ΢ΣΞͷ૚ͰΩϟογϡ͢Δ৔߹ɼσʔλϕʔε΁ͷΫΤϦͷ݁ՌΛΩϟογϡ͢ΔΫΤϦϦβϧτΩϟογϡΛར༻͢ΔɽMySQL[21] ͷΫΤϦϦβϧτΩϟογϡ͸ɼσʔλϕʔ
εαʔόࣗମ͕Ωϟογϡ‫ߏػ‬Λ΋ͭͨΊɼ௥Ճͷιϑτ΢ΣΞͳ͠ʹΫΤϦϦβϧτΩϟογϡΛར༻Ͱ͖Δɽςʔϒϧʹߋ৽͕͋Ε͹ɼ౰֘ςʔϒϧͷมߋ͕݁ՌʹӨ‫͢ڹ‬ΔΫΤϦͷΩϟογϡΛഁ‫͢غ‬ΔͨΊɼςʔϒϧͱΩϟογϡؒͰҰ؏ੑΛҡ࣋͢Δɽ

ProxySQL[22] ͸ɼMySQL ϓϩτίϧΛղऍ͢Δϓϩਤ 5: ΫΥʔϥϜγεςϜΛ‫ͨ͠ʹج‬Ωϟογϡ؅ཧΩγαʔόͰ͋ΓɼΫΤϦϦβϧτΩϟογϡɼΫΤϦϧʔςΟϯάɼMySQL αʔόͷϑΣΠϧΦʔόͱ͍ͬͨλϕʔεͷؒͷϨΠςϯγΛେ͖ͨ͘͠‫Ͱڥ؀‬͸ɼϨΠς‫ػ‬ೳΛ΋ͭɽProxySQL ͸ಠཱͨ͠ϓϩηεͱͯ͠‫ى‬ಈ͢ϯγ͕૿Ճ͢Δͱ୯७ख๏ΑΓ΋εϧʔϓοτ͕௿Լ͢ΔΔϓϩΩγͰ͋Δ͜ͱ͔ΒɼProxySQL ͷΫΤϦϦβϧτͱ͍͏݁ՌΛࣔͨ͠ɽΩϟογϡ͸ɼMySQL αʔόΑΓ΋ΑΓϑϩϯτΤϯυ

DBProxy ·ͨ͸ Ferdinand ͷΑ͏ͳ֤ΞϓϦέʔγϣʹ͍ۙҐஔʹ഑ஔ͢Δ͜ͱ͕ՄೳͰ͋Δɽྫ͑͹ɼΞϓϦϯαʔό͕Ұ؏ͨ͠ΩϟογϡΛ࣋ͭͨΊͷΞϓϩʔνʹέʔγϣϯαʔόͱಉҰͷϗετ্ʹ഑ஔ͢Δ͜ͱʹΑΓɼ͓͍ͯɼҰ؏ੑΛอͭͨΊʹΩϟογϡͷߋ৽࣌ʹಉ‫ظ‬తΞϓϦέʔγϣϯαʔόͱ MySQL αʔόؒͷ RTT Λ࡟ͳϨϓϦέʔγϣϯʹΑΔߋ৽଴ͪ࣌ؒɼ·ͨ͸σʔλಡ‫͖Ͱݮ‬Δɽ͔͠͠ɼTTL(Time to Live) Λར༻ͯ͠ΩϟοΈग़࣌͠ͷΦϯσϚϯυసૹʹΑΔผϊʔυ͔Βసૹ࣌ؒγϡΛແޮԽ͢ΔͨΊɼΞϓϦέʔγϣϯʹରͯ͠‫͘ݹ‬͕ඞཁͱͳΔɽͳͬͨσʔλΛฦ͢Մೳੑ͕͋Δɽ·ͨɼProxySQL ͸ɼෳ਺ͷϐΞϊʔυͱ‫ڠ‬ௐͯ͠ΩϟογϡσʔλΛಉ‫ͨ͠ظ‬ΓɼΩϟογϡϓʔϧΛ‫ڞ‬༗͢Δ͜ͱ͸ͳ͍ɽ

4. ఏҊख๏Web ΞϓϦέʔγϣϯͷσʔλಡΈࠐΈੑೳΛ޲্͞DBProxy[23] ͸ɼΤοδ্ʹ഑ஔ͞Ε֤ͨΞϓϦέʔͤΔͨΊʹɼΞϓϦέʔγϣϯ։ൃऀʹ௥Ճͷෛ୲Λ͔͚γϣϯαʔό͕ɼதԝͷσʔλϕʔεαʔόʹର͢ΔΫΤͳ͍ͱ͍͏ཁ݅ͷ΋ͱʹɼ‫͍ڧ‬Ұ؏ੑΛ࠾༻͢Δඞཁ͕͋Ϧ݁ՌΛΩϟογϡ͢ΔɽΫΤϦ݁Ռ͕ଞͷΫΤϦʹΑΓΔɽ͞Βʹɼར༻ऀͱΫϥ΢υͷؒͷωοτϫʔΫϨΠςΩϟογϡ͞ΕͨσʔλʹΑΔߏஙͰ͖ΔͷͰ͋Ε͹ɼະϯγΛ௿‫ͤ͞ݮ‬ΔͨΊʹɼσʔλϕʔε૚ͰΫΤϦ݁ՌΛΩϟογϡͷΫΤϦͷ݁ՌΛฦ͢ͱ͍͏޼ົͳΫΤϦॲཧΤοδ্ͰΩϟογϡ͢Δɽઌߦख๏ͷ՝୊ͱͳΔΩϟο͕ՄೳͰ͋ΔɽDBProxy ͸ɼதԝू‫ݖ‬తʹҰ؏ੑΛ؅ཧγϡߋ৽࣌ͷಉ‫ظ‬଴ͪ࣌ؒ·ͨ͸ಡΈࠐΈ࣌ͷసૹ࣌ؒΛ͢Δ͜ͱʹΑΓɼ֤Ωϟογϡ͸தԝσʔλϕʔεʹର͠௿‫ͤ͞ݮ‬ΔͨΊʹɼΫϥ΢υ͔ΒωοτϫʔΫత‫཭ڑ‬ͷখͯίώʔϨϯτͱͳ͍ͬͯΔɽ͔͠͠ɼΫΤϦΩϟογϡ͍͞Τοδ‫ʹ܈‬͸ಉ‫ظ‬తʹߋ৽Λ఻ൖͤ͞ɼ࢒ΓͷΤοδΛར༻͢Δෳ਺ͷεςʔτϝϯτΛ‫ؚ‬ΉτϥϯβΫγϣϯʹ͸ඇಉ‫৽ߋʹظ‬Λ఻ൖͤ͞ɼಡΈࠐΈ࣌ʹ͸ಉ‫ظ‬తʹߋʹରԠͰ͖ΔΑ͏ͳτϥϯβΫγϣϯͷ‫Ͱ఺؍‬ͷҰ؏ੑ͸৽͞Ε͍ͯΔΤοδͷͲΕ͔Ұ͔ͭΒΩϟογϡΛऔಘ͢อূ͞Εͳ͍ɽΔΫΥʔϥϜγεςϜΛ‫ͨ͠ʹج‬Ωϟογϡ؅ཧΞʔΩςFerdinand[13] ͸ɼ෼ࢄ͞ΕͨσʔλϕʔεΫΤϦϦβϧΫνϟΛఏҊ͢Δɽຊख๏ʹΑΓɼΩϟογϡͷߋ৽࣌ͷτΩϟογϡʹΑΔɼಈతίϯςϯπ഑৴ͷͨΊͷ‫ڠ‬ௐಈ࡞ಉ‫ظ‬଴ͪ࣌ؒΛωοτϫʔΫత‫཭ڑ‬ͷେ͖͍Τοδʹ཯͢ΔϓϩΩγͰ͋ΔɽτϐοΫϕʔεͷ Publish/Subscribe଎͞ΕΔ͜ͱͳ͘ɼΫϥ΢υΑΓ΋ۙ๣ʹ͋ΔΤοδ͔ΒϞσϧʹΑΓɼΩϟογϡͷҰ؏ੑΛҡ࣋ͭͭ͠ɼ෼ࢄΩϟογϡΛಡΈࠐΉͨΊʹɼಉ‫ظ‬଴ͪ࣌ؒ·ͨ͸సૹ࣌ϋογϡςʔϒϧʹΑΔΦʔόʔϨΠωοτϫʔΫ಺ͰඞؒΛ௿‫͖Ͱݮ‬ΔɽཁͳΩϟογϡΛൃ‫͠ݟ‬ɼΦϯσϚϯυసૹ͢Δɽ·ͨɼ

DBProxy ͱಉ༷ʹɼෳ਺ͷεςʔτϝϯτΛ‫ؚ‬Ήτϥϯβ

4.1 ΫΥʔϥϜγεςϜΛ‫ͨ͠ʹج‬Ωϟογϡ؅ཧΫγϣϯ޲͚ͷҰ؏ੑΛ؇Ί͍ͯΔɽ࣮‫ݧ‬ͷ݁ՌɼΩϟοਤ 5 ʹΩϟογϡ؅ཧͷΞʔΩςΫνϟΛࣔ͢ɽ֤Τογϡϛε͢Δͱதԝσʔλϕʔεαʔό͔ΒಡΈग़͢୯७δͷΩϟογϡ͕ߋ৽͞ΕΔ·ͰͷॲཧͷྲྀΕ͸࣍ͷΑ͏ख๏ͱൺֱ͠ɼ3 ഒఔ౓ͷੑೳ޲্͕͋ͬͨҰํͰɼΤοʹͳΔɽδ্ͷΩϟογϡϊʔυؒͱΩϟογϡϊʔυͱதԝσʔ(1) ར༻ऀ͕ൃߦ͢Δॻ͖ࠐΈཁ‫ٻ‬Λར༻ऀͷۙ๣ͷΤοc 2019 Information Processing Society of Japan!

5Vol.2019-CSEC-85 No.14
Vol.2019-IOT-45 No.14
2019/5/24৘ใॲཧֶձ‫ڀݚ‬ใࠂ
IPSJ SIG Technical Reportδ͕ड͚෇͚Δɽ(2) Ϋϥ΢υ্ͷσʔλϕʔεαʔό΁ߋ৽ΫΤϦ͕సૹ͞ΕΔɽ(3) σʔλϕʔεαʔό͔ΒΫϥ΢υۙ๣ͷΤοδ‫΁܈‬ɼ஋ΛదԠతʹௐ੔͢Δख๏ΛఏҊ͢Δɽ۩ମతʹ͸ɼΞϓϦέʔγϣϯ୯ҐͰԠ౴ੑೳΛ‫͕ͳ͠ࢹ؂‬ΒɼϨΠςϯγͷᮢ஋Λ૿‫ͯͤ͞ݮ‬ɼԠ౴ੑೳͷมԽΛ֬ೝͭͭ͠ɼԠ౴
ੑೳ͕޲্͢Δํ޲ʹᮢ஋Λมߋ͍ͯ͘͠ɽߋ৽ΫΤϦͱಉҰτϥϯβΫγϣϯ಺Ͱಉ‫ظ‬తʹߋ৽Λ௨஌͢Δɽ

4.3 Τοδͷ‫ނ‬োʹର͢Δճ෮(4) σʔλϕʔεαʔό͸ߋ৽௨஌‫ʹޙ‬τϥϯβΫγϣఏҊख๏Ͱ͸ɼΤοδ͕‫ނ‬োͨ͠ͱ͖ʹɼΤοδ͕ߋϯΛίϛοτ͢ΔɽτϥϯβΫγϣϯ͕ΞϘʔτ͞Ε৽௨஌Λड͚औΕͳ͍͜ͱʹΑΓɼ‫ʹޙ‬ճ෮ͨ͠ͱ͖ʹɼͨ৔߹͸ɼ(3) Ͱ௨஌ͨ͠ߋ৽ΛແޮԽ͢ΔͨΊʹɼΩϟογϡͷத਎͕Ϋϥ΢υ্ͷσʔλϕʔεͷத਎ͱൺΩϟογϡͷແޮԽΛ௨஌͢Δɽ΂ͯ‫ͳ͘ݹ‬Δͱ͍͏՝୊͕͋Δɽͦ͜Ͱɼߋ৽௨஌Λड͚(5) σʔλϕʔεαʔό͸ඇಉ‫( ʹظ‬3) Ͱ௨஌ͨ͠ΤοδҎ֎ͷ͢΂ͯͷΤοδʹߋ৽Λ௨஌͢Δɽ࣍ʹɼ֤ΤοδͷΩϟογϡ͕ར༻ऀ͔ΒಡΈࠐ·ΕΔ·ͰͷॲཧͷྲྀΕ͸࣍ͷΑ͏ʹͳΔɽ(i) ར༻ऀ͕ൃߦ͢ΔಡΈࠐΈཁ‫ٻ‬Λར༻ऀͷۙ๣ͷΤοδ͕ड͚෇͚ΔɽऔΒͳ͔ͬͨΤοδΛΫϥελ͔Βআ֎ͤ͞ɼ౰֘ΤοδͷΩϟογϡΛ࠷৽ͷ΋ͷͱಉ‫౓࠶ʹޙͨ͠ظ‬Ϋϥελ΁૊ΈࠐΉख๏ΛఏҊ͢Δɽ·ͣɼΤοδͷ‫ނ‬ো൑ఆ͸ɼσʔλϕʔεαʔόͷߋ৽௨஌࣌ʹλΠϜΞ΢τ͢Δ͜ͱʹΑΓ‫ݕ‬஌͢Δɽ࣍ʹɼ‫ނ‬োͨ͠ΤοδΛΫϥελ͔Βআ֎͢ΔͨΊʹɼσʔλϕʔ(ii) ۙ๣ͷΤοδ͸ɼࣗ਎͕Ϋϥ΢υͷۙ๣ͷΤοδͰεαʔό͕౰֘Τοδ͔ΒΫΤϦΛड͚෇͚ͳ͍Α͏ʹ͋Δ͔ͦ͏Ͱͳ͍͔Λࢀর͠ɼͦ͏Ͱ͋Ε͹ࣗ਎ͷ͢ΔɽΤοδ͕‫ނ‬ো͔Βճ෮͢Δͱ͖ʹɼΤοδ͸σʔλΩϟογϡΛࢀর͢Δɽͦ͏Ͱͳ͚Ε͹ɼΫϥ΢υۙϕʔεαʔό͔Βࣗ਎͕‫ނ‬ো൑ఆ͞Ε͍ͯΔ͜ͱΛड͚औ๣ͷΤοδͷ͏ͪɼࣗ਎͔ΒωοτϫʔΫ‫཭ڑ‬ͷ͍ۙΔͱɼࣗ਎ͷΤοδ಺ͷ Web αʔό΁ࣗ਎͕‫ނ‬ো͔Βճ΋ͷΛબ୒͠ɼ౰֘Τοδ্ͷΩϟογϡΛࢀর͢Δɽ෮தͰ͋Δ͜ͱΛ௨஌͠ɼWeb αʔό͸ར༻ऀ͔Βड৴͠Ϋϥ΢υͷۙ๣ͷΤοδ‫܈‬Λ൑ఆ͢ΔͨΊʹɼ͋Β͔ͨ͡ཁ‫ٻ‬Λۙ๣ͷΤοδ͔·ͨ͸Ϋϥ΢υ΁సૹ͢Δɽ࠷‫ޙ‬Ί֤ΤοδͱΫϥ΢υؒωοτϫʔΫϨΠςϯγΛ‫ܭ‬ଌ͠ɼʹɼճ෮தͷΤοδ͸ɼΩϟογϡΛഁ‫ͨ͠غ‬ͷͪʹɼۙσʔλϕʔεαʔό͕݁ՌΛอ͓࣋ͯ͘͠ɽγεςϜ؅ཧ๣ͷΤοδ·ͨ͸Ϋϥ΢υ͔ΒΩϟογϡΛಉ‫͠ظ‬ɼಉ‫ظ‬ऀ͕ઃఆͨ͠ωοτϫʔΫϨΠςϯγͷᮢ஋಺ͷΤοδΛ‫ʹޙྃ׬‬Ϋϥ΢υ͔Βߋ৽௨஌ͷड͚෇͚Λ࠶։͢Δɽۙ๣ͷΤοδͱΈͳ͠ɼσʔλϕʔεαʔό͸ۙ๣ͷΤοδͷ൑ఆ݁ՌΛอ͓࣋ͯ͘͜͠ͱʹΑΓɼۙ๣ͷΤοδΛ

5. ·ͱΊೝࣝͰ͖ΔɽҰํͰɼ֤Τοδ͕Ϋϥ΢υۙ๣ͷΤοδ͔ຊ࿦จͰ͸ɼར༻ऀͱΫϥ΢υͷؒͷωοτϫʔΫϨΠͲ͏͔Λೝࣝ͢ΔͨΊʹɼΤοδ͸ۙ๣ͷΤοδͷ൑ఆ݁ςϯγΛ௿‫ͤ͞ݮ‬ΔͨΊʹɼΤοδͱͯ͠෼ࢄͨ͠σʔλՌΛσʔλϕʔεαʔό͔Β௨஌Λड͚औΔɽ͞Βʹɼ֤ηϯλʔΛ‫͢༻׆‬Δ͜ͱΛલఏʹɼWeb ΞϓϦέʔγϣϯΤοδ͕Ϋϥ΢υۙ๣ͷΤοδͷ͏ͪࣗ਎͔ΒωοτϫʔͷಡΈࠐΈੑೳΛ޲্ͤ͞ΔͨΊʹɼΞϓϦέʔγϣϯ։Ϋ‫཭ڑ‬ͷ͍ۙ΋ͷΛબ୒͢ΔͨΊʹɼ͋Β͔͡Ίࣗ਎ͱଞൃऀʹ௥Ճͷෛ୲Λ͔͚ͣʹɼ‫͍ڧ‬Ұ؏ੑΛ࣋ͪͭͭ΋ɼͷ͢΂ͯͷΤοδͱͷؒͷωοτϫʔΫϨΠςϯγΛ‫ܭ‬ଌ

σʔλϕʔεΫΤϦͷ݁ՌΛΩϟογϡ͢Δ͜ͱʹண໨͠͠ɼอ͓࣋ͯ͘͠ɽͨɽͦͷ্Ͱɼզʑ͸ɼ෼ࢄͨ͠σʔληϯλʔ্ͷσʔλΛಁաతʹѻ͑Δ௒‫ݸ‬ମ‫ܕ‬σʔληϯλʔʹ޲͚ͯɼ෼

4.2 Ԡ౴ੑೳΛ࠷େԽ͢ΔͨΊͷదԠతͳΫΥʔϥϜௐ੔ࢄͨ͠Ωϟογϡͷߋ৽࣌ͱಡΈࠐΈ࣌ͷσʔλసૹ࣌ؒఏҊख๏͸ɼγεςϜ؅ཧऀ͕ωοτϫʔΫϨΠςϯγͷτϨʔυΦϑΛղܾ͢ΔͨΊʹɼΫΥʔϥϜγεςϜΛͷᮢ஋Λઃఆ͢Δ͜ͱʹΑΓɼΩϟογϡߋ৽࣌ͷಉ‫ظ‬଴‫ͨ͠ʹج‬Ωϟογϡ؅ཧΞʔΩςΫνϟͷߏ૝ΛఏҊͨ͠ɽͪ࣌ؒʹΑΔੑೳӨ‫ͱڹ‬ಡΈࠐΈ࣌ͷసૹ࣌ؒͷੑೳӨ‫ڹ‬ࠓ‫ޙ‬͸ɼैདྷͷ P2P ΦʔόʔϨΠωοτϫʔΫͰఏҊͷ‫ߧۉ‬Λอͭɽ͔͠͠ɼ࣮ࡍʹ͸ɼॻ͖ࠐΈओମͷΞΫη͞Ε͍ͯΔख๏ͱຊ‫ͱڀݚ‬ͷཱͪҐஔΛ໌֬ʹͭͭ͠ɼఏε܏޲Ͱ͋Ε͹ɼಉ‫ظ‬ճ਺͕૿Ճ͠ɼಉ‫ظ‬଴ͪ࣌ؒʹΑΔҊख๏ͷ࣮૷ͱධՁΛਐΊ͍ͯ͘ɽੑೳӨ‫͕ڹ‬େ͖͘ͳΓɼಡΈࠐΈओମͷΞΫηε܏޲Ͱ͋Ε͹ɼసૹճ਺͕૿Ճ͠ɼసૹ࣌ؒʹΑΔੑೳӨ‫͕ڹ‬େ͖ࢀߟจ‫ݙ‬͘ͳΔɽ͕ͨͬͯ͠ɼΞϓϦέʔγϣϯ୯ҐͷΞΫηε܏[1]޲ʹԠͯ͡ɼωοτϫʔΫϨΠςϯγͷᮢ஋Λௐ੔͠ɼԠ౴ੑೳΛ޲্ͤ͞Δ͜ͱ͕ՄೳͰ͋Δɽͦ͜ͰɼΞϓϦέʔγϣϯ୯ҐͰԠ౴ੑೳΛ࠷େԽ͢ΔͨΊʹɼΫϥ΢υͷۙ๣ͱ൑ఆ͢ΔͨΊͷϨΠςϯγͷᮢc 2019 Information Processing Society of Japan!

[2]

Forrester Consulting: eCommerce Web Site Performance
Today: An Updated Look At Consumer Reaction To A
Poor Online Shopping Experience 2009.
S Choy, B Wong, G Simon and C Rosenberg: The Brewing Storm in Cloud Gaming: A Measurement Study on
Cloud to End-User Latency, 11th Annual Workshop on

6৘ใॲཧֶձ‫ڀݚ‬ใࠂ
IPSJ SIG Technical Report

[3]

[4]
[5]
[6]
[7]
[8]

[9]

[10]

[11]
[12]

[13]

[14]
[15]
[16]
[17]
[18]

[19]
[20]

[21]
[22]
[23]

Vol.2019-CSEC-85 No.14
Vol.2019-IOT-45 No.14
2019/5/24

Network and Systems Support for Games, p. 2 2012.
A M K Pathan and R Buyya: A Taxonomy and Survey ofContent Delivery Networks, Grid Computing and Distributed Systems Laboratory, University of Melbourne,
Technical Report, Vol. 4, No. 0, p. 1 2007.
H Beheshti: Extending your application to the edge with
Fastly.
Lambda@Edge, https://aws.amazon.com/lambda/edge/.
Cloudflare Workers, https://cloudflareworkers.com/.
Fly Edge Applications, https://fly.io/.
J Lin, W Yu, N Zhang, X Yang, H Zhang, and W Zhao:
A Survey on Internet of Things: Architecture, Enabling
Technologies, Security and Privacy, and Applications,
IEEE Internet of Things Journal, Vol. 4, No. 5, pp.
1125–1142 2017.
B Kashif, K Osman, E Aiman and S U Khan: Potentials, Trends, and Prospects in Edge Technologies: Fog,Cloudlet, Mobile Edge, and Micro Data Centers, Computer Networks, Vol. 130, pp. 94–120 2018.
ࢁ‫߂ޱ‬७, ҆ຊ‫ܚ‬ҰɿΤοδίϯϐϡʔςΟϯά‫͓ʹڥ؀‬
͚Δ஌త෼ࢄσʔλॲཧͷ࣮‫ݱ‬ɼిࢠ৘ใ௨৴ֶձ࿦จ
ࢽ Bɼ Vol. 101, No. 5, pp. 298–309 2018.
M Satyanarayanan: The Emergence of Edge Computing,Computer, Vol. 50, No. 1, pp. 30–39 2017.
দຊ྄հ, ௶಺༎थ, ‫ٶ‬Լ߶ีɿ෼ࢄ‫ܕ‬σʔληϯλʔ OSΛ໨ࢦͨ͠ϦΞΫςΟϒੑΛ࣋ͭίϯςφ࣮ߦ‫ج‬൫ٕज़ɼ৘ใॲཧֶձ‫ڀݚ‬ใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣɼVol. 2019-IOT-44, No. 27, pp. 1–8 2019.
C Garrod, A Manjhi, A Ailamaki, B Maggs, T Mowry,
O Christopher and T Anthony: Scalable Query Result Caching for Web Applications, VLDB Endowment,Vol. 1, No. 1, pp. 550–561 2008.
X Liu, J Heo and L Sha: Modeling 3-tiered web applications.
R Cattell: Scalable SQL and NoSQL Data Stores, ACM
SIGMOD Record, Vol. 39, No. 4, pp. 12–27 2011.
Memcached, https://memcached.org/.
Redis, https://redis.io/.
D Karger, E Lehman, T Leighton, M Levine, D Lewin,
R Panigrahy: Consistent Hashing and Random Trees:
Distributed Caching Protocols for Relieving Hot Spotson The World Wide Web, ACM Symposium on Theoryof Computing, Vol. 97, pp. 654–663 1997.
Groupcache, https://github.com/golang/groupcache.
A A Donovan, B W Kernighan: The Go Programming Language, Addison-Wesley Professional, 1st edition 2015.
MySQL, http://www.mysql.com/.
ProxySQL, https://proxysql.com/.
K Amiri, S Park, R Tewari, and S Padmanabhan:
DBProxy: A Dynamic Data Cache for Web Applications, International Conference on Data Engineering,pp. 821–831 2003.

c 2019 Information Processing Society of Japan!

7