1 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
2 Outline Related work Huffman spectral bloom filter Blooming tree Minimal Perfect Hash Function Using naïve blooming tree Using 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 CBF HSBF δ”1s”, and a trailing 0
4 B0 B1 B2 B items 2 items 1 item item Bit string HASH FUNCTION 3 bits 1 bit index Related work – blooming tree
5 Outline Related work Huffman spectral bloom filter Blooming tree Minimal Perfect Hash Function Using naïve blooming tree Using optimized blooming tree and HSBF Experimental result
6 MPHF – using NBT B0 B1 B2 B item 2 items 1 item item Bit string HASH FUNCTION 3 bits 1 bit index Popcount is final hash number
7 MPHF – using NBT B0 B1 B item 2 items 1 item Step1: Step2: final hash number = popcount item1 item2 item4 item3 hash item1 item2 item4 item3 popcount item1item2item3item4 B31111
8 MPHF – using OBT and HSBT item 2 items 1 item 0000 B0 B1 B item 2 items 1 item NBTOBT
9 MPHF – using OBT and HSBT item 2 items 1 item items 1 item OBTOBT with HSBF
10 MPHF – using OBT and HSBT Step1: Step2: final hash number = zero blocks item1 item2 item4 item3 Zero blocks item1 item2 item4 item3 hash … … item 2 items 1 item
11 MPHF – using OBT and HSBT Step1: Step2: final hash number = zero blocks item1 item2 item4 item3 Zero blocks item1 item2 item4 item3 hash … … item 2 items 1 item Start addr.Prev. elementsPrev. “10”s Y100 Y222 Lookup table : Y1 Y2
12 MPHF – using OBT and HSBT Step1: Step2: final hash number = zero blocks item1 item2 item4 item3 Zero blocks item1 item2 item4 item3 hash … … item 2 items 1 item Start addr.Prev. elementsPrev. “10”s Y100 Y222 Lookup table : Y1 Y2 0
13 Outline Related work Huffman spectral bloom filter Blooming tree Minimal Perfect Hash Function Using naïve blooming tree Using 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
U U Bloom Filter 17 U U ite m1 ite m2 ite m 3 If present item in U as xxx Item1 can be 001 Item2 can be 010 Item3 can be 110 S S ite m1 ite m 3 There can be at most three items each present with three bits in set S. S can be present as
Bloom Filter 18 U U ite m 1 ite m 2 ite m 3 Assume hash function H(x) : H(item 1 ) = 0 H(item 2 ) = 1 H(item 3 ) = 2 U can be present in three bits, No.H(item i ) bit present i S can be present as 101 U U S S ite m1 ite m 3