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
Introduction to Bill One Development Engineer
sansan33
PRO
0
360
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.4k
プロポーザルに込める段取り八分
shoheimitani
1
230
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
180
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
460
Context Engineeringの取り組み
nutslove
0
340
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
350
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
190
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
5
5.3k
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
170
AI駆動PjMの理想像 と現在地 -実践例を添えて-
masahiro_okamura
1
110
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
How GitHub (no longer) Works
holman
316
140k
Marketing to machines
jonoalderson
1
4.6k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
WENDY [Excerpt]
tessaabrams
9
36k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
710
Designing Experiences People Love
moore
144
24k
Faster Mobile Websites
deanohume
310
31k
New Earth Scene 8
popppiees
1
1.5k
Docker and Python
trallard
47
3.7k
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 ཚʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ