Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Aerospikeで大規模データを扱う
Search
miuranobuaki
May 09, 2016
Technology
1
1.9k
Aerospikeで大規模データを扱う
Aerospike Meetup #3での発表資料です。
#4で発表した際に若干追加したので、
資料を更新しました
miuranobuaki
May 09, 2016
Tweet
Share
More Decks by miuranobuaki
See All by miuranobuaki
組織の変化に必要なことは 投資ではないだろうか? / What is needed to change the organization Isn't it an investment?
miuranobuki
2
3.3k
Scrumのロールだけでは足りなかったピースとしてのマネージャー / The roll of Scrum wasn't enough. Manager as a piece
miuranobuki
14
4.4k
普通の開発メンバーが リーダーになってやったこと
miuranobuki
21
14k
Other Decks in Technology
See All in Technology
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
200
Wantedly での Datadog 活用事例
bgpat
1
500
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
350
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
170
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
210
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
160
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
260
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
250
なぜCodeceptJSを選んだか
goataka
0
160
ハイテク休憩
sat
PRO
2
160
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
270
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Building an army of robots
kneath
302
44k
Designing Experiences People Love
moore
138
23k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
Writing Fast Ruby
sferik
628
61k
Transcript
Aerospike Ͱ େنσʔλΛѻ͏ ࡾӜ৳໌ גࣜձࣾαΠόʔΤʔδΣϯτ / גࣜձࣾRightSegment 2016/08/02 - Aerospike
meetup
ࣗݾհ ࡾӜ৳໌ (@miuranobuak) גࣜձࣾαΠόʔΤʔδΣϯτ ΞυςΫελδΦ גࣜձࣾRightSegment ʹͯ PrivateDMP Λ։ൃ ΤϯδχΞ
Podcast (http:/ /lean-agile.fm/)
ࠓ͓͢Δ͜ͱ ɾAerospike ΛͲ͏͍ͬͯΔ͔ ɾղܾ͖ͯͨ͠ ɾ࠷ۙࢼͯ͠Έͨ͜ͱ ɾࠓޙͬͯΈΑ͏ͱ͍ͯ͠Δ͜ͱ
AerospikeΛͲ͏͍ͬͯΔ͔
RightSegmentͰͷ͍ํ ϦΞϧλΠϜϢʔβఆ ͔݅ΒϢʔβΛநग़
RightSegment ߦಈใձһใɾࠂޮՌσʔλͳͲΛੵ ͠ɺDSPΞυωοτϫʔΫͱ࿈ಈͯ͠Ϣʔβͷଐ ੑࠂ৮ΛϕʔεʹߴͳੳʗϚʔέςΟϯ άΛߦ͏͜ͱ͕ՄೳͳϓϥΠϕʔτDMP ແཧཧγϯϓϧʹݴ͏ͱ • ϢʔβʹదͳΞϓϩʔνऔΕΔΑ͏ʹఆ • దͳΓޱͰࠂ৴
ϦΞϧλΠϜϢʔβఆ
ϦΞϧλΠϜϢʔβఆ • ࣄલʹઃఆͨ݅͠ʹ͋ͯ·Δ͔ఆ • 35,000 ʙ 40,000 TPS
શମͷΠϝʔδ
͔݅ΒϢʔβΛநग़
͔݅ΒϢʔβΛநग़ • ݅ʹ߹க͢ΔશϢʔβͷϦετΛ࡞ • 1ϢʔβϦετ ඦ ʙ ઍສ݅ • நग़ͨ͠ϢʔβϦετΛ࿈ܞઌʹૹ৴
• Secondary IndexΛ༻
શମΠϝʔδ
ղܾ͖ͯͨ͠
ղܾ͖ͯͨ͠ • ਪSSDͰͳ͍ͱύϑΥʔϚϯε͕ग़ͳ͍(স) • ίϨΫγϣϯͷIndex͕͑ͳ͍(࣌) • ΫϥΠΞϯτͷઃఆεϖοΫ • αʔόͷઃఆ •
etc... AerospikeͷαϙʔτͱҰॹʹղܾ શྗͰαϙʔτͯ͘͠ΕΔ
ղܾͨ͠ΛϐοΫΞοϓ
ղܾͨ͠ ͦͷ1 λΠϜΞτසൃ • 1ϢʔβͰઍͷ݅ʹͯ·Δ߹͋Δ • Secondary Index ͕ ݪҼ
• େྔRead/Write ͩͱ͑ΒΕͳ͍Β͍͠(࣌) ղܾํ๏ • Secondary Index༗ແͷ ΫϥελΛ࡞Δ • ͖ͬͱࠓͳΒେৎʁ
ղܾͨ͠ ͦͷ2 ΫϥελʹউखʹΈࠐ·ΕΔ • AerospikeͷΫϥελ͍͢͝ศར • ࡞ۀϛε͋Γɺผͷ2ͭͷΫϥελ͕ͬͭ͘͘ • ϊʔυΛΫϥελؒͰҠಈͤ͞Δͱ͖ʹൃੜ ղܾํ๏
• શڥͰNameSpaceΛΘ͚Δ
ղܾͨ͠ ͦͷ3 σʔλআ͕͍͔ͭͳ͍ • আ͕ଟ͍ͱ࣮ࡍʹফ͑Δ·Ͱ͕͔͔࣌ؒΔ • ૣ͘͢Δ͜ͱͰ͖Δ͕ύϑΥʔϚϯε͕མͪΔ • େྔʹআ͢ΔͳΒؾΛ͚ͭͨํ͕ྑͦ͞͏ ղܾํ๏
• σʔλͷੜଘظؒΛͪΌΜͱઃఆ͢Δ • ύʔςΟγϣϯαΠζม͑ͨΒྑ͘ͳͬͨΓ͠·
࠷ۙͬͯΈͨ͜ͱ
࠷৽όʔδϣϯΛࢼͯ͠Έͨ ɾ3.5.15 → 3.9.0.1 όʔδϣϯΞοϓ ɾόʔδϣϯΞοϓҎ֎Կ͍ͯ͠ͳ͍ ͜ΕͰͲΕ͚ͩมΘΔͷ͔
Migration NodeՃΓ͠Λͯ͠IN/OUT͕0ʹͳΔ·Ͱ ɾMigrationThread=1 20h -> 5h ɾMigrationThread=50 4h -> 50min
5ഒͷεϐʔυ!!
ॻ͖ࠐΈੑೳ • Secondary Index Λ༻ • UDFΛར༻ͨ͠ॻ͖ࠐΈ 3.5.15 -> 22,000TPS
3.9.0.1 -> 45,000TPSʂʂ ݶք·ͰݕূͰ͖ͳ͔ͬͨ ͚Ͳɺ·ͩ·͍͚ͩͦ͏
ࠓޙͬͯΈΑ͏ͱ͍ͯ͠Δ͜ͱ
Migration • σʔλྔ͕ଟ͍ͱ Migration ͷෛՙ͕ߴ͍ • σʔλྔ͕ଟ͍ͱόΧʹͳΒͳ͍ • ϦΞϧλΠϜॲཧʹக໋తʹ •
NodeͷՃා͍ • NodeΛൈ͘ͷͬͱා͍
ϋʔυোͷରԠ • ͱݴͬͯϋʔυઈରʹյΕΔ ͯ͞ɺͲ͏ͨ͠ͷ͔ • λΠϜΞτ͕େྔൃੜ͢Δঢ়گආ͚͍ͨ • ͏ҰݸΫϥελͭ͘Εྑ͍Μ͡Ό? • XDRͰ͖Δ͡ΌΜʂ
ͱ͍͏Θ͚Ͱ • ݱࡏXDRڥΛߏஙɺݕূத • ݩͷΫϥελΛ2ͭʹ͚ͯ࡞ • ग़དྷΔݶΓmigrationΛආ͚Δ • όʔδϣϯΞοϓʹॊೈʹରԠͰ͖ΔͷͰʁ
৭ʑͱΛ͖͋͛ͯ·͕ͨ͠
ݱঢ়ͷΈ Aerospike Ͱͳ͍ͱ࣮ݱͰ͖͍ͯͳ͍
͔ͳΓཁٻ͕ߴ͘ͳ͍ͬͯ·͢ ࣮ࡍɺ͍Ͱ͢ɻ αϙʔτੌ͍ʂ
·ͱΊ ɾ͍͚Ͳɺۜͷؙ͡Όͳ͍ ɾσʔλಛੑ Λཧղͯ͠ઃܭ͢Δ ɾmigrationൃੜ࣌ͷෛՙݕূ Λ ɾසൟʹআ͞ΕΔ ߹ݕূ͖͢
࠷ޙʹ ҰॹʹؤுΔ ؒ Λืू͍ͯ͠·͢ʂ େنσʔλ Λ ࠷৽ٕज़ Ͱ ࠷ߴͷՁ Λಧ͚Δ͜ͱʹڵຯ͕͋Δํ
ੋඇɺ͝࿈བྷ͍ͩ͘͞ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠