Aerospikeで大規模データを扱う

 Aerospikeで大規模データを扱う

Aerospike Meetup #3での発表資料です。

#4で発表した際に若干追加したので、
資料を更新しました

5bbbb20da49b1f802af50b0f17a4f31f?s=128

miuranobuaki

May 09, 2016
Tweet

Transcript

  1. Aerospike Ͱ େن໛σʔλΛѻ͏ ࡾӜ৳໌ גࣜձࣾαΠόʔΤʔδΣϯτ / גࣜձࣾRightSegment 2016/08/02 - Aerospike

    meetup
  2. ࣗݾ঺հ ࡾӜ৳໌ (@miuranobuak) גࣜձࣾαΠόʔΤʔδΣϯτ ΞυςΫελδΦ גࣜձࣾRightSegment ʹͯ PrivateDMP Λ։ൃ ΤϯδχΞ

    Podcast (http:/ /lean-agile.fm/)
  3. ࠓ೔͓࿩͢Δ͜ͱ ɾAerospike ΛͲ͏࢖͍ͬͯΔ͔ ɾղܾ͖ͯͨ͠໰୊ ɾ࠷ۙࢼͯ͠Έͨ͜ͱ ɾࠓޙ΍ͬͯΈΑ͏ͱ͍ͯ͠Δ͜ͱ

  4. AerospikeΛͲ͏࢖͍ͬͯΔ͔

  5. RightSegmentͰͷ࢖͍ํ ϦΞϧλΠϜϢʔβ൑ఆ ৚͔݅ΒϢʔβΛநग़

  6. RightSegment ߦಈ৘ใ΍ձһ৘ใɾ޿ࠂޮՌσʔλͳͲΛ஝ੵ ͠ɺDSP΍ΞυωοτϫʔΫͱ࿈ಈͯ͠Ϣʔβͷଐ ੑ΍޿ࠂ઀৮Λϕʔεʹߴ౓ͳ෼ੳʗϚʔέςΟϯ άΛߦ͏͜ͱ͕ՄೳͳϓϥΠϕʔτDMP ແཧ໼ཧγϯϓϧʹݴ͏ͱ • Ϣʔβʹద੾ͳΞϓϩʔνऔΕΔΑ͏ʹ൑ఆ • ద੾ͳ੾ΓޱͰ޿ࠂ഑৴

  7. ϦΞϧλΠϜϢʔβ൑ఆ

  8. ϦΞϧλΠϜϢʔβ൑ఆ • ࣄલʹઃఆͨ͠৚݅ʹ͋ͯ͸·Δ͔൑ఆ • ໿ 35,000 ʙ 40,000 TPS

  9. શମͷΠϝʔδ

  10. ৚͔݅ΒϢʔβΛநग़

  11. ৚͔݅ΒϢʔβΛநग़ • ৚݅ʹ߹க͢ΔશϢʔβͷϦετΛ࡞੒ • 1ϢʔβϦετ͸ ਺ඦ ʙ ਺ઍສ݅ • நग़ͨ͠ϢʔβϦετΛ࿈ܞઌʹૹ৴

    • Secondary IndexΛ࢖༻
  12. શମΠϝʔδ

  13. ղܾ͖ͯͨ͠໰୊

  14. ղܾ͖ͯͨ͠໰୊ • ਪ঑SSDͰͳ͍ͱύϑΥʔϚϯε͕ग़ͳ͍(স) • ίϨΫγϣϯͷIndex͕࢖͑ͳ͍(౰࣌) • ΫϥΠΞϯτͷઃఆ΍εϖοΫ • αʔόͷઃఆ •

    etc... AerospikeͷαϙʔτͱҰॹʹղܾ શྗͰαϙʔτͯ͘͠ΕΔ
  15. ղܾͨ͠໰୊ΛϐοΫΞοϓ

  16. ղܾͨ͠໰୊ ͦͷ1 λΠϜΞ΢τසൃ • 1ϢʔβͰ਺ઍͷ৚݅ʹ౰ͯ͸·Δ৔߹΋͋Δ • Secondary Index ͕ ݪҼ

    • େྔRead/Write ͩͱ଱͑ΒΕͳ͍Β͍͠(౰࣌) ղܾํ๏ • Secondary Index༗ແͷ ΫϥελΛ࡞Δ • ͖ͬͱࠓͳΒେৎ෉ʁ
  17. ղܾͨ͠໰୊ ͦͷ2 Ϋϥελʹউखʹ૊Έࠐ·ΕΔ • AerospikeͷΫϥελ͍͢͝ศར • ࡞ۀϛε΋͋Γɺผͷ2ͭͷΫϥελ͕ͬͭ͘͘ • ϊʔυΛΫϥελؒͰҠಈͤ͞Δͱ͖ʹൃੜ ղܾํ๏

    • શ؀ڥͰNameSpaceΛΘ͚Δ
  18. ղܾͨ͠໰୊ ͦͷ3 σʔλ࡟আ͕௥͍͔ͭͳ͍ • ࡟আ͕ଟ͍ͱ࣮ࡍʹফ͑Δ·Ͱ͕͔͔࣌ؒΔ • ૣ͘͢Δ͜ͱ΋Ͱ͖Δ͕ύϑΥʔϚϯε͕མͪΔ • େྔʹ࡟আ͢ΔͳΒؾΛ͚ͭͨํ͕ྑͦ͞͏ ղܾํ๏

    • σʔλͷੜଘظؒΛͪΌΜͱઃఆ͢Δ • ύʔςΟγϣϯαΠζม͑ͨΒྑ͘ͳͬͨΓ͠·
  19. ࠷ۙ΍ͬͯΈͨ͜ͱ

  20. ࠷৽όʔδϣϯΛࢼͯ͠Έͨ ɾ3.5.15 → 3.9.0.1 ΁όʔδϣϯΞοϓ ɾόʔδϣϯΞοϓҎ֎Կ΋͍ͯ͠ͳ͍ ͜ΕͰͲΕ͚ͩมΘΔͷ͔

  21. Migration Node௥Ճ΍੾Γ཭͠Λͯ͠IN/OUT͕0ʹͳΔ·Ͱ ɾMigrationThread=1 20h -> 5h ɾMigrationThread=50 4h -> 50min

    ໿5ഒͷεϐʔυ!!
  22. ॻ͖ࠐΈੑೳ • Secondary Index Λ࢖༻ • UDFΛར༻ͨ͠ॻ͖ࠐΈ 3.5.15 -> 22,000TPS

    3.9.0.1 -> 45,000TPSʂʂ ݶք·Ͱ͸ݕূͰ͖ͳ͔ͬͨ ͚Ͳɺ·ͩ·͍͚ͩͦ͏
  23. ࠓޙ΍ͬͯΈΑ͏ͱ͍ͯ͠Δ͜ͱ

  24. Migration໰୊ • σʔλྔ͕ଟ͍ͱ Migration ͷෛՙ͕ߴ͍ • σʔλྔ͕ଟ͍ͱόΧʹͳΒͳ͍ • ϦΞϧλΠϜॲཧʹ͸க໋తʹ •

    Nodeͷ௥Ճ΋ා͍ • NodeΛൈ͘ͷ͸΋ͬͱා͍
  25. ϋʔυো֐ͷରԠ • ͱ͸ݴͬͯ΋ϋʔυ͸ઈରʹյΕΔ ͯ͞ɺͲ͏ͨ͠΋ͷ͔ • λΠϜΞ΢τ͕େྔൃੜ͢Δঢ়گ͸ආ͚͍ͨ • ΋͏ҰݸΫϥελͭ͘Ε͹ྑ͍Μ͡Ό? • XDRͰ͖Δ͡ΌΜʂ

  26. ͱ͍͏Θ͚Ͱ • ݱࡏXDR؀ڥΛߏஙɺݕূத • ݩͷΫϥελΛ2ͭʹ෼͚ͯ࡞੒ • ग़དྷΔݶΓmigrationΛආ͚Δ • όʔδϣϯΞοϓʹ΋ॊೈʹରԠͰ͖ΔͷͰ͸ʁ

  27. ৭ʑͱ໰୊Λ͖͋͛ͯ·͕ͨ͠

  28. ݱঢ়ͷ࢓૊Έ͸ Aerospike Ͱͳ͍ͱ࣮ݱͰ͖͍ͯͳ͍

  29. ͔ͳΓཁٻ͕ߴ͘ͳ͍ͬͯ·͢ ࣮ࡍɺ௒଎͍Ͱ͢ɻ αϙʔτ΋ੌ͍ʂ

  30. ·ͱΊ ɾ௒଎͍͚Ͳɺۜͷ஄ؙ͡Όͳ͍ ɾσʔλಛੑ Λཧղͯ͠ઃܭ͢Δ ɾmigrationൃੜ࣌ͷෛՙݕূ Λ ɾසൟʹ࡟আ͞ΕΔ ৔߹΋ݕূ͢΂͖

  31. ࠷ޙʹ ҰॹʹؤுΔ ஥ؒ Λืू͍ͯ͠·͢ʂ େن໛σʔλ Λ ࠷৽ٕज़ Ͱ ࠷ߴͷՁ஋ Λಧ͚Δ͜ͱʹڵຯ͕͋Δํ

    ੋඇɺ͝࿈བྷ͍ͩ͘͞ʂ
  32. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠