1 Blooming Trees: Space-Efficient Structures for Data Representation Author: Domenico Ficara, Stefano Giordano, Gregorio Procissi, Fabio Vitucci Publisher:

Slides:



Advertisements
Similar presentations
Computational Geometry
Advertisements

CSE Lecture 3 – Algorithms I
A Memory-optimized Bloom Filter using An Additional Hashing Function Author: Mahmood Ahmadi, Stephan Wong Publisher: IEEE GLOBECOM 2008 Presenter: Yu-Ping.
1 Parallel Parentheses Matching Plus Some Applications.
CPSC 335 Dr. Marina Gavrilova Computer Science University of Calgary Canada.
Chapter 11 Indexing and Hashing (2) Yonsei University 2 nd Semester, 2013 Sanghyun Park.
String and Lists Dr. Benito Mendoza. 2 Outline What is a string String operations Traversing strings String slices What is a list Traversing a list List.
Searching Kruse and Ryba Ch and 9.6. Problem: Search We are given a list of records. Each record has an associated key. Give efficient algorithm.
CPSC 335 Computer Science University of Calgary Canada.
CSC1016 Coursework Clarification Derek Mortimer March 2010.
IP Address Lookup for Internet Routers Using Balanced Binary Search with Prefix Vector Author: Hyesook Lim, Hyeong-gee Kim, Changhoon Publisher: IEEE TRANSACTIONS.
BTrees & Bitmap Indexes
Lecture 5: Linear Time Sorting Shang-Hua Teng. Sorting Input: Array A[1...n], of elements in arbitrary order; array size n Output: Array A[1...n] of the.
1 Searching Very Large Routing Tables in Wide Embedded Memory Author: Jan van Lunteren Publisher: GLOBECOM 2001 Presenter: Han-Chen Chen Date: 2010/01/06.
1 A Heuristic and Hybrid Hash- based Approach to Fast Lookup Author: Gianni Antichi, Andrea Di Pietro, Domenico Ficara, Stefano Giordano, Gregorio Procissi,
Spring 2003 ECE569 Lecture ECE 569 Database System Engineering Spring 2003 Yanyong Zhang
Algorithm Design Techniques: Induction Chapter 5 (Except Section 5.6)
METU Department of Computer Eng Ceng 302 Introduction to DBMS Disk Storage, Basic File Structures, and Hashing by Pinar Senkul resources: mostly froom.
Sequence Alignment II CIS 667 Spring Optimal Alignments So we know how to compute the similarity between two sequences  How do we construct an.
Fast and Scalable Packet Classification Using Perfect Hash functions Author: Viktor Puš, Jan Korenek Publisher: FPGA’09 Presenter: Yu-Ping Chiang Date:
 2003 Prentice Hall, Inc. All rights reserved Sorting Arrays Sorting data –Important computing application –Virtually every organization must sort.
1Bloom Filters Lookup questions: Does item “ x ” exist in a set or multiset? Data set may be very big or expensive to access. Filter lookup questions with.
Algorithms. Introduction Before writing a program: –Have a thorough understanding of the problem –Carefully plan an approach for solving it While writing.
Univ. of TehranAdv. topics in Computer Network1 Advanced topics in Computer Networks University of Tehran Dept. of EE and Computer Engineering By: Dr.
Skip Lists1 Skip Lists William Pugh: ” Skip Lists: A Probabilistic Alternative to Balanced Trees ”, 1990  S0S0 S1S1 S2S2 S3S3 
Homework #3 Due Thursday, April 17 Problems: –Chapter 11: 11.6, –Chapter 12: 12.1, 12.2, 12.3, 12.4, 12.5, 12.7.
Fast binary and multiway prefix searches for pachet forwarding Author: Yeim-Kuan Chang Publisher: COMPUTER NETWORKS, Volume 51, Issue 3, pp , February.
1.
Algorithms for Enumerating All Spanning Trees of Undirected and Weighted Graphs Presented by R 李孟哲 R 陳翰霖 R 張仕明 Sanjiv Kapoor and.
PARALLEL TABLE LOOKUP FOR NEXT GENERATION INTERNET
CS212: DATA STRUCTURES Lecture 10:Hashing 1. Outline 2  Map Abstract Data type  Map Abstract Data type methods  What is hash  Hash tables  Bucket.
LECTURE 37: ORDERED DICTIONARY CSC 212 – Data Structures.
Chapter 11 Indexing & Hashing. 2 n Sophisticated database access methods n Basic concerns: access/insertion/deletion time, space overhead n Indexing 
COMP20010: Algorithms and Imperative Programming Lecture 4 Ordered Dictionaries and Binary Search Trees AVL Trees.
1 Compiler Construction (CS-636) Muhammad Bilal Bashir UIIT, Rawalpindi.
Sampling Techniques to Accelerate Pattern Matching in Network Intrusion Detection Systems Author : Domenico Ficara, Gianni Antichi, Andrea Di Pietro, Stefano.
HASHING PROJECT 1. SEARCHING DATA STRUCTURES Consider a set of data with N data items stored in some data structure We must be able to insert, delete.
1 Blooming Trees for Minimal Perfect Hashing Author: Gianni Antichi, Domenico Ficara, Stefano Giordano, Gregorio Procissi, Fabio Vitucci Publisher: GLOBECOM.
Author: Heeyeol Yu and Rabi Mahapatra
Copyright © Curt Hill Hashing A quick lookup strategy.
Chapter 15 A External Methods. © 2004 Pearson Addison-Wesley. All rights reserved 15 A-2 A Look At External Storage External storage –Exists beyond the.
Author: Haoyu Song, Murali Kodialam, Fang Hao and T.V. Lakshman Publisher/Conf. : IEEE International Conference on Network Protocols (ICNP), 2009 Speaker:
Indexing Database Management Systems. Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files File Organization 2.
1. Searching The basic characteristics of any searching algorithm is that searching should be efficient, it should have less number of computations involved.
An Improved DFA for Fast Regular Expression Matching Author : Domenico Ficara 、 Stefano Giordano 、 Gregorio Procissi Fabio Vitucci 、 Gianni Antichi 、 Andrea.
Hash Tables Ellen Walker CPSC 201 Data Structures Hiram College.
1 Binary Search Trees   . 2 Ordered Dictionaries Keys are assumed to come from a total order. New operations: closestKeyBefore(k) closestElemBefore(k)
Hashing & Hash Tables. Sets/Dictionaries Set - Our best efforts to date:
[Algo] MCPE CMU. Member Group Present 1.SUTTICHAI MESAARD SURIYA KONCHAIYAPHOM NATTHAWOOT PUNROOB WIWAT TAWEESUP
Hierarchical packet classification using a Bloom filter and rule-priority tries Source : Computer Communications Authors : A. G. Alagu Priya 、 Hyesook.
Chapter 5 Ranking with Indexes. Indexes and Ranking n Indexes are designed to support search  Faster response time, supports updates n Text search engines.
String and Lists Dr. José M. Reyes Álamo. 2 Outline What is a string String operations Traversing strings String slices What is a list Traversing a list.
Scalable Multi-match Packet Classification Using TCAM and SRAM Author: Yu-Chieh Cheng, Pi-Chung Wang Publisher: IEEE Transactions on Computers (2015) Presenter:
Introduction toData structures and Algorithms
String and Lists Dr. José M. Reyes Álamo.
Counting bloom filters for pattern matching and anti-evasion at the wire speed Author: Gianni Antichi, Domenico Ficara, Stefano Giordano, Gregorio Procissi,
Author: Heeyeol Yu; Mahapatra, R.; Publisher: IEEE INFOCOM 2008
Data Structures I (CPCS-204)
Advanced Associative Structures
CH 9.2 : Hash Tables Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich, Tamassia and.
Searching CLRS, Sections 9.1 – 9.3.
Lecture 2- Query Processing (continued)
CH 9.2 : Hash Tables Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich, Tamassia and.
Database Design and Programming
Space-for-time tradeoffs
How to use hash tables to solve olympiad problems
Hash Maps Introduction
Binary Search Trees < > = Dictionaries
An index-split Bloom filter for deep packet inspection
Presentation transcript:

1 Blooming Trees: Space-Efficient Structures for Data Representation Author: Domenico Ficara, Stefano Giordano, Gregorio Procissi, Fabio Vitucci Publisher: ICC 2008 Presenter: Yu-Ping Chiang Date: 2009/05/20

2 Outline Blooming Tree  Lookup  Insert  Delete Optimized Blooming Tree  Lookup  Insert  Delete Simulations

3 Blooming Tree B0 B1 B2 B items 2 items 1 item item Bit string HASH FUNCTION 3 bits 1 bit index

4 Blooming Tree n items, k0 hash functions, L+2 layers  Layer0 (B0) : m = nk0/ln2 bits  Layer1~L (B1~BL) : bits/block ( b=1 in following examples ) Block numbers is modified  LayerL+1 (BL+1) : Composed c-bits counters Hash function  k0 hash functions  log m + L*b bits output log m bit for layer0 B bits for layer1~layerL+1

5 Blooming Tree - lookup Algorithm:  Using first log m bits as layer0 index.  Compute a popcount on layer i, that gives index of the couple in layer i+1.  Checking the bit string output by hash function, the bit for layer i. 0 for first bit. 1 for second bit.  If processing bit is 0, result NOT FOUND. Otherwise continue search in next layer. Time complexity:  k0 [ hash + L ( popcount + 2 * check ) ] B0 B1 B2 B item1 bit string: hash

6 Blooming Tree - lookup Algorithm:  Using first log m bits as layer0 index.  Compute a popcount on layer i, that gives index of the couple in layer i+1.  Checking the bit string output by hash function, the bit for layer i. 0 for first bit. 1 for second bit.  If processing bit is 0, result NOT FOUND. Otherwise continue search in next layer. Time complexity:  k0 [ hash + L ( popcount + 2 * check ) ] B0 B1 B2 B item1 bit string: hash

7 Blooming Tree - lookup Algorithm:  Using first log m bits as layer0 index.  Compute a popcount on layer i, that gives index of the couple in layer i+1.  Checking the bit string output by hash function, the bit for layer i. 0 for first bit. 1 for second bit.  If processing bit is 0, result NOT FOUND. Otherwise continue search in next layer. Time complexity:  k0 [ hash + L ( popcount + 2 * check ) ] B0 B1 B2 B item1 bit string: hash Match !!

8 Blooming Tree - lookup Algorithm:  Using first log m bits as layer0 index.  Compute a popcount on layer i, that gives index of the couple in layer i+1.  Checking the bit string output by hash function, the bit for layer i. 0 for first bit. 1 for second bit.  If processing bit is 0, result NOT FOUND. Otherwise continue search in next layer. Time complexity:  k0 [ hash + L ( popcount + 2 * check ) ] B0 B1 B2 B item2 bit string: hash NOT FOUND !!

9 Blooming Tree - insert Algorithm:  Using first log m bits as layer0 index.  In layer1~layerL+1, using popcount of layer0~layerL and bit for each layer as index.  If bit in layer I already set (means COLLOSION), directly set bit in layer i+1. else, allocate a new block and insert it into original layer i+1 blocks.  Increase count at layer L+1. Time complexity:  k0 [ hash + L ( popcount + shift + bitset ) ] B0 B1 B2 B item1 bit string: hash allocate a new block (2^b bits) allocate a new block (2^b bits) allocate a new block (2^b bits)

10 Blooming Tree - insert Algorithm:  Using first log m bits as layer0 index.  In layer1~layerL+1, using popcount of layer0~layerL and bit for each layer as index.  If bit in layer I already set (means COLLOSION), directly set bit in layer i+1. else, allocate a new block and insert it into original layer i+1 blocks.  Increase count at layer L+1. Time complexity:  k0 [ hash + L ( popcount + shift + bitset ) ] B0 B1 B2 B item2 bit string: hash allocate a new block (2^b bits) allocate a new block (2^b bits) allocate a new block (2^b bits)

11 Blooming Tree - insert Algorithm:  Using first log m bits as layer0 index.  In layer1~layerL+1, using popcount of layer0~layerL and bit for each layer as index.  If bit in layer I already set (means COLLOSION), directly set bit in layer i+1. else, allocate a new block and insert it into original layer i+1 blocks.  Increase count at layer L+1. Time complexity:  k0 [ hash + L ( popcount + shift + bitset ) ] B0 B1 B2 B item3 bit string: hash Collision occur

12 Blooming Tree - delete Algorithm:  Trace to the last layer, decrease count.  If counter isn’t equal to 0, terminal processing. else, remove the block and checking upper layer if there only this item in the block, if yes, remove that block too. recursive processing upper layers. B0 B1 B2 B item1 bit string: hash Remove empty block 0

13 Blooming Tree - delete Algorithm:  Trace to the last layer, decrease count.  If counter isn’t equal to 0, terminal processing. else, remove the block and checking upper layer if there only this item in the block, if yes, remove that block too. recursive processing upper layers. B0 B1 B2 B item2 bit string: hash 0 1

14 Outline Blooming Tree  Lookup  Insert  Delete Optimized Blooming Tree  Lookup  Insert  Delete Simulations

15 Optimized Blooming Tree B0 B1 B2 B items 2 items 1 item bitmap Hash substrings 11

16 Optimized Blooming Tree - lookup Algorithm:  Access B0  Checking bitmap If there’s 1 in bitmap, directly compare last L*b bits of hashed bit string, and terminate processing. Else, lookup method is same as previous defined.  Recursively repeat at each level.

17 Optimized Blooming Tree - lookup 1211 B0 B1 B2B2 B bitmap Hash substrings Algorithm:  Access B0  Checking bitmap If there’s 1 in bitmap, directly compare last L*b bits of hashed bit string, and terminate processing. Else, lookup method is same as previous defined.  Recursively repeat at each level. item1bit string : hash Popcount = 3 Popcount = 2

18 Optimized Blooming Tree - insert Without collision  Add a zero-block  Set bit string and hash substring B0 B1 B2 B bitmap Hash substrings item1bit string : hash Hash substrings bitmap 0 01

19 Optimized Blooming Tree - insert With collision  Set corresponding branches B0 B1 B2 B bitmap Hash substrings item2bit string : hash

20 Optimized Blooming Tree - delete B0 B1 B2 B item2bit string : hash

21 Outline Blooming Tree  Lookup  Insert  Delete Optimized Blooming Tree  Lookup  Insert  Delete Simulations

22 Simulation Size comparison

23 Simulation Build on NP Intel IXP2800