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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
【AWS】CloudTrail LakeとCloudWatch Logs Insightsの使い分け方針
tsurunosd
0
120
Cursor Subagentsはいいぞ
yug1224
2
110
やさしいとこから始めるGitHubリポジトリのセキュリティ
tsubakimoto_s
3
1.9k
RGBに陥らないために -プロダクトの価値を届けるまで-
righttouch
PRO
0
120
データマネジメント戦略Night - 4社のリアルを語る会
ktatsuya
1
430
MCPで決済に楽にする
mu7889yoon
0
150
GitHub Advanced Security × Defender for Cloudで開発とSecOpsのサイロを超える: コードとクラウドをつなぐ、開発プラットフォームのセキュリティ
yuriemori
1
110
パワポ作るマンをMCP Apps化してみた
iwamot
PRO
0
170
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
390
Kiro Meetup #7 Kiro アップデート (2025/12/15〜2026/3/20)
katzueno
2
260
韓非子に学ぶAI活用術
tomfook
3
1.1k
Change Calendarで今はOK?を仕組みにする
tommy0124
1
130
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
490
The Pragmatic Product Professional
lauravandoore
37
7.2k
The browser strikes back
jonoalderson
0
850
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
320
For a Future-Friendly Web
brad_frost
183
10k
Google's AI Overviews - The New Search
badams
0
950
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Paper Plane (Part 1)
katiecoart
PRO
0
6k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
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 ཚʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ