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
DynamoDBとBloomFilterのムフフなカンケイ
Search
co-sche
November 11, 2016
Technology
0
1.5k
DynamoDBとBloomFilterのムフフなカンケイ
メディアのための広告配信システム、A.J.A.でのDynamoDBとBloomFilterの活用事例
co-sche
November 11, 2016
Tweet
Share
More Decks by co-sche
See All by co-sche
PackerとAnsibleでコンパクトに始めるInfrastructure as Code
co_sche
0
260
Other Decks in Technology
See All in Technology
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.1k
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
920
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
180
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.5k
Red Hat OpenStack Services on OpenShift
tamemiya
0
100
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
140
What happened to RubyGems and what can we learn?
mikemcquaid
0
290
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/jat08
thara0402
0
180
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
640
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
230
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
64
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Mind Mapping
helmedeiros
PRO
0
81
Un-Boring Meetings
codingconduct
0
200
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
How to make the Groovebox
asonas
2
1.9k
The Invisible Side of Design
smashingmag
302
51k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
110
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
190
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.9k
Transcript
DynamoDBͱBloomFilterͷ ϜϑϑͳΧϯέΠ
ࣗݾհ ฏদ ߛయ • A.J.A. ϓϩάϥϚʔɾΞʔΩςΫτ • നนͷ֗ ෑग़ •
Ϊλʔ͍ͬͺ͍࣋ͬͯΔ • ͓ڕ৯ΒΕͳ͍ • https://github.com/co-sche
None
લճɺBloomFilterͷಈ࡞ݪ ཧͳͲʹ͍ͭͯΛ͠·ͨ͠ɻ IUUQXXXTMJEFTIBSFOFUDPTDIFTT
A.J.A.ͰͲ͏ΘΕ͍ͯΔͷ͔Λ Γ͍ͨͱ͍͏্͕͕ͬͨͷͰɺࠓ ճͦͷลΛத৺ʹ͓͠͠·͢ɻ
͘͡ • DynamoDB • DynamoDBͷ׆༻ࣄྫ • DynamoDBͷ • BloomFilter •
DynamoDB with BloomFilter
DynamoDB
DynamoDB • AWSͷϑϧϚωʔδυͳ NoSQL DB • ΩϟύγςΟϢχοτͱ͍͏୯ҐͰRead/WriteΛݟ ੵͬͯઃఆ͢Δ͚ͩͰɺμϯλΠϜແ͠Ͱεέʔ ϧ •
ઃఆͨ͠ΩϟύҎ্ͷΞΫηεʹجຊ͑ΒΕͳ͍ • ઃఆͨ͠Ωϟύʹରͯ͠՝ۚ
DynamoDB׆༻ࣄྫ A.J.A.ͷ߹
ϒϥβΫοΩʔͷସͱͯ͠ಋೖ
֨ೲͯ͠Δใ • ͲΜͳ༰ͷࠂͳͷ͔ • ͲΜͳॴʹग़ͯΔͷ͔ • ͲΜͳબग़ͷ͞ΕํΛͨ͠ͷ͔
WriteͷλΠϛϯά • ϝσΟΞαΠτͰͷࠂΫϦοΫ࣌
ReadͷλΠϛϯά • ࠂओαΠτʹຒΊࠐ·ΕͨϏʔίϯλά ϑοΫ • PVCVͷϩάʹు͍ͯɺ͔࣍Βͷࠂબ ग़ʹ׆͔͢
͜ͷέʔεͰͷ • Read͠Α͏ͱ߲͕ͨ͠ݟ͔ͭͬͯݟ͔ͭ Βͳͯ͘ΩϟύγςΟϢχοτফඅ͞Ε Δ
A.J.A. Ձ֨.c̋m͞Μ͔ΒϏʔίϯ ड৴͔ͨ͠Β͜ͷID͕ͯ͞͠ɻ
DynamoDB ͕͚ͨ͞͠Ͳɺ ͦΜͳΜ͋ΒΜͰɻ
A.J.A. ͞Α͏͔ɻ ͢·Μͳɻ
DynamoDB ͓͏ɻ ͋ɺۚΖͯ͘Ͱɻ
͜ͷέʔεͰͷ • ReadͷλΠϛϯάࠂओαΠτʹຒΊࠐ·ΕͨϏʔίϯ ϑοΫ • Ձ֨.c̋mͷৄࡉϖʔδʹຒΊࠐ·ΕͨΒʁ • YAH̋̋!γϣοϐϯάͷߪೖྃϖʔδʹషΒΕͨΒʁ • ͜ΕΒͷϏʔίϯͷ΄ͱΜͲɺA.J.A.ࠂΛclickͯ͠ભҠ͠
ͨΘ͚Ͱͳ͍ແؔͳϏʔίϯ • ͭ·ΓɺReadͰݟ͔ͭΒͳ͍͜ͱ͕΄ͱΜͲ
͜ͷέʔεͰͷ • ΄ͱΜͲ͕ϛεώοτ͢ΔେྔͷRead • ↑ͷ෩͕ಥવਧ͖ߥΕ࢝ΊΔڪා • ͜ΕΒʹରͯ͠ɺΩϟύγςΟΛେྔʹݟੵ Βͳ͚ΕͳΒͳ͍ෆໟײ
A.J.A. σʔλͷ༗ແ͚ͩͰ ࣄલʹ͔Ε͍͍ͷʹ…
BloomFilter
BloomFilter • ཁૉΛ༩͑ɺޙʹ͍߹ΘͤΔͱʮΈͨ͜ͱ ͋ΔΘʔʯ͘Β͍ʹ͍֮͑ͯͯ͘ΕΔσʔλ ߏ • ཁૉΛ༩͑ͯͳ͍ͷʹ͔ͬͨͿΔ͜ͱ͕͋ Δ • ༩͑ͨͷʹ֮͑ͯͳ͍ͱ͍͏͜ͱɺઈରͳ
͍
ཁૉΛ༩͑ͯͳ͍ͷʹͬͨ ͔ͿΔ͜ͱ͕͋Δ ِཅੑ͕͋Δ
༩͑ͨͷʹ֮͑ͯͳ͍ͱ͍͏ ͜ͱɺઈରͳ͍ ِӄੑͳ͍
BloomFilter • ِཅੑΛڐ༰͢Δ͜ͱͰɺੌ·͘͡লεϖʔε Ͱཁૉͷ༗ແΛهԱ͢Δ͜ͱ͕Ͱ͖Δ • Ұཁૉ͋ͨΓbits
DynamoDB with BloomFilter • DynamoDBʹΫΤϦ͢ΔલʹBloomFilterʹฉ ͘͜ͱͰɺϋζϨReadΛ΄΅Χοτ • ِཅੑൃੜ͢Δ͕ɺͦΕʹΑͬͯى͜Δͷ ͨͩͷϋζϨReadͳͷͰͳ͠
DynamoDB with BloomFilter • A.J.A.ͷ߹ • PVϏʔίϯ 1000/s • DynamoDBͷΫΤϦ
50/s • 1 / 20 • ແؔͳPVϏʔίϯ͕ٸಅͯ͠ͳ͠
·ͱΊ • A.J.AͰɺBloomFilterΛDynamoDBͷલஈ ͷωΨςΟϒΩϟογϡͱͯ͠ར༻͍ͯ͠·͢ɻ
͓·͚ • ͜ͷྨͷਖ਼֬ੑΛͪΐͼͬͱ٘ਜ਼ʹͯ͠ɺ࣌ؒ తɾۭؒతίετΛେ෯ʹઅ͢Δσʔλߏ ɺཚσʔλߏͱݺΕ͍ͯ·͢ɻ • BloomFilterҎ֎ʹɺHyperLogLogMinHash ͱ͍͏ͷ͋Γ·͢ɻ • ͦΕͧΕ໘ന͕͋͞ΔͷͰɺௐͯΈͯԼ͍͞
Ͷʂ
Have a nice ཚʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ