blooming trees for minimal perfect hashing
DESCRIPTION
Blooming Trees for Minimal Perfect Hashing. Author: Gianni Antichi, Domenico Ficara, Stefano Giordano, Gregorio Procissi, Fabio Vitucci Publisher: GLOBECOM 2008 Presenter: Yu-Ping Chiang Date: 2009/07/21. Outline. Related work Huffman spectral bloom filter Blooming tree - PowerPoint PPT PresentationTRANSCRIPT
1
Blooming Trees for Minimal Perfect Hashing
Author: Gianni Antichi, Domenico Ficara, Stefano Giordano, Gregorio Procissi, Fabio VitucciPublisher: GLOBECOM 2008Presenter: Yu-Ping ChiangDate: 2009/07/21
2
Outline
Related workHuffman spectral bloom filterBlooming tree
Minimal Perfect Hash FunctionUsing naïve blooming treeUsing optimized blooming tree and HSBF
Experimental result
3
Related work – Huffman Spectral Bloom Filter
Using Huffman code encode Counting Bloom Filter (CBF)Encode value δ with (δ+1) bits
3 0 0 1 0 010
0111010 0 00 10 0
CBF
HSBF
δ”1s”, and a trailing 0
4
B0
B1
B2
B3
0
1 1 1 10 0 0 0
1 2 1 1 1 1
1 1 1 10 0 0 0
1 1 1 1 1 10 0
0 0 0
0 0
1
1 1 1
3 items 2 items1 itemitem
Bit string
HASH FUNCTION
3 bits 1 bit 1 bitindex
index
index
Related work – blooming tree
5
Outline
Related workHuffman spectral bloom filterBlooming tree
Minimal Perfect Hash FunctionUsing naïve blooming treeUsing optimized blooming tree and HSBF
Experimental result
6
MPHF – using NBT
B0
B1
B2
B3
0
1 1 0 10 0 0 0
1 1 1 1
1 1 10 0 0
1 0 1 1 10
0 0
0 0
1
1
1 item 2 items1 itemitem
Bit string
HASH FUNCTION
3 bits 1 bit 1 bitindex
index
index
Popcount is final hash number
7
MPHF – using NBT
B0
B1
B2
0
1 1 0 10 0 0 0
1 1 10 0 0
1 0 1 1 10
0 0
0 0
1
1
1 item 2 items1 item
Step1:
Step2: final hash number = popcount
item1
item2
item4
item3
hash
001 00
010 10
111 00
111 01
item1
item2
item4
item3
popcount
00
01
10
11item1 item2 item3 item4
B3 1 1 1 1
8
MPHF – using OBT and HSBT
0
1 1 0 10 0 0 0
0 10 00 0
0 01
1
1 item 2 items1 item
00 00
B0
B1
B2
0
1 1 0 10 0 0 0
1 1 10 0 0
1 0 1 1 10
0 0
0 0
1
1
1 item 2 items1 item
NBT OBT
9
MPHF – using OBT and HSBT
0
1 1 0 10 0 0 0
0 10 00 0
0 01
1
1 item 2 items1 item
00 00
0
0 10 00 0
0 01
1
1 item 2 items1 item
00 00
110100 010 0 0 0
OBT OBT with HSBF
10
MPHF – using OBT and HSBTStep1:
Step2: final hash number = zero blocks
item1
item2
item4
item3
Zero blocks
00
01
10
11
item1
item2
item4
item3
hash
001 000
010 100
111 000
111 010……
0
0 10 00 0
0 01
1
1 item 2 items1 item
00 00
110100 010 0 0 0
11
MPHF – using OBT and HSBTStep1:
Step2: final hash number = zero blocks
item1
item2
item4
item3
Zero blocks
00
01
10
11
item1
item2
item4
item3
hash
001 000
010 100
111 000
111 010……
0
0 10 00 0
0 01
1
1 item 2 items1 item
00 00
110100 010 0 0 0
Start addr.
Prev. elements Prev. “10”s
Y1 0 0
Y2 2 2
Lookup table :
Y1 Y2
12
MPHF – using OBT and HSBTStep1:
Step2: final hash number = zero blocks
item1
item2
item4
item3
Zero blocks
00
01
10
11
item1
item2
item4
item3
hash
001 000
010 100
111 000
111 010……
0
0 10 00 0
0 01
1
1 item 2 items1 item
00 00
110100 010 0 0 0
Start addr.
Prev. elements Prev. “10”s
Y1 0 0
Y2 2 2
Lookup table :
Y1 Y2
0
13
Outline
Related workHuffman spectral bloom filterBlooming tree
Minimal Perfect Hash FunctionUsing naïve blooming treeUsing optimized blooming tree and HSBF
Experimental result
14
Experimental result
Our Intel 2.4Ghz Pentium 4 Core 2 Duo processor,
4GB RAM, Linux OS 2.6
15
Experimental result BPZ
3.2 Ghz XEON, 1G RAM, Linux 2.6 BL
Pentium 4
16
UU
Bloom Filter
17
UU
item1item1
item2item2
item3
item3
If present item in U as xxxItem1 can be 001Item2 can be 010Item3 can be 110
SS
item1item1 ite
m3
item3
There can be at most three items each present with three bits in set S.S can be present as 001 110 000
Bloom Filter
18
UU
item1
item1
item2
item2
item3
item3
Assume hash function H(x) :H(item1) = 0H(item2) = 1H(item3) = 2U can be present in three bits, No.H(itemi) bit present i
S can be present as 101
UU
SS
item1item1 ite
m3
item3