KAYAC 社内ISUCON 2017、複数台構成の顛末

KAYAC 社内ISUCON 2017、複数台構成の顛末

KAYAC 社内の技術部勉強会で新卒研修の社内ISUCONで先輩チームに課せられた複数台構成レギュレーションの解法について解説したときの資料です

9480e27b8d6ae2a668a98144516b5513?s=128

acidlemon

May 19, 2017
Tweet

Transcript

  1. ࣾ಺*46$0/ ෳ਺୆ߏ੒ͷహ຤ !BDJEMFNPO

  2. ࠓ೥ͷϨΪϡϨʔγϣϯ w ຖ೥ઌഐνʔϜ͕࣮ྗΛݟ͚͍ͤͭͯΔͷͰɺ
 ͨ·ʹ͸ઌഐνʔϜʹϋϯσΛ͚ͭΑ͏ͱࢥͬͨ w ৽ଔνʔϜίΞY୆ w ઌഐνʔϜίΞY୆ w ͨͩ͠ɺϕϯν͔͔Δλʔήοτ*1͸71$ͷ

    1SJWBUF*1ݸ͚ͩ
  3. ݁࿦ઌഐ͕΍ͬͯ΋ ෳ਺୆͸஍ࠈ

  4. ࣮ࡍͷεϖοΫ w ৽ଔνʔϜDYMBSHF୆ w ίΞɺ(#ϝϞϦɺ(CQT͕୆ w ઌഐνʔϜDMBSHF୆ w ίΞɺ(#ϝϞϦɺ.CQT͕୆ w

    ˞ωοτϫʔΫ͸2JJUBʹࡌ࣮ͬͯͨଌ஋͔Βਪଌ
 IUUQRJJUBDPNTBJUBSBJUFNTBFFBG
  5. Ϧιʔε෼ࢄͯ͠Δ͚Ͳ ίΞ਺΍ϝϞϦ਺͸଍ͤ͹ ಉ͔ͩ͡ΒެฏʹΈ͑Δ

  6. ෳ਺୆ͷ໛ൣղ౴Λ ࡞Δ΂͘΍ͬͯΈͨ

  7. ࠷ॳʹ w ී௨ʹ୆ ίΞ Ͱղ͍ͯɺ఺ग़Δ͘Β͍ ·Ͱ͸ߴ଎ԽΛਐΊ͓ͯ͘ͱΑ͍
 ΅͘͸࣌ؒͳ͔ͬͨͷͰ࠷ॳ͔Β୆ߏ੒࡞͚ͬͨͲ  w VOJDPSOϫʔΧʔ૿΍͢

    w ςϯϓϨͰΫΤϦग़·ͬͯ͘Δͷͱ͔શ෦๾໓ w ͦͷঢ়ଶͰίΞͷ$16Λόϥϯεྑ͘࢖͍੾ͬ ͯΔ͸ͣͳͷͰɺෳ਺୆ʹల։
  8. ୆ˠ୆ w ϗετ໊ΛৼͬͨˠJTVʙJTV IPTUTॻ͘  w ෼ࢄߏ੒ΛܾΊͨ w JTV%# 4JOBUSB

    w JTVOHJOY 4JOBUSB w JTV3FEJT 4JOBUSB w JTV4JOBUSBͷΈ w ϕϯνͷ௨৴ઌ͸JTVΛࢦఆ
  9. OHJOYઃఆ w ը૾ͷΞοϓϩʔυͱ഑৴͕͋ΔͷͰɺը૾ϋϯυ Ϧϯά͸JTVͰશ෦΍ΔΑ͏ʹ͢Δ w UIFNFOFX͸JTVʹ͚ͩVQTUSFBN w QVCMJD͸JTVͷOHJOYͰࡹ͘ w ͦͷ΄͔͸JTVʙJTVʹVQTUSFBN

  10. %#ઃఆ w ͳΜͰJTV͕%#͔ͱ͍͏ͱɺJTVͷ୆ߏ੒ ͷঢ়ଶͰ%#ઃఆ΋νϡʔχϯάͯͨ͠ͷͰɺͦͷ ··࢖͍͔ͨͬͨ ͨͩͷࡶஊ  w XFCBQQͷ઀ଓઌΛ͔Β JTVʹมߋ

    w .Z42-͕CJOEͰ֎͔Βͭͳ͕Β ͳ͍ͷͰʹͯ͠ɺAJTVDPOA!A Aͳ ϢʔβΛ௥Ճ֤ͯ͠ϗετ͔Βೝূ௨Δ༷ʹ͢Δ
  11. 3FEJTઃఆ w ΄΅࢖ͬͯͳ͍͚ͲҰԠ෼͚͓ͯ͘ w XFCBQQͷ઀ଓઌΛ͔Β JTVʹมߋ w 3FEJT΋CJOEͳͷͰʹม ߋ

  12. ͱΓ͋͑ͣ୆Ͱ ಈ͍ͨ

  13. ్தܦա w ѹ౗తʹͭΒͦ͏ͳͷ͕ݟ͑ͯ͘Δ
 ·ͩςϯϓϨ͔ΒΫΤϦ௥͍ग़͠ऴΘͬͯͳ͍  w ͋ͱίΞ୆Ͱ͍ͬͯΔ૊௕͸΍ͬͺεΰΠ

  14. ղ͖ऴΘͬͨ w είΞ͕৳ͼͳ͍ w ໛ൣղ౴νʔϜ ίΞ୆ ͷ࠷ߴείΞ͸લޙͳ ͷͰϗϯτ͸ͦͷ͘Β͍ߦ͖͔ͨͬͨ w ֤αʔόͷ$16͋·ͬͯΔͷʹείΞ৳ͼͳͯ͘ಾ͗͢Δ

  15. ͔͜͜Β͕ຊ୊

  16. ͳͥ୆ߏ੒͸ ୆ߏ੒΄Ͳ είΞ͕৳ͼͳ͍

  17. ଳҬຒ·ͬͯ·ͨ͠

  18. ͋ΕଳҬ͸ʜ w ୆ߏ੒(CQTY w ୆ߏ੒.CQTY(CQT w ଳҬ͚ͩΈͨΒ୆ߏ੒ͷ΄͏͕༗རͳ͸ͣͰ͸

  19. ͦΜͳ͜ͱ͸ͳ͔ͬͨ

  20. ୆ߏ੒ BMMJOPOF DYMBSHF (CQT ϕϯνϚʔΧʔͱͷ௨৴ʹ(CQT࢖͑Δͧ

  21. ୆ߏ੒ JTV DMBSHF .CQT JTV DMBSHF .CQT JTV DMBSHF .CQT

    JTV DMBSHF .CQT ͱͷ௨৴.CQT͚ͩͲɺ ಺෦௨৴΋͔ͦ͜Β೧ग़͢Δඞཁ͕͋Δʜ
  22. ߹ܭ(CQT͚ͩͲ ಺෦௨৴ͰଳҬ͕ ରফ໓ ͍ͯ͠Δ

  23. τϥϑΟοΫ ਪఆ JTV DMBSHF .CQT JTV DMBSHF .CQT JTV DMBSHF

    .CQT JTV DMBSHF .CQT ˞3FEJT͸τϥϑΟοΫগͳ͍ͷͰলུ .CQT .CQT .CQT .CQT CQT .CQT .CQT .CQT .CQT .CQT .CQT .CQT
  24. JTVͷ.CQT͸ ͘Β͍಺෦௨৴ʹ ͔ͭΘΕͯͦ͏

  25. ͦͷଞѱ͕͖͋ͨ͜͠ͱ w JTV͕OHJOYͰH[JQͯͨ͠ͷͰ಺෦௨৴͸ແѹॖͩ
 ˠQSPYZ@TFU@IFBEFSͰH[JQΛ"DDFQU͢ΔΑ͏ʹ ͯ͠TJOBUSBͰH[JQͯ͠ฦ͢ w 3VCZͷNZTRMͷQSFQBSF͸αʔόʔαΠυ QSFQBSFͳͷͰɺԟ෮ͩ
 ˠNZTRMDTCJOEͰYRVFSZͯ͠ҰൃΫΤϦʹ͢Δ w

    ͍ͣΕ΋΄ͱΜͲޮՌͳ͠ϨεϙϯελΠϜͱ͔͸޲ ্͔ͨ͠΋͚ͩͲɺଳҬ͕ຒ·Βͳ͍Α͏ʹ͢Δൈຊత ରࡦʹ͸ͳ͍ͬͯͳ͔ͬͨ
  26. ·ͱΊ w खͬऔΓૣ͘ੑೳΛग़͚ͨ͠Ε͹εέʔϧΞ΢τΑΓεέʔ ϧΞοϓͰ7.ͷੑೳΛഒͷഒͷഒʹͨ͠΄͏͕Α͍ w τϥϑΟοΫ্͕͕ͬͯ͘Δͱ୆਺͕ଟ͍ͱ͖ͷ಺෦௨৴͸ ݁ߏόΧʹͳΒͳ͍ϨϕϧʹͳΓ·͢ɻ w ΋ͪΖΜɺ৑௕ੑ͕ඞཁͳͱ͖͸ผͰ͢ w

    Ͱ΋ίΞ୆ɺίΞ୆ɺίΞ୆ͷͲΕΛબ Ϳ͔ͱฉ͔ΕͨΒɺগͳ͘ͱ΋ίΞΛͨ͘͞Μฒ΂Δͷ બͿͷ͕ϕετͰ͸ͳ͍ͱ͍͏͜ͱΛ஌͓ͬͯ͜͏ʜ
 ৑௕ੑΛߟྀ͢Δ৔໘ʹ͓͍ͯ͸ɺίΞ୆ͩͱ୆͓ͪͨΒ࢒Γ୆ͰؤுΔ͜ͱʹͳΔͷͰɺίΞ୆͕ όϥϯεΑ͍ͱΕ΋Μ͸ߟ͑·͢ɻ୆਺͕ഒͳΒͲΕ͔͕ނো͢Δ֬཰΋ഒʹͳΔͷͰίΞ͸ආ͚͍ͨͰ͢Ͷ