180 likes | 390 Vues
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
E N D
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 • Minimal Perfect Hash Function • Using naïve blooming tree • Using optimized blooming tree and HSBF • Experimental result
CBF 0 0 0 0 1 0 0 1 0 0 3 0 0 δ”1s”, and a trailing 0 1110 HSBF 10 10 Related work – Huffman Spectral Bloom Filter • Using Huffman code encode Counting Bloom Filter (CBF) • Encode value δ with (δ+1) bits
item HASH FUNCTION 2 items 3 items 1 item Bit string 0 1 1 0 1 0 0 1 B0 3 bits 1 bit 1 bit 0 1 0 0 1 0 0 1 1 0 1 0 B1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 B2 1 2 1 1 1 1 B3 Related work – blooming tree index index index
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
item HASH FUNCTION 2 items 1 item 1 item Bit string 0 1 1 0 0 0 0 1 B0 3 bits 1 bit 1 bit index 0 1 0 B1 1 0 0 1 1 0 index 0 0 0 1 index 1 0 1 0 1 1 B2 Popcount is final hash number B3 1 1 1 1 MPHF – using NBT
Step1: Step2: final hash number = popcount 2 items 1 item 1 item item1 item1 00 001 00 item2 item2 0 1 1 0 0 0 0 1 010 10 01 hash popcount B0 item3 item3 111 00 10 0 1 0 item4 item4 111 01 11 B1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 B2 B3 1 1 1 1 item1 item2 item3 item4 MPHF – using NBT
2 items 1 item 1 item 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 B0 0 1 0 B1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 B2 MPHF – using OBT and HSBT 2 items 1 item 1 item 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 NBT OBT
110 0 0 0 0 2 items 2 items 1 item 1 item 1 item 1 item 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 10 10 MPHF – using OBT and HSBT OBT OBT with HSBF
110 0 0 0 0 2 items 1 item 1 item 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 10 10 MPHF – using OBT and HSBT Step1: Step2: final hash number = zero blocks item1 001 000 item2 010 100 hash item3 111 000 item4 111 010 … item1 00 item2 01 Zero blocks item3 10 item4 11 …
110 0 0 0 0 2 items 1 item 1 item 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 Lookup table : Start addr. Prev. elements Prev. “10”s Y1 Y2 2 0 2 0 10 10 MPHF – using OBT and HSBT Step1: Step2: final hash number = zero blocks Y1 Y2 item1 001 000 item2 010 100 hash item3 111 000 item4 111 010 … item1 00 item2 01 Zero blocks item3 10 item4 11 …
110 0 0 0 0 2 items 1 item 1 item 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 Lookup table : Start addr. Prev. elements Prev. “10”s Y1 Y2 2 0 0 2 10 10 0 MPHF – using OBT and HSBT Step1: Step2: final hash number = zero blocks Y1 Y2 item1 001 000 item2 010 100 hash item3 111 000 item4 111 010 … item1 00 item2 01 Zero blocks item3 10 item4 11 …
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
Experimental result • Our • Intel 2.4Ghz Pentium 4 Core 2 Duo processor, 4GB RAM, Linux OS 2.6
Experimental result • BPZ • 3.2 Ghz XEON, 1G RAM, Linux 2.6 • BL • Pentium 4
Bloom Filter U U S item2 item1 item3 item1 item3 There can be at most three items each present with three bits in set S. S can be present as 001 110 000 If present item in U as xxx Item1 can be 001 Item2 can be 010 Item3 can be 110
Bloom Filter U U S item2 item1 item1 item3 item3 S can be present as 101 Assume hash function H(x) : H(item1) = 0 H(item2) = 1 H(item3) = 2 Ucan be present in three bits, No.H(itemi) bit present i