A General-Purpose Counting Filter: Making Every Bit Count

Total Page:16

File Type:pdf, Size:1020Kb

A General-Purpose Counting Filter: Making Every Bit Count A General-Purpose Counting Filter: Making Every Bit Count Prashant Pandey, Michael A. Bender, Rob Johnson, and Rob Patro Stony Brook University Stony Brook, NY, USA {ppandey, bender, rob, rob.patro}@cs.stonybrook.edu ABSTRACT 1. INTRODUCTION Approximate Membership Query (AMQ) data structures, such as Approximate Membership Query (AMQ) data structures main- the Bloom filter, quotient filter, and cuckoo filter, have found nu- tain a probabilistic representation of a set or multiset, saving space merous applications in databases, storage systems, networks, com- by allowing queries occasionally to return a false-positive. Exam- putational biology, and other domains. However, many applica- ples of AMQ data structures include Bloom filters [7], quotient fil- tions must work around limitations in the capabilities or perfor- ters [5], cuckoo filters [17], and frequency-estimation data struc- mance of current AMQs, making these applications more complex tures [12]. AMQs have become one of the primary go-to data struc- and less performant. For example, many current AMQs cannot tures in systems builders’ toolboxes [9]. delete or count the number of occurrences of each input item, take AMQs are often the computational workhorse in applications, up large amounts of space, are slow, cannot be resized or merged, but today’s AMQs are held back by the limited number of opera- or have poor locality of reference and hence perform poorly when tions they support, as well as by their performance. Many systems stored on SSD or disk. based on AMQs (usually Bloom filters) use designs that are slower, This paper proposes a new general-purpose AMQ, the counting less space efficient, and significantly more complicated than neces- quotient filter (CQF). The CQF supports approximate membership sary in order to work around the limited functionality provided by testing and counting the occurrences of items in a data set. This today’s AMQ data structures. general-purpose AMQ is small and fast, has good locality of refer- For example, many Bloom-filter-based applications work around ence, scales out of RAM to SSD, and supports deletions, counting the Bloom filter’s inability to delete items by organizing their pro- (even on skewed data sets), resizing, merging, and highly concur- cesses into epochs; then they throw away all Bloom filters at the rent access. The paper reports on the structure’s performance on end of each epoch. Storage systems, especially log-structured both manufactured and application-generated data sets. merge (LSM) tree [25] based systems [4,32] and deduplication sys- In our experiments, the CQF performs in-memory inserts and tems [14, 15, 34], use AMQs to avoid expensive queries for items queries up to an order-of-magnitude faster than the original quo- that are not present. These storage systems are generally forced tient filter, several times faster than a Bloom filter, and similarly to to keep the AMQ in RAM (instead of on SSD) to get reasonable the cuckoo filter, even though none of these other data structures performance, which limit their scalability. Many tools that process support counting. On SSD, the CQF outperforms all structures by DNA sequences use Bloom filters to detect erroneous data (erro- a factor of at least 2 because the CQF has good data locality. neous subsequences in the data set) but work around the Bloom fil- The CQF achieves these performance gains by restructuring the ter’s inability to count by using a conventional hash table to count metadata bits of the quotient filter to obtain fast lookups at high load the number of occurrences of each subsequence [24, 29]. More- factors (i.e., even when the data structure is almost full). As a result, over, these tools use a cardinality-estimation algorithm to approx- the CQF offers good lookup performance even up to a load factor imate the number of distinct subsequences a priori to workaround of 95%. Counting is essentially free in the CQF in the sense that the Bloom filter’s inability to dynamically resize [20]. the structure is comparable or more space efficient even than non- As these examples show, four important shortcomings of Bloom counting data structures (e.g., Bloom, quotient, and cuckoo filters). filters (indeed, most production AMQs) are (1) the inability to The paper also shows how to speed up CQF operations by using delete items, (2) poor scaling out of RAM, (3) the inability to re- new x86 bit-manipulation instructions introduced in Intel’s Haswell size dynamically, and (4) the inability to count the number of times line of processors. The restructured metadata transforms many each input item occurs, let alone support skewed input distribu- quotient filter metadata operations into rank-and-select bit-vector tions (which are so common in DNA sequencing and other appli- operations. Thus, our efficient implementations of rank and select cations [24, 33]). may be useful for other rank-and-select-based data structures. Many Bloom filter variants in the literature [30] try to overcome the drawbacks of the traditional Bloom filter. The counting Bloom filter [18] can count and delete items, but does not support skewed Permission to make digital or hard copies of all or part of this work for personal or distributions and uses much more space than a regular Bloom fil- classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation ter (see Section 4). The spectral Bloom filter [11] solves the space on the first page. Copyrights for components of this work owned by others than the problems of the counting Bloom filter, but at a high computational author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or cost. The buffered Bloom filter [10] and forest-structured Bloom republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]. filter [23] use in-RAM buffering to scale out on flash, but still re- SIGMOD’17, May 14 - 19, 2017, Chicago, Illinois, USA quire several random reads for each query. The scalable Bloom filter [3] solves the problem of resizing the data structure by main- © 2017 Copyright held by the owner/author(s). Publication rights licensed to ACM. ISBN 978-1-4503-4197-4/17/05. $15.00 taining a series of Bloom filters, but queries become slower because DOI: http://dx.doi.org/10.1145/3035918.3035963 each Bloom filter must be tested for the presence of the item. See 775 Section 2 for a thorough discussion of Bloom filter variants and variable-sized counters enable the CQF to use substantially less other AMQs. space for Zipfian and other skewed input distributions. Counting, in particular, has also become important to AMQ • The CQF restructures the quotient filter’s metadata scheme to structures, primarily as a tool for supporting deletion. The counting speed up lookups when the data structure is nearly full. This Bloom filter [18] was originally introduced to add support for dele- enables the CQF to save space by supporting higher load factors tion to the Bloom filter, albeit at a high space cost. More recently, than the QF. The original quotient filter performs poorly above the cuckoo [17] and quotient filters [5] support deletion by allow- 75% occupancy, but the CQF provides good lookup performance ing each item to be duplicated a small number of times. However, up to 95% occupancy. The metadata scheme also saves space by many real data sets have a Zipfian distribution [13] and therefore reducing the number of metadata bits per item. contain many duplicates, so even these data structures can have poor performance or fail entirely on real data sets. • The CQF can take advantage of new x86 bit-manipulation in- Full-featured high-performance AMQs. More generally, as structions introduced in Intel’s Haswell line of processors to AMQs have become more widely used, applications have placed speed up quotient-filter-metadata operations. Our metadata more performance and feature demands on them. Applications scheme transforms many quotient-filter-metadata operations into would benefit from a general purpose AMQ that is small and fast, rank-and-select bit-vector operations. Thus, our efficient imple- has good locality of reference (so it can scale out of RAM to SSD), mentations of rank and select may be useful for other rank-and- and supports deletions, counting (even on skewed data sets), resiz- select-based data structures. Other counting filters, such as the ing, merging, and highly concurrent access. This paper proposes a counting Bloom filter and cuckoo filter, do not have metadata new AMQ data structure that that has all these benefits. The paper and hence cannot benefit from these optimizations. reports on the structure’s performance on both manufactured and application-generated data sets. 2. AMQ AND COUNTING STRUCTURES Results 2.1 AMQ data structures This paper formalizes the notion of a counting filter, an AMQ data structure that counts the number of occurrences of each input item, Approximate Membership Query (AMQ) data structures provide and describes the counting quotient filter (CQF), a space-efficient, a compact, lossy representation of a set or multiset. AMQs support scalable, and fast counting filter that offers good performance on INSERT(x) and QUERY(x) operations, and may support other op- arbitrary input distributions, including highly skewed distributions. erations, such as delete. Each AMQ is configured with an allowed We compare the CQF to the fastest and most popular count- false-positive rate, δ. A query for x is guaranteed to return true if ing data structure, the counting Bloom filter (CBF) [17], and to x has ever been inserted, but the AMQ may also return true with three (noncounting) approximate membership data structures, the probability δ even if x has never been inserted.
Recommended publications
  • Implementing Signatures for Transactional Memory
    Appears in the Proceedings of the 40th Annual IEEE/ACM Symposium on Microarchitecture (MICRO-40), 2007 Implementing Signatures for Transactional Memory Daniel Sanchez, Luke Yen, Mark D. Hill, Karthikeyan Sankaralingam Department of Computer Sciences, University of Wisconsin-Madison http://www.cs.wisc.edu/multifacet/logtm {daniel, lyen, markhill, karu}@cs.wisc.edu Abstract An important aspect of conflict detection is recording the addresses that a transaction reads (read set) and writes Transactional Memory (TM) systems must track the (write set) at some granularity (e.g., memory block or read and write sets—items read and written during a word). One promising approach is to use signatures, data transaction—to detect conflicts among concurrent trans- structures that can represent an unbounded number of el- actions. Several TMs use signatures, which summarize ements approximately in a bounded amount of state. Led unbounded read/write sets in bounded hardware at a per- by Bulk [7], several systems including LogTM-SE [31], formance cost of false positives (conflicts detected when BulkSC [8], and SigTM [17], have implemented read/write none exists). sets with per-thread hardware signatures built with Bloom This paper examines different organizations to achieve filters [2]. These systems track the addresses read/written hardware-efficient and accurate TM signatures. First, we in a transaction by inserting them into the read/write sig- find that implementing each signature with a single k-hash- natures, and clear both signatures as the transaction com- function Bloom filter (True Bloom signature) is inefficient, mits or aborts. Depending on the system, signatures must as it requires multi-ported SRAMs.
    [Show full text]
  • Fast Candidate Generation for Real-Time Tweet Search with Bloom Filter Chains
    Fast Candidate Generation for Real-Time Tweet Search with Bloom Filter Chains NIMA ASADI and JIMMY LIN, University of Maryland at College Park The rise of social media and other forms of user-generated content have created the demand for real-time search: against a high-velocity stream of incoming documents, users desire a list of relevant results at the time the query is issued. In the context of real-time search on tweets, this work explores candidate generation in a two-stage retrieval architecture where an initial list of results is processed by a second-stage rescorer 13 to produce the final output. We introduce Bloom filter chains, a novel extension of Bloom filters that can dynamically expand to efficiently represent an arbitrarily long and growing list of monotonically-increasing integers with a constant false positive rate. Using a collection of Bloom filter chains, a novel approximate candidate generation algorithm called BWAND is able to perform both conjunctive and disjunctive retrieval. Experiments show that our algorithm is many times faster than competitive baselines and that this increased performance does not require sacrificing end-to-end effectiveness. Our results empirically characterize the trade-off space defined by output quality, query evaluation speed, and memory footprint for this particular search architecture. Categories and Subject Descriptors: H.3.3 [Information Storage and Retrieval]: Information Search and Retrieval General Terms: Algorithms, Experimentation Additional Key Words and Phrases: Scalability, efficiency, top-k retrieval, tweet search, bloom filters ACM Reference Format: Asadi, N. and Lin, J. 2013. Fast candidate generation for real-time tweet search with bloom filter chains.
    [Show full text]
  • An Optimal Bloom Filter Replacement∗
    An Optimal Bloom Filter Replacement∗ Anna Pagh† Rasmus Pagh† S. Srinivasa Rao‡ Abstract store the approximation is roughly n log(1/)1, where This paper considers space-efficient data structures for n = |S| and the logarithm has base 2 [5]. In contrast, 0 0 the amount of space for storing S ⊆ {0, 1}w explicitly storing an approximation S to a set S such that S ⊆ S w 0 2 and any element not in S belongs to S with probability is at least log n ≥ n(w − log n) bits, which may be at most . The Bloom filter data structure, solving this much larger if w is large. Here, we consider subsets problem, has found widespread use. Our main result is of the set of w-bit machine words on a standard RAM a new RAM data structure that improves Bloom filters model, since this is the usual framework in which RAM in several ways: dictionaries are studied. Let the (random) set S0 ⊇ S consist of the elements • The time for looking up an element in S0 is O(1), that are stored (including false positives). We want S0 independent of . to be chosen such that any element not in S belongs to S0 with probability at most . For ease of exposition, we • The space usage is within a lower order term of the assume that ≤ 1/2 is an integer power of 2. A Bloom lower bound. filter [1] is an elegant data structure for selecting and representing a suitable set S0. It works by storing, as a • The data structure uses explicit hash function bit vector, the set families.
    [Show full text]
  • Comparison on Search Failure Between Hash Tables and a Functional Bloom Filter
    applied sciences Article Comparison on Search Failure between Hash Tables and a Functional Bloom Filter Hayoung Byun and Hyesook Lim * Department of Electronic and Electrical Engineering, Ewha Womans University, Seoul 03760, Korea; [email protected] * Correspondence: [email protected]; Tel.: +82-2-3277-3403 Received:17 June 2020; Accepted: 27 July 2020; Published: 29 July 2020 Abstract: Hash-based data structures have been widely used in many applications. An intrinsic problem of hashing is collision, in which two or more elements are hashed to the same value. If a hash table is heavily loaded, more collisions would occur. Elements that could not be stored in a hash table because of the collision cause search failures. Many variant structures have been studied to reduce the number of collisions, but none of the structures completely solves the collision problem. In this paper, we claim that a functional Bloom filter (FBF) provides a lower search failure rate than hash tables, when a hash table is heavily loaded. In other words, a hash table can be replaced with an FBF because the FBF is more effective than hash tables in the search failure rate in storing a large amount of data to a limited size of memory. While hash tables require to store each input key in addition to its return value, a functional Bloom filter stores return values without input keys, because different index combinations according to each input key can be used to identify the input key. In search failure rates, we theoretically compare the FBF with hash-based data structures, such as multi-hash table, cuckoo hash table, and d-left hash table.
    [Show full text]
  • Invertible Bloom Lookup Tables
    Invertible Bloom Lookup Tables Michael T. Goodrich Dept. of Computer Science University of California, Irvine http://www.ics.uci.edu/˜goodrich/ Michael Mitzenmacher Dept. of Computer Science Harvard University http://www.eecs.harvard.edu/˜michaelm/ Abstract We present a version of the Bloom filter data structure that supports not only the insertion, deletion, and lookup of key-value pairs, but also allows a complete listing of the pairs it contains with high probability, as long the number of key- value pairs is below a designed threshold. Our structure allows the number of key- value pairs to greatly exceed this threshold during normal operation. Exceeding the threshold simply temporarily prevents content listing and reduces the probability of a successful lookup. If entries are later deleted to return the structure below the threshold, everything again functions appropriately. We also show that simple variations of our structure are robust to certain standard errors, such as the deletion of a key without a corresponding insertion or the insertion of two distinct values for a key. The properties of our structure make it suitable for several applications, including database and networking applications that we highlight. 1 Introduction The Bloom filter data structure [5] is a well-known way of probabilistically supporting arXiv:1101.2245v3 [cs.DS] 4 Oct 2015 dynamic set membership queries that has been used in a multitude of applications (e.g., see [8]). The key feature of a standard Bloom filter is the way it trades off query accuracy for space efficiency, by using a binary array T (initially all zeroes) and k random hash functions, h1; : : : ; hk, to represent a set S by assigning T [hi(x)] = 1 for each x 2 S.
    [Show full text]
  • Scalable Cooperative Caching Algorithm Based on Bloom Filters Nodirjon Siddikov
    Rochester Institute of Technology RIT Scholar Works Theses Thesis/Dissertation Collections 2011 Scalable cooperative caching algorithm based on bloom filters Nodirjon Siddikov Follow this and additional works at: http://scholarworks.rit.edu/theses Recommended Citation Siddikov, Nodirjon, "Scalable cooperative caching algorithm based on bloom filters" (2011). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by the Thesis/Dissertation Collections at RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. Scalable Cooperative Caching Algorithm based on Bloom Filters Nodirjon Siddikov Email: [email protected] M.S. in Computer Science Department of Computer Science B. Thomas Golisano College of Computing and Information Sciences Rochester Institute of Technology Rochester, New York August, 2011 A Thesis submitted in Partial Fulfillment of the Requirements for the Degree of Master of Science in Computer Science COMMITEE MEMBERS: _____________________________________________________________________________ CHAIR: Hans-Peter Bischof DATE Professor, Department of Computer Science _____________________________________________________________________________ READER: Minseok Kwon DATE Associate Professor, Department of Computer Science _____________________________________________________________________________ OBSERVER: James Heliotis DATE Professor, Department of
    [Show full text]
  • Bloom Filter-2
    BALLS, BINS, AND RANDOM GRAPHS We use the Chernoff bound for the Poisson distribution (Theorem 5.4) to bound this probability, writing the bound as Pr(X 2: x) :s eX-ill-X In(x/m). For x = m + J2m In m, we use that In(l + z) 2: z - z2/2 for z 2: 0 to show Pr( X > m + J 2m In m ) :s e J2m In 111- (m+J2mlnm ) In(I+J21nm/m ) :s eJ2mTtlm -(III+J2mlnm )(J21nm/m-lnm/m) = e-lnlll+J2mlnlll(lnm/m) = 0(1). A similar argument holds if x < m, so Pr(IX - ml > J2m Inm) = 0(1). We now show the second fact, that IPr(E I IX - ml :s J2m Inm) - Pr(E I X = m)1 = 0(1). Note that Pr(E I X = k) is increasing in k, since this probability corresponds to the probability that all bins are nonempty when k balls are thrown independently and uni­ formly at random. The more balls that are thrown, the more likely all bins are nonempty. It follows that Pr(E I X = m - J2mlnm):s Pr(E IIX -ml:S J2mlnm) :s Pr(E I X = m + J2m Inm). Hence we have the bound IPr(E I IX - ml :s J2m Inm) - Pr(E I X = m)1 :s Pr(E I X = m + J2m Inm) - Pr(E I X = m - J2m Inm), and we show the right-hand side is 0(1). This is the difference between the probability that all bins receive at least one ball when 111 - J 2111 In 111 balls are thrown and when m + J2m In m balls are thrown.
    [Show full text]
  • Bloom Filter Encryption and Applications to Efficient Forward
    Bloom Filter Encryption and Applications to Efficient Forward-Secret 0-RTT Key Exchange David Derler1;z, Kai Gellert2, Tibor Jager2, Daniel Slamanig3, and Christoph Striecks3 1 DFINITY [email protected] 2 University of Wuppertal, Germany {kai.gellert, tibor.jager}@uni-wuppertal.de 3 AIT Austrian Institute of Technology {daniel.slamanig, christoph.striecks}@ait.ac.at Abstract. Forward secrecy is considered an essential design goal of modern key establishment (KE) protocols, such as TLS 1.3, for example. Furthermore, ef- ficiency considerations such as zero round-trip time (0-RTT), where a client is able to send cryptographically protected payload data along with the very first KE message, are motivated by the practical demand for secure low-latency com- munication. For a long time, it was unclear whether protocols that simultaneously achieve 0-RTT and full forward secrecy exist. Only recently, the first forward-secret 0- RTT protocol was described by Gunther¨ et al. (EUROCRYPT 2017). It is based on Puncturable Encryption. Forward secrecy is achieved by “puncturing” the se- cret key after each decryption operation, such that a given ciphertext can only be decrypted once (cf. also Green and Miers, S&P 2015). Unfortunately, their scheme is completely impractical, since one puncturing operation takes between 30 seconds and several minutes for reasonable security and deployment parame- ters, such that this solution is only a first feasibility result, but not efficient enough to be deployed in practice. In this paper, we introduce a new primitive that we term Bloom Filter Encryption (BFE), which is derived from the probabilistic Bloom filter data structure.
    [Show full text]
  • Data Mining Locality Sensitive Hashing
    LSH Bloom filters Data mining Locality Sensitive Hashing University of Szeged Data mining LSH Bloom filters Similarity of textual documents k-shingles: character k-grams of a document, e.g. k = 2 and D =0 abdca0 ) D = fab; bd; dc; cag Handling whitespaces (e.g. The plane was ready for touch down. and The quarterback scored a touchdown.) choosing k is important (what should be the objectives) One way to measure document similarity is by calculating the Jaccard similarity of their k-shingles representation Data mining LSH Bloom filters k-shingles { characters vs. words English alphabet has 27 letters ) possible 4-shingles = 531,441 P("than") P("qyzz") ≈ P("yyyy") increase value k (e.g. k'=10) and represent documents as the set of hash values (stored on e.g. k bytes) of its k'-shingles similarity of news articles: instead of character-based k-shingles of tokens that started with a stopword were utilized. Reason? Data mining LSH Minhashing Bloom filters LSH theory Locality Sensitive Hashing (LSH) { Motivation Suppose we would like to find duplicate documents in a corpus of size N = 1; 000; 000 = 106 N Brute force solution: calculating 2 Jaccard similarities carrying out 106 comparisons per second, that would take more than 5.5 days Data mining LSH Minhashing Bloom filters LSH theory Locality Sensitive Hashing (LSH) Find hash function h such that it satisfies with high probability that: s(A; B) ! 1 ) h(A) = h(B) s(A; B) ! 0 ) h(A) 6= h(B) Since similar documents are likely to share their hash value, comparing those elements for which h(A) = h(B) will be sufficient Data mining LSH Minhashing Bloom filters LSH theory Representing sets In the form of signatures: characteristic matrix Element S1 S2 S3 S4 a 1 0 0 1 b 0 0 1 0 c 0 1 0 1 d 1 0 1 1 e 0 0 1 0 The entire matrix is naturally not stored in practice ! sparse representation Data mining LSH Minhashing Bloom filters LSH theory Minhash function Reorder the rows of the characteristic matrix Let the hash value of a set be the index of the first occurrence of a non-zero element e.g.
    [Show full text]
  • Pay for a Sliding Bloom Filter and Get Counting, Distinct Elements, and Entropy for Free
    Pay for a Sliding Bloom Filter and Get Counting, Distinct Elements, and Entropy for Free Eran Assaf Ran Ben Basat Gil Einziger Roy Friedman Hebrew University Technion Nokia Bell Labs Technion Abstract For many networking applications, recent data is more significant than older data, motivating the need for sliding window solutions. Various capabilities, such as DDoS detection and load balancing, require insights about multiple metrics including Bloom filters, per-flow counting, count distinct and entropy estimation. In this work, we present a unified construction that solves all the above problems in the sliding window model. Our single solution offers a better space to accuracy tradeoff than the state-of-the-art for each of these individual problems! We show this both analytically and by running multiple real Internet backbone and datacenter packet traces. 1 Introduction Network measurements are at the core of many applications, such as load balancing, quality of service, anomaly/intrusion detection, and caching [1, 14, 17, 25, 32]. Measurement algorithms are required to cope with the throughput de- mands of modern links, forcing them to rely on scarcely available fast SRAM memory. However, such memory is limited in size [35], which motivates approximate solutions that conserve space. Network algorithms often find recent data useful. For example, anomaly detection systems attempt to detect manifesting anomalies and a load balancer needs to balance the current load rather than the historical one. Hence, the sliding window model is an active research field [3, 34, 37, 41, 42]. The desired measurement types differ from one application to the other. For example, a load balancer may be interested in the heavy hitter flows [1], which are responsible for a large portion of the traffic.
    [Show full text]
  • Scalable Data Center Multicast Using Multi-Class Bloom Filter
    Scalable Data Center Multicast using Multi-class Bloom Filter Dan Li∗, Henggang Cui∗, Yan Huy, Yong Xia y, Xin Wangz ∗Computer Science Department of Tsinghua University yNEC Labs China zStony Brook University [email protected], [email protected], fhu yan,xia [email protected], [email protected] Abstract—Multicast benefits data center group communica- increasing application throughput. Although Multicast is not tions in saving network bandwidth and increasing application widely deployed in the Internet due to management and pricing throughput. However, it is challenging to scale Multicast to issues, the controlled environment of data center provides a support tens of thousands of concurrent group communications due to limited forwarding table memory space in the switches, good opportunity for its resurgence. particularly the low-end ones commonly used in modern data The technical trend for modern data center design is to use centers. Bloom Filter is an efficient tool to compress the Multicast a large number of low-end switches for server interconnection. forwarding table, but significant traffic leakage may occur when The space of the expensive and power-hungry fast memory in group membership testing is false positive. this kind of switches, such as SRAM, is usually narrow to To reduce the Multicast traffic leakage, in this paper we bring forward a novel multi-class Bloom Filter (MBF), which extends control the economical cost, especially considering the link the standard Bloom Filter by embracing element uncertainty. speeds in data centers are increasing rapidly. Hence, a signifi- Specifically, MBF sets the number of hash functions in a per- cant challenge in the forwarding plane of data center switches element level, based on the probability for each Multicast group is how to maintain a potentially large number of forwarding to be inserted into the Bloom Filter.
    [Show full text]
  • Similarity Search Using Locality Sensitive Hashing and Bloom Filter
    Similarity Search using Locality Sensitive Hashing and Bloom Filter Thesis submitted in partial fulfillment of the requirements for the award of degree of Master of Engineering in Computer Science and Engineering Submitted By Sachendra Singh Chauhan (Roll No. 801232021) Under the supervision of Dr. Shalini Batra Assistant Professor COMPUTER SCIENCE AND ENGINEERING DEPARTMENT THAPAR UNIVERSITY PATIALA – 147004 June 2014 ACKNOWLEDGEMENT No volume of words is enough to express my gratitude towards my guide, Dr. Shalini Batra, Assistant Professor, Computer Science and Engineering Department, Thapar University, who has been very concerned and has aided for all the material essential for the preparation of this thesis report. She has helped me to explore this vast topic in an organized manner and provided me with all the ideas on how to work towards a research-oriented venture. I am also thankful to Dr. Deepak Garg, Head of Department, CSED and Dr. Ashutosh Mishra, P.G. Coordinator, for the motivation and inspiration that triggered me for the thesis work. I would also like to thank the faculty members who were always there in the need of the hour and provided with all the help and facilities, which I required, for the completion of my thesis. Most importantly, I would like to thank my parents and the Almighty for showing me the right direction out of the blue, to help me stay calm in the oddest of the times and keep moving even at times when there was no hope. Sachendra Singh Chauhan 801232021 ii Abstract Similarity search of text documents can be reduced to Approximate Nearest Neighbor Search by converting text documents into sets by using Shingling.
    [Show full text]