CARVIEW |
Select Language
HTTP/2 200
date: Fri, 10 Oct 2025 18:29:10 GMT
content-type: text/html; charset=utf-8
cache-control: max-age=0, private, must-revalidate
cf-cache-status: DYNAMIC
link: ; rel=preload; as=style; nopush,; rel=preload; as=script; nopush,; rel=preload; as=style; nopush,; rel=preload; as=script; nopush,; rel=preload; as=script; nopush
nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
referrer-policy: strict-origin-when-cross-origin
report-to: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=ys51KBUMHc5mUcVf0zH%2F4GIh1eITDMXg7es1iViku6o%3D\u0026sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d\u0026ts=1760120950"}],"max_age":3600}
reporting-endpoints: heroku-nel="https://nel.heroku.com/reports?s=ys51KBUMHc5mUcVf0zH%2F4GIh1eITDMXg7es1iViku6o%3D&sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d&ts=1760120950"
server: cloudflare
strict-transport-security: max-age=0; includeSubDomains
vary: Accept,Accept-Encoding
via: 2.0 heroku-router
x-content-type-options: nosniff
x-permitted-cross-domain-policies: none
x-request-id: 2ad69ba7-a05e-fc28-8b83-dc51fed76a10
x-runtime: 0.415954
x-xss-protection: 0
content-encoding: gzip
set-cookie: _secure_speakerd_session=t%2FJZ%2FhI0%2FMG%2BNPncstcSz%2Bubrls72BN941bb3%2FG%2BLoGqbsvXZkD7%2FnW1kB6qc9QzVnqkBr0QrCPONfFnLgZ7wa6P8Qn00I8LZdXf4aI6fsb%2Fuvj6OKy3FLHgpOMhp9ttZZ%2Fox6eesGHvKw8rZ8WAHrTtW9Gpqt4nI2i1inIvGC0G4TatfgMaTSHEDTFBwUQ3UUfQWNXynOC2SL5VVqm60zmhSHu9JGjgK4HccletD2%2BGQCWQhcKnIlZASKwo49YX%2BuIye3YohBusC4%2FqMHdpb4HlkeudlffTlwyNPbEv83S2iG4IQk%2BRHTjEka65DoerIkHv0GrPm1vxvCEeZjHSHuyQbWxbxi79h%2BZL8IBICkaQ2Kj8Pl0%2BTM6MLZTei0SrUH5Mv7ybW0DKuOiV6J60FZqf--RB8g1JjiV6RYQowc--09AbR0O35olEZ5JxUWoUYA%3D%3D; HttpOnly; SameSite=Lax; Secure; Path=/; Expires=Fri, 24 Oct 2025 18:29:10 GMT
cf-ray: 98c82e7dbe4d860e-BLR
エッジコンピューティングに向けた分散キャッシュ技術の調査 / edge caching survey - Speaker Deck
エッジコンピューティングに向けた分散キャッシュ技術の調査 / edge caching survey
WebSystemArchitecture研究会#4 https://websystemarchitecture.hatenablog.jp/entry/2019/02/26/100725
Yuuki Tsubouchi (yuuk1)
April 13, 2019
More Decks by Yuuki Tsubouchi (yuuk1)
Other Decks in Research
Featured
Transcript
-
͘͞ΒΠϯλʔωοτ גࣜձࣾ (C) Copyright 1996-2019 SAKURA Internet Inc ͘͞ΒΠϯλʔωοτ ݚڀॴ
ΤοδίϯϐϡʔςΟϯάʹ͚ͨ ࢄΩϟογϡٕज़ͷௐࠪ 2019/04/13 ݚڀһ ௶ ༎थ ୈ4ճWebSystemArchitectureݚڀձ@ژ @yuuk1t / id:y_uuki -
4 WebαʔϏεͷϢʔβʔͷମݧͷ্ ɾԠͷվળʹΑΓɼϢʔβʔͷମݧ্͕͢Δ ɾ40%Ҏ্ͷWebαʔϏεͷϢʔβʔϖʔδͷಡΈࠐΈΛ3ඵҎ্ ͯͳ͍ͱ͍͏ௐࠪ݁Ռ͕͋Δ[2] ɾಡΈࠐΈԆͷཁҼ ɾ(1) ΫϥυͷσʔληϯλʔͰͷॲཧԆ ɾ(2) ΤϯυϢʔβʔͱσʔληϯλʔؒͷωοτϫʔΫసૹԆ
ɾ(3) ϒϥβ্ͰͷίϯςϯπදࣔԆ ɾ(2)ͷԆΛݮ͢ΔʹΤϯυϢʔβʔͷۙͰॲཧ͢Δඞཁ͕͋Δ [2]: Forrester Consulting, "eCommerce Web Site Performance Today: An Updated Look At Consumer Reaction To A Poor Online Shopping Experience", 2019. -
7 CDN Edge Worker ɾCDNͷΤοδαʔό্Ͱཁٻʹରͯ͠ҙͷॲཧΛ࣮ߦ͍ͨ͠ ɾϑΝΠϧͰͳ͘ɼΞϓϦέʔγϣϯΛϢʔβʔͷۙʹஔ͢Δ CDN Edge WorkerͱݺΕΔαʔϏε͕ొ͍ͯ͠Δ ɾAWS
Lambda@Edge[3]ɼCloudflare Workers[4]ɼfly.io[5]ͳͲ ɾϓϩάϥϛϯάݴޠॲཧܥͷ੍͋Δ -
13 ωοτϫʔΫܕͷࢄΩϟογϡ ɾΞϓϦέʔγϣϯϓϩηε͕ωοτϫʔΫ௨ ৴ͯ͠ར༻͢Δ ɾෳͷΩϟογϡϊʔυෛՙࢄ͢ΔͨΊ ʹɼϋογϡ๏Λར༻͢Δ ɾΦϒδΣΫτͷΩʔͱࢄઌͷΩϟογϡ ϊʔυΛඥ͚ͮ͠ɼΦϒδΣΫτ୯ҐͰࢄ͞ ͤͯΩϟογϡϊʔυσʔλΛஔ͢Δ ɾMemcachedRedis͕ར༻͞ΕΔ
ɾΩϟογϡϊʔυಉ࢜ڠௐ͍ͯ͠ΔΘ͚Ͱ ͳ͍ Cache Node Cache Node Cache Node App Node -
App Node 14 ΈࠐΈܕͷࢄΩϟογϡ(Groupcache) ɾෳͷϊʔυ͕ڠௐͯ͠ҰͭͷΩϟογϡۭؒ Λ࡞Մೳ ɾσʔλΛੵۃతʹڞ༗͠ͳ͍ ɾϐΞϊʔυίϯγεςϯτϋογϡ๏ʹΑΓ બ͞ΕΔ ɾϩʔΧϧͰͷΩϟογϡϛε࣌ʹͯ͢ͷϐ
ΞʹϑΥʔϧόοΫ͠ͳͯ͘Α͍ ɾߋ৽ͱআΛαϙʔτ͓ͯ͠ΒͣɼLRUʹΑΓ Ωϟογϡ͕ഁغ͞Εͳ͍͔͗Γɼීวͷσʔ λΛ֨ೲ͢Δ Cache App Node Cache App Node Cache ᶃ ϩʔΧϧΩϟογϡऔಘ ᶅϩʔΧϧ Ωϟογϡ ʹ֬తʹ ॻ͖ࠐΈ ᶄϐΞϊʔυϑΥʔϧόοΫ ᶄ ᶃ -
18 DBαʔόܕΫΤϦΩϟογϡ ɾσʔλϕʔεαʔόࣗମ͕ΩϟογϡػߏΛͭ ɾՃͷιϑτΣΞͳ͠ʹར༻Մೳ ɾMySQLͷΫΤϦΩϟογϡ͜Εʹ֘ ɾMySQLɺςʔϒϧʹߋ৽͕͋Εɼ֘ςʔϒϧͷมߋ͕݁Ռʹ Өڹ͢ΔΫΤϦͷΩϟογϡΛഁغ͢ΔͨΊɺςʔϒϧͱΩϟο γϡؒͰҰ؏ੑอͨΕΔ ɾ→ Ωϟογϡώοτ͕͍
ɾΩϟογϡͦͷͷΛϢʔβʔͷۙʹஔͰ͖ͳ͍ͨΊɼωοτ ϫʔΫԆͷݮͰ͖ͳ͍ -
19 ϓϩΩγܕΫΤϦΩϟογϡ: ProxySQL ɾMySQLϓϩτίϧΛղऍ͢Δಠཱϓϩηεͱͯ͠ىಈ͢ΔϓϩΩγ ɾMySQLαʔόΑΓΑΓϑϩϯτΤϯυʹ͍ۙҐஔʹஔՄೳ ɾΞϓϦέʔγϣϯαʔόͱಉҰͷϗετ্ʹஔ͢Δ͜ͱʹΑΓɼ ΞϓϦέʔγϣϯαʔόͱMySQLαʔόؒͷRTTΛݮ App Node Proxy
SQL App Node Proxy SQL MySQL Server ɾTTL(Time to Live)Λར༻ͯ͠ΩϟογϡΛແ ޮԽ͢ΔͨΊɼΞϓϦέʔγϣϯʹݹ͘ͳͬ ͨσʔλΛฦ͢Մೳੑ͕͋Δ ɾࢄڠௐͯ͠ಈ࡞͢ΔΘ͚Ͱͳ͍ -
20 ϓϩΩγܕΫΤϦΩϟογϡ: DBProxy ɾΤοδ্ʹஔ͞Ε֤ͨΞϓϦέʔγϣϯαʔό͕தԝͷσʔλ ϕʔεαʔόʹର͢ΔΫΤϦ݁ՌΛΩϟογϡ ɾΫΤϦ݁Ռ͕ଞͷΫΤϦʹΑΓΩϟογϡ͞ΕͨσʔλʹΑΔߏங Ͱ͖ΔͷͰ͋ΕɼະΩϟογϡͷΫΤϦͷ݁ՌΛฦ͢ App Node DB
Proxy App Node DB Proxy DB Server ɾߋ৽Λߪಡ͠ετϦʔϜͰҰ؏ੑΛอূ ɾதԝूݖతʹҰ؏ੑΛཧ͢Δ͜ͱʹΑ Γɼ֤Ωϟογϡதԝσʔλϕʔεʹର͠ ͯίώʔϨϯτ ɾΫΤϦΩϟογϡΛར༻͢Δෳͷεςʔ τϝϯτΛؚΉτϥϯβΫγϣϯʹରԠͰ ͖ͳ͍ Subscribe Update -
21 ϓϩΩγܕΫΤϦΩϟογϡ: Ferdinand ɾಈతίϯςϯπ৴ͷͨΊͷڠௐಈ࡞͢ΔΫΤϦΩϟογϡϓϩΩγ ɾτϐοΫϕʔεͷpub/subϞσϧʹΑΓɼΩϟογϡͷҰ؏ੑΛҡ࣋ ɾҰ؏ੑʹ͍ͭͯDBProxyͱಉ༷ ɾࢄϋογϡςʔϒϧΛར༻͢ ΔͨΊɼ֤ϓϩΩγ͕ಉ͡σʔ λΛڞ༗͍ͯ͠ͳ͍ ɾΩϟογϡϛεͯ͠ଞͷϓϩ
ΩγϊʔυϑΥϫʔυ ɾγϯϓϧͳΩϟογϡͱൺֱ ͠ɺ3ഒͷੑೳ্ ग़య: [9]: C Garrod, et al., "Scalable query result caching for web applications", VLDB Endowment, vol.1, no.1, pp.550-561, 2008 -
24 ·ͱΊ ɾWebαʔϏεͷϢʔβʔମݧ্ͷͨΊʹΤϯυϢʔβʔͷۙͰ ཁٻΛॲཧ͍ͨ͠ ɾCDNɼCDN Edge WorkerΤοδؒͰσʔλΛڞ༗͢Δͱ͖ʹҰ ؏ੑͷ՝Λͭ ɾಡΈग़͠ੑೳ্ͷͨΊͷࢄΩϟογϡٕज़Λௐࠪ ɾΩϟογϡΛڞ༗ͤͣɼίϯγεςϯτϋογϡ๏Groupcacheͷ
ڠௐΩϟογϯάɼࢄϋογϡςʔϒϧΛར༻͢Δ͜ͱ͕͋Δ ɾΤοδίϯϐϡʔςΟϯάʹ͓͍ͯɼͯ͢ͷΤοδͰΩϟο γϡΛڞ༗ͤͣʹɼΩϟογϡ͕ঃʑʹඞཁͱ͞ΕΔॴʹҠಈ͢ ΔΑ͏ͳΈΛߟ͑ΒΕͳ͍͔