CARVIEW |
Select Language
HTTP/2 200
date: Fri, 10 Oct 2025 11:10:13 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=ejLuDB%2BDQh5otYcth%2Fekw5DAnXLxqX%2FrxH5%2Bd43fteA%3D\u0026sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d\u0026ts=1760094612"}],"max_age":3600}
reporting-endpoints: heroku-nel="https://nel.heroku.com/reports?s=ejLuDB%2BDQh5otYcth%2Fekw5DAnXLxqX%2FrxH5%2Bd43fteA%3D&sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d&ts=1760094612"
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: 6fb6176f-e28b-2a7d-c999-9c45d6467bbe
x-runtime: 0.120867
x-xss-protection: 0
content-encoding: gzip
set-cookie: _secure_speakerd_session=xlebSWY3PHXVxq9YN45Uuc%2FnHHok1sTO55uJQsf4TgersDXmE3ckqD3nTRyF117oSQ0rm6ZuBLBMc1aXI2ia3kIum9rIkrME%2Fi%2Fu5NwqvPd3thF9vSsnbLpzM44pi7pd37EhPQG2FGte6YG%2B4lD9ctI4rZR0j6Iz2S8thAJnpf9elLVAq0NSYQCLn%2B%2FoXo9ntebJQEUTL7%2Fopq%2F%2Bg799SZms0C4pVTy%2FjlyCAJ8BggoJ%2BppyoaouRIPbOfq8A%2Bvzbf8C%2F2cOzBvjc%2BnHY5FPxgKupr1s0gyW%2FEBKOUfGM6dnYDboWvUxFhe4Ey6DBr8zf3Ef6%2B0ttE%2BLveFoQLnhB9PvOrQqnSrnsyC9keI5KtK90ylOisUDQStLX2oHtb8RvKvzoDmlx8RUNSqJhY%2F6gsNw--02%2F6V63uiMdXkcVy--TQNZRBU3QX%2Faq1OwZoM%2F4A%3D%3D; HttpOnly; SameSite=Lax; Secure; Path=/; Expires=Fri, 24 Oct 2025 11:10:13 GMT
cf-ray: 98c5ab7dede7c464-BLR
わたしの研究開発紹介 - 技術者から研究者へ - / Introduction to my research - Speaker Deck
わたしの研究開発紹介 - 技術者から研究者へ - / Introduction to my research
1. なぜ技術者から研究者へ転向したのか
2. 事業での実践を研究へ昇華した事例 (前職)
3. 今後の研究開発の構想 (さくらインターネット)
Yuuki Tsubouchi (yuuk1)
April 10, 2019
More Decks by Yuuki Tsubouchi (yuuk1)
Other Decks in Research
Featured
Transcript
-
͘͞ΒΠϯλʔωοτ גࣜձࣾ (C) Copyright 1996-2019 SAKURA Internet Inc ͘͞ΒΠϯλʔωοτ ݚڀॴ
Θͨ͠ͷݚڀ։ൃհ - ٕज़ऀ͔Βݚڀऀ - 2019/04/10 ݚڀһ ௶ ༎थ @yuuk1t / id:y_uuki -
2 ࣗݾհ ௶ ༎थ / Ώ͏͏͖ https://yuuk.io/ େࡕେֶ جૅֶ෦ ใՊֶՊ
େࡕେֶ େֶӃใՊֶݚڀՊ ɹใωοτϫʔΫֶઐ߈ ത࢜લظ՝ఔ ܦྺ גࣜձࣾͯͳ WebΦϖϨʔγϣϯΤϯδχΞɾSRE ͘͞ΒΠϯλʔωοτגࣜձࣾ ͘͞ΒΠϯλʔωοτݚڀॴ ݚڀһ ฒྻॲཧ TCP/IPελοΫ WebαʔϏεͷ ։ൃɾӡ༻ WebɾΠϯλʔωοτ ج൫ٕज़ݚڀ 5.5 5 ݱࡏ -
3 1. ͳٕͥज़ऀ͔Βݚڀऀసͨ͠ͷ͔ 2. ࣄۀͰͷ࣮ફΛݚڀঢ՚ͨ͠ࣄྫ (લ৬) 3. ࠓޙͷݚڀ։ൃͷߏ (͘͞ΒΠϯλʔωοτ) ͓͍͑ͨ͜͠ͱ
͜ΕΒͷҰ߲͝ͱʹ࣭ٙͷ࣌ؒΛ͍͍ͨͩͯ ٞϕʔεͰ͓ΛਐΊ͍͚ͤͯͨͩ͞Εͱࢥ͍·͢ -
9 ݚڀ։ൃ࣮1 1.௶༎थ, ࣗવͷ͝ͱ͘ෳࡶԽͨ͠ΣϒγεςϜͷࣗతӡ༻ʹ͚ͯ, ਓೳֶձ ߹ಉݚڀձ ୈ3ճΣϒ αΠΤϯεݚڀձ(টߨԋ), 201711݄24 2.௶༎थ,
ߴʹൃୡͨ͠γεςϜͷҟৗਆͷౖΓͱݟ͚͕͔ͭͳ͍, IPSJ-ONE 2017, 201703݄18 3.௶༎थ, αʔόϞχλϦϯά͚࣌ܥྻσʔλϕʔεͷ୳ڀ, ୈ9ճΠϯλʔωοτͱӡ༻ٕज़γϯϙδϜ (IOTS2016)(টߨԋ), 201612݄01 ɾࠪಡ͖จ(ࠃ) ɾߨԋ(ࠃ) 1.௶༎थ, ࡔேਓ, ᖛా݈, দխ, Ѩ෦ത, দຊ྄հ, “HeteroTSDB: ҟछࠞ߹ΩʔόϦϡʔετΞΛ༻͍ͨࣗಈ ֊ԽͷͨΊͷ࣌ܥྻσʔλϕʔεΞʔΩςΫνϟ”, Πϯλʔωοτͱӡ༻ٕज़γϯϙδϜจू, 2018, 7-15 (2018-11-29), 201812݄. ɾࠃࡍձٞจ 1.Yuuki Tsubouchi, Asato Wakisaka, Ken Hamada, Masayuki Matsuki, Hiroshi Abe, Ryosuke Matsumoto, “HeteroTSDB: An Extensible Time Series Database for Automatically Tiering on Heterogeneous Key-Value Stores”, Proceedings of The 43rd Annual International Computers, Software & Applications Conference (COMPSAC), July 2019. (to apper) -
10 ݚڀ։ൃ࣮2 ɾॻ੶ɾࡶࢽ 1.Ҫ্େี,പ୩େี,ਿࢁ௨,ాத৻࢘,௶༎थ,দխ, Mackerel αʔόࢹʦ࣮ફʧೖ, ٕज़ධࣾ, 20178 ݄26 2.௶༎थ,
MackerelͰ͡ΊΔαʔόཧ ୈ17ճ ϩʔϧฤͷߟ͑ํ, Software Design 20167݄߸, ٕज़ධࣾ, 20166݄18 3.௶༎थ, MackerelͰ͡ΊΔαʔόཧ ୈ13ճ MackerelͱServerspecΛΈ߹ΘͤͨΠϯϑϥςετ, Software Design 20163݄߸, ٕज़ධࣾ, 20162݄18 4.௶༎थ, MackerelͰ͡ΊΔαʔόཧ ୈ9ճ MackerelͷΞʔΩςΫνϟΛΔ, Software Design 201511݄߸, ٕज़ධࣾ, 201510݄17 5.௶༎थ, Perl Hackers Hub ୈ34ճ DockerʹΑΔPerlͷWebΞϓϦέʔγϣϯ։ൃ, WEB+DB PRESS Vol.88, ٕज़ ධࣾ, 20158݄24 6.௶༎थ, MackerelͰ͡ΊΔαʔόཧ ୈ6ճ Mackerelपลͷӡ༻πʔϧͱAWS࿈ܞϊϋ, Software Design 20158݄߸, ٕज़ධࣾ, 20157݄18 7.௶༎थ, MackerelͰ͡ΊΔαʔόཧ ୈ3ճ ӡ༻͠ͳ͕ΒҭͯΔαʔόࢹͷϧʔϧ, Software Design 20155 ݄߸, ٕज़ධࣾ, 20154݄18 -
13 ٕज़ऀͱͯ͠ͷՌ ɾαʔόࢹαʔϏεΛ։ൃɾӡ༻͍ͯͨ͠ ɾαʔϏεར༻ऀ͔Βͷɺࢹରͷখ͞ͳมԽΛݟಀ͞ͳ͍ͨΊʹɺ ࢹ݁ՌͷੵͰ͋Δ࣌ܥྻσʔλͷߴղ૾ԽɺظอଘԽ͢Δཁ ͕͋ͬͨ ɾઃܭͱ࣮ͷҰ෦ɺϦϦʔε·ͰͷϓϩδΣΫτཧΛΊͨ ɾදతϓϩμΫτͱͯ͠ঢ՚͢ΔͨΊʹֶज़จͱ͍͏٬؍తج४ ઓ ɾIOTS2018
࠾ ɾIEEE COMPSAC 2019 ϝΠϯγϯϙδϜ (short paper) ࠾ -
HeteroTSDB: An Extensible Time Series Database for Automatically Tiering on
Heterogeneous Key-Value Storesa HeteroTSDB: ҟछࠞ߹ΩʔόϦϡʔετΞ Λ༻͍ͨࣗಈ֊ԽͷͨΊͷ ࣌ܥྻσʔλϕʔεΞʔΩςΫνϟ -
15 ຊݚڀͷഎܠͷ֓؍ ࣾձͷഎܠ ΠϯλʔωοταʔϏεͷ৴པੑΛৗʹܭଌ͢Δͷ͕ͨΓલʹ ࣾձͷ ཁٻᶃ ࣌ܥྻσʔλΛߴղ૾ʹऔಘ͠ ظอଘ͍ͨ͠ ࣾձͷ ཁٻᶄ
࣌ܥྻσʔλΛάϥϑҎ֎ͷ ෳͷҟͳΔ༻్Ͱࢀর͍ͨ͠ طଘͷղܾ • ࣌ܥྻσʔλͷѹॖ (ࠩූ߸Խ) • ϝϞϦʹॻ͖ࠐΈɺσΟεΫ·ͱ ΊҠಈͤͯ͞ॻ͖ࠐΈޮ্ ෦ߏ͕ີ݁߹ͳͨΊɺ σʔλߏΛՃ͢Δ͜ͱ͕͍͠ ߴղ૾ => I/Oճ͕େ͖͍ ظอଘ => σΟεΫ༻͕େ͖͍ ༻్͝ͱʹσʔλࢀরύλʔϯ͕ҟͳΔͨ ҟͳΔσʔλߏ͕ඞཁ ੑೳ ՝ ֦ு՝ ղܾ͞Ε͍ͯͳ͍՝ -
16 ຊݚڀͷతͱఏҊͷ֓؍ ݚڀత ॻ͖ࠐΈޮͱσʔλอଘޮΛԼͤͣ͞ʹ σʔλߏΛ֦ுՄೳͳ࣌ܥྻσʔλϕʔεͷఏҊ ֦ு՝ͷղܾ 1ͭͷ༻్ʹ͖ͭɺ1ͭͷDBMSΛՃ σʔλߏΛՃ͍͢͠Α͏ʹ σʔλ(·ͨͦͷҰ෦)Λෳͯ͠ҟͳ ΔDBMSʹॻ͖ࠐΊΔΑ͏ʹૄ݁߹Խ
ੑೳ՝ͷղܾ ҟछࠞ߹DBMSͷΈ߹Θͤ (ΠϯϝϞϦDBMSͰॻ͖ࠐΈ ΦϯσΟεΫDBMS·ͱΊͯҠಈ) ఏҊͷৄࡉ • DBMSؒͷҰ؏ੑΛอͭͨΊͷɹ ႈੑΛͭσʔλߏ • ࣌ܥྻσʔλͷҠಈख๏ • σʔλߏͷՃख๏ -
࣌ܥྻσʔλϕʔεͷઌߦख๏ 18 0QFO54%# (PSJMMB *OqVY%# ॻ͖ࠐΈޮ ϝϞϦόοϑΝ ΠϯϝϞϦ ϝϞϦόοϑΝ σʔλอଘޮ
ແѹॖ ѹॖ ѹॖ ૄ݁߹ੑ ີ݁߹ ॻ͖ࠐΈʹ͍ͭͯ ີ݁߹ ີ݁߹ -
ఏҊγεςϜͷॲཧϑϩʔ 19 Message Broker (1) write Client Metric Writer Metric
Reader In-Memory DBMS On—Disk DBMS (2) subscribe and write (3) migration (i) query (ii) read from each dbms (iii) merge datapoints (ii) -
20 0 1 2 3 4 5 0 20 40
60 80 100 120 datapoint writes / min (mega) minutes In-Memory KVS On-Disk KVS ΠϯϝϞϦKVSͷؒॻ͖ࠐΈճ 4MͰҰఆ ΦϯσΟεΫKVSؒॻ͖ࠐΈճ 70k͔Β170kͷؒΛਪҠ ΦϯσΟεΫKVSͷ ؒॻ͖ࠐΈճΛ 1/20ʹݮͨ͜͠ͱ͕Θ͔Δ ॻ͖ࠐΈεϧʔϓοτͷ࣌ؒมԽ -
21 0 10 20 30 40 50 60 70 80
90 100 0 20 40 60 80 100 120 0 2 4 6 8 10 12 14 16 CPU usage (%) Free memory size (GB) minutes master CPU usage (%) slave1 CPU usage (%) slave2 CPU usage (%) Free memory size (GB) 50Λ͑ͨͱ͜ΖͰ ۭ͖ϝϞϦ༻ྔ͕10.5GBͰҰఆʹͳͬ ͍ͯΔͨΊσʔλҠಈͰ͖͍ͯΔͱ͍͑Δ CPUར༻ͱϝϞϦ༻ྔ -
αʔόࢹαʔϏεͷ࣮ڥͷద༻ • 20177݄͔Β20188݄·Ͱͷ1ؒͷՔಇ࣮ • ಉظؒͷো݅2݅ɺނোճ2݅ • ো1: ಛఆͷΠϯϝϞϦKVSͷϊʔυʹॻ͖ࠐΈෛՙ͕ूத͠ɺϝϞ Ϧ্ݶʹୡ͠ɺOSʹڧ੍ఀࢭ͞Εɺσʔλফࣦൃੜ •
ϝοηʔδϒϩʔΧʔ্ͷσʔλΛ࠶ॲཧ͠σʔλ෮چ • ো2: ಉҰͷϝτϦοΫ໊ͱλΠϜελϯϓΛͭσʔλ͕࣌ؒ ʹେྔʹॻ͖ࠐ·ΕɺΠϯϝϞϦKVSͷॻ͖ࠐΈαΠζ্ݶʹୡͨ͠ • ΠϯϝϞϦKVSʹॻ͖ࠐΉલʹॏෳΛഉআ͢Δ͜ͱͰղܾ 22 -
27 ݚڀ։ൃߏͷ֓؍ ɾ͘͞ΒΠϯλʔωοτݚڀॴͷϏδϣϯͰ͋Δʮݸମܕσʔληϯ λʔʯʹΑΓɺΫϥυͷܭࢉػೳྗ͕͔͋ͨਓʑͷۙʹଘࡏ͢ Δ͔ͷΑ͏ͳίϯϐϡʔςΟϯάΛࢦ͢ ɾࣗͷಘҙͱབྷΊͯςʔϚͷେΛߜΓࠐΜͩ খنσʔληϯλʔͱΫϥ υΛ༗ػతʹ݁߹͢ΔͨΊʹ σʔλͷҰ؏ੑΛอͪͳ͕Βɺ ͍͔ʹޮΑ͘ಡΈॻ͖͢Δ͔
খنσʔληϯλʔͱΫϥ υ͕݁߹ͨ͠ঢ়ଶʹ͓͍ͯ γεςϜͷঢ়ଶΛ͍͔ʹܭଌ ͠ɺѲ͢Δ͔ σʔλूΞϓϦέʔγϣϯ γεςϜ؍ଌ -
28 ςʔϚᶃ: σʔλूΞϓϦέʔγϣϯͷલఏ ɾݸମܕσʔληϯλʔɺ֤σʔληϯ λʔ͕ͲͷΑ͏ʹࢄ͢Δ͔نఆ͍ͯ͠ͳ͍ ɾ·ͣɺΫϥυͱΤοδ(ར༻ऀͷۙ)Λར ༻ͨ͠ΤοδίϯϐϡʔςΟϯάͷܗͰ੍Λ ͔͚Δ ɾ͕ࣗಘҙͳWebΞϓϦέʔγϣϯ͕ಈ࡞͢ Δͷͱ͢Δ
ɾΤοδɺIaaSΛఏڙ͢Δখنσʔληϯ λʔΛఆ Cloud Edge Edge Edge Edge -
29 ɾ֤ΤοδؒͱΫϥυͰɺར༻ऀ͕Ͳͷڌʹଓͯ͠ಉ͡σʔ λΛฦ͔͢ɺฦ͞ͳ͍͔ ɾྫ͑ϒϩάαʔϏεͰ͋Εɺಉ͡σʔλΛฦ͢ඞཁ͕͋Δ ɾཧతʹॲཧ͕݁͢ΔαʔϏεͳΒಉ͡σʔλΛฦ͞ͳͯ͘Α͍ ɾαʔϏε༷ͷ੍͕খ͍͞ɺಉ͡σʔλΛฦ͢ํࣜΛબ ɾಉ͡σʔλΛฦ͢߹ɺҰ؏ੑͱԠੑೳͷτϨʔυΦϑ͕͋Δ ɾΤοδؒϨΠςϯγ͕େ͖͍ͨΊɺҰ؏ੑΛڧ͘͢ΔͱɺશΤο δͰσʔλ͕ಉظ͞ΕΔ·Ͱͭඞཁ͕͋ΓɺԠੑೳ͕Լ ɾҰ؏ੑΛ؇ΊΔͱΞϓϦέʔγϣϯʹݹ͍σʔλΛฦ͢Մೳੑ͋Γ
ɾ·ͨɺ߹ܭσʔλྔ͕େ͖͘ͳΔ՝͕͋Δ ςʔϚᶃ: σʔλूΞϓϦέʔγϣϯͷצॴ -
30 ɾҰ؏ੑͱੑೳͷτϨʔυΦϑΛɺಡΈࠐΈͱॻ͖ࠐΈͷΞΫηεൺ ͱɺΞϓϦέʔγϣϯͷมߋՄ൱ʹԠͯ͡ɺ੍Λઃఆ ɾಡΈࠐΈओମͰ͋Εɺσʔλͷߋ৽ස͕গͳ͍ͨΊɺҰ؏ੑΛ ڧΊͯɺಉظճ͕খ͘͞ͳΓɺԠੑೳͷԼͷӨڹ૬ରత ʹখ͘͞ͳΔ ɾҰ؏ੑΛڧΊɺΞϓϦέʔγϣϯΛมߋ͠ͳ͍ͱ͍͏੍Λઃఆ ɾσʔλྔݮͷͨΊɺΩϟογϡΛڞ༗͢ΔΑ͏ʹ͢Δ ɾॻ͖ࠐΈओମͰ͋ΕɺಡΈऔΓओମͱٯͱͳΓɺԠੑೳͷԼ ͷӨڹ͕େ͖͘ͳΓɺҰ؏ੑΛڧ͘͢Δͷݱ࣮తͰͳ͍
ɾ۩ମతͳΞϓϦέʔγϣϯΛنఆɻྫ)࣌ܥྻσʔλऩूγεςϜ ςʔϚᶃ: ۩ମతͳςʔϚ੍Λઃఆ -
Proxy͕Ωϟογϡͷಉظͱ ΫΤϦͷϑΥϫʔσΟϯά Small Datacenter DBCache Proxy 32 DBΫΤϦΩϟογϡΞʔΩςΫνϟ DB Cloud
Small Datacenter DBCache Proxy App Web Read/Write Read/Write App Web Ωϟογϡڞ༗ -
Ұ࣌తͳԠͷ Լڐ༰ DBCache Proxy 33 దԠతΫϥελ੍ޚΞʔΩςΫνϟ DB Cloud DBCache Proxy
App Web Read/Write Read/Write App Web App Web (1) ෆௐͳΤοδΛݕ DB Manager (2) ෆௐͳΤοδͷΫΤϦΛ ࢭΊΔΑ͏ʹୡ (3) όοΫάϥϯυͰΩϟογϡΛഇغ ͠ɺۙ·ͨΫϥυ͔Βಉظ ෆௐͳSmall Datacenter ʹҾ͖ͮΒΕͳ͍Α͏ʹ Small Datacenter Small Datacenter -
34 ςʔϚᶄ: γεςϜ؍ଌͷצॴ ɾطଘͷ؍ଌख๏ɺαʔόϝτϦοΫ(CPUར༻ͳͲ)ऩूɺϩάऩ ूɾղੳͳͲ ɾݸମܕσʔληϯλʔʹ͓͍ͯɺΫϥυͱൺֱ͠ɺγεςϜ ཧऀཧతͳࢄΛߟྀʹ͍Εͳ͚ΕͳΒͳ͍ ɾγεςϜͷߏཁૉಉ࢜ͷؔੑ͕֮͑ΒΕͣɺӨڹൣғෆ໌ͱͳΔ ɾΞϓϦέʔγϣϯΛมߋ͠ͳ͍ܗͰɺTCP/UDPͰଓؔΛ Ͱ͖ΔΑ͏ͳΈΛߟ͑Δ
ɾγεςϜཧऀ͚ͷՄࢹԽΑΓɺܭࢉػγεςϜ͕ࣗతʹ؍ଌ ݁ՌʹԠͯ͡அͰ͖ΔΑ͏ͳख๏Λࢦ͍ͨ͠