Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How IBLT Works
Search
cipepser
March 11, 2018
Technology
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How IBLT Works
cipepser
March 11, 2018
More Decks by cipepser
See All by cipepser
long-running-tasks
cipepser
3
640
layerx-fde-practices
cipepser
7
3.5k
NIKKEI Tech Talk#38
cipepser
0
1.3k
LayerXにおけるFDEについて
cipepser
4
3.9k
20250725-bet-ai-day
cipepser
4
700
Criterion-rs
cipepser
0
190
Practical Anonify
cipepser
2
930
procedural-macros
cipepser
0
220
Move for Libra written in Rust
cipepser
2
3.4k
Other Decks in Technology
See All in Technology
HHKBエバンジェリストになる方法
941
0
100
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
1.8k
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
3
550
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
4
1.7k
omasushiというライブラリを作った
polidog
PRO
0
230
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
350
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
2.1k
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
3
1.4k
おい、エージェントを使って終わらせろ
nwiizo
0
220
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
230
2026_devsumi_ozono.pdf
o3
3
490
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
1
1.3k
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Optimizing for Happiness
mojombo
378
71k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Typedesign – Prime Four
hannesfritz
42
3.2k
Believing is Seeing
oripsolob
1
220
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
So, you think you're a good person
axbom
PRO
2
2.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Leo the Paperboy
mayatellez
10
2.3k
Transcript
How IBLT works @cipepser
Structure of IBLT 1 2 3 ... ... ... m
m cells each cell have 3 fields: count keySum valueSum
Supported method ・Insert(key, value) ・Get(key) ・Delete(key, value) ・ListEntries()
Insert for each hash function h i [key], i =
1, …, k (like standard BloomFilter) T: IBLT T[h i [key]].count++ T[h i [key]].sumKey += key T[h i [key]].sumValue += value
Insert ex) m = 7 cells, k = 3 hash
functions, h i (x) = (10 * i + x) mod m (simply) Insert(key=5, value=10) h 1 (key=5) = 1 0 c: 1 ks: 5 vs: 10 1 c: 1 ks: 5 vs: 10 2 3 4 c: 1 ks: 5 vs: 10 5 6 count: c keySum: ks valueSum: vs h 2 (key=5) = 4 h 3 (key=5) = 0
Insert ex) m = 7 cells, k = 3 hash
functions, h i (x) = (10 * i + x) mod m (simply) Insert(key=2, value=30) h 1 (key=2) = 5 0 c: 1 ks: 5 vs: 10 1 c: 2 ks: 7 vs: 40 2 3 4 c: 2 ks: 7 vs: 40 5 c: 1 ks: 2 vs: 30 6 count: c keySum: ks valueSum: vs h 2 (key=2) = 1 h 3 (key=2) = 4
Get T[h i [key]].count == 0? YES NO return false
T[h i [key]].count == 1? return sumValue for i = 1, …, k end for T[h i [key]].sumKey == key? YES YES return false NO NO
Get ex) m = 7 cells, k = 3 hash
functions, h i (x) = (10 * i + x) mod m (simply) (key, value) = (5, 10), (2, 30) have been inserted Get(key=2) →return 30 0 c:1 ks: 5 vs: 10 1 c:2 ks: 7 vs: 40 2 3 4 c:2 ks: 7 vs: 40 5 c:1 ks: 2 vs: 30 6 h 1 (key=2) = 5 T[5].count = 1 T[5].keySum = 2 T[5].valueSum = 30
Get ex) m = 7 cells, k = 3 hash
functions, h i (x) = (10 * i + x) mod m (simply) (key, value) = (5, 10), (2, 30) have been inserted Get(key=3) →return false 0 c:1 ks: 5 vs: 10 1 c:2 ks: 7 vs: 40 2 3 4 c:2 ks: 7 vs: 40 5 c:1 ks: 2 vs: 30 6 c:0 ks: 0 vs: 0 h 1 (key=3) = 6 T[6].count = 0 != 1
Get ex) m = 7 cells, k = 3 hash
functions, h i (x) = (10 * i + x) mod m (simply) (key, value) = (5, 10), (2, 30) have been inserted Get(key=9) →return false 0 c:1 ks: 5 vs: 10 1 c:2 ks: 7 vs: 40 2 3 4 c:2 ks: 7 vs: 40 5 c:1 ks: 2 vs: 30 6 h 1 (key=9) = 5 T[5].keySum = 2 h 2 (key=9) = 1 T[1].keySum = 7 h 3 (key=9) = 4 T[4].keySum = 7
Get ex) m = 7 cells, k = 3 hash
functions, h i (x) = (10 * i + x) mod m (simply) (key, value) = (5, 10), (2, 30), (3, 20) have been inserted Get(key=2) →return false (false-negative) 0 c:1 ks: 5 vs: 10 1 c:2 ks: 7 vs: 40 2 c:1 ks: 3 vs: 20 3 4 c:2 ks: 7 vs: 40 5 c:2 ks: 5 vs: 50 6 c:1 ks: 3 vs: 20 h 1 (key=2) = 5 T[5].keySum = 5 != 2 h 2 (key=2) = 1 T[1].keySum = 7 != 2 h 3 (key=2) = 4 T[4].keySum = 7 != 2
Delete for each hash function h i [key], i =
1, …, k T: IBLT T[h i [key]].count-- T[h i [key]].sumKey -= key T[h i [key]].sumValue -= value
Delete ex) m = 7 cells, k = 3 hash
functions, h i (x) = (10 * i + x) mod m (simply) (key, value) = (5, 10), (2, 30) have been inserted 0 c:1 ks: 5 vs: 10 1 c:2 ks: 7 vs: 40 2 3 4 c:2 ks: 7 vs: 40 5 c:1 ks: 2 vs: 30 6 Delete(key=2, value=30) h 1 (key=2) = 5 0 c: 1 ks: 5 vs: 10 1 c: 1 ks: 5 vs: 10 2 3 4 c: 1 ks: 5 vs: 10 5 c: 0 ks: 0 vs: 0 6 h 2 (key=2) = 1 h 3 (key=2) = 4
ListEntries T[i].count == 1? YES NO for i = 1,
…, m end for push( key = T[i].sumKey, value = T[i].sumValue ) Delete(key, value) START
ListEntries ex) m = 7 cells, k = 3 hash
functions, h i (x) = (10 * i + x) mod m (simply) (key, value) = (5, 10), (2, 30) have been inserted 0 c:1 ks: 5 vs: 10 1 c:2 ks: 7 vs: 40 2 3 4 c:2 ks: 7 vs: 40 5 c:1 ks: 2 vs: 30 6 T[0].count == 1 push(key=5,value=10) Delete(key=5,value=10) 0 c:0 ks: 0 vs: 0 1 c:1 ks: 2 vs: 30 2 3 4 c:1 ks: 2 vs: 30 5 c:1 ks: 2 vs: 30 6 T[1].count == 1 push(key=2,value=30) Delete(key=2,value=30) 0 c:0 ks: 0 vs: 0 1 c:0 ks: 0 vs: 0 2 3 4 c:0 ks: 0 vs: 0 5 c:0 ks: 0 vs: 0 6 pushed key-value pairs: {(5, 10), (2, 30)}