IP Library Granted Patent US 8,266,506
Granted Patent B2
US 8,266,506 · App. 12/426,227 · Granted Sep 11, 2012

Method and apparatus for multiset membership testing using combinatorial bloom filters

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,266,506
App. No.
12/426,227
Granted
Sep 11, 2012
Kind
B2
Abstract

A method and apparatus providing improved set membership determination and group membership identification of candidate data elements using a single Bloom filter programmed to provide a plurality of non-zero f-bit binary vectors, where each of the f-bit binary vectors is associated with a respective group. The Bloom filter is programmed using one or more (but not all) of a plurality of hash filter sets.

Claims (29)

1. A method for identifying group membership of a candidate data element in a data processing apparatus including at least a memory circuit, the method comprising:

providing in the memory circuit a plurality of hash sets operative to program a single Bloom filter with a plurality of non-zero f-bit binary vectors, each of the f-bit binary vectors being associated with a respective group indicative of group IDs for one or more candidate data elements;

performing group membership probes into the Bloom filter using candidate data elements to generate thereby f-bit binary vector output signal indicative of a matching function.

2. The method of claim 1 , wherein group membership probes into the Bloom filter are performed by hashing candidate data elements according to each of h hashing functions of each off sets of hashing functions.

3. The method of claim 2 , wherein the Bloom filter is programmed by hashing each data element of a group with each of the h hashing functions of a subset θ of the f sets of hashing functions.

4. The method of claim 3 , wherein a group membership probe resulting in an f-bit binary vector output signal having fewer than θ bits indicates a no match condition.

5. The method of claim 3 , wherein a group membership probe resulting in an f-bit binary vector output signal having more than θ bits indicates a misclassification error.

6. The method of claim 1 , wherein the candidate data element comprises a media access control (MAC) address associated with a data frame, and the group comprises an output port of a switching device associated with the MAC address.

7. The method of claim 6 , wherein the switching device comprises a Layer-2 switch.

8. The method of claim 1 , wherein the candidate data element comprises a data packet and the group comprises a classification associated with the packet.

9. The method of claim 1 , wherein the group comprises a pattern associated with the data element.

10. The method of claim 9 , wherein the data element comprises one of a data packet and a data frame.

11. The method of claim 1 , further comprising:

error correcting the f-bit binary vector output signal using any of Hamming codes, forward error correction (FEC), checksums and parity bits.

12. An apparatus for identifying group membership of a candidate data element, comprising:

a first memory, for storing a plurality of hash sets operative to program a single Bloom filter with a plurality of non-zero f-bit binary vectors, each of the f-bit binary vectors being associated with a respective group indicative of group IDs for one or more candidate data elements; and

a second memory, for storing f sets of h hashing functions;

wherein group membership probes into the Bloom filter are performed by hashing candidate data elements according to each of the h hashing functions of each of the f sets of hashing functions.

13. The apparatus of claim 12 , wherein the Bloom filter is programmed by hashing each data element of a group with each of the h hashing functions of a subset of the f sets of hashing functions.

14. The apparatus of claim 12 , wherein said apparatus further comprises a decoder circuit adapted to decode f-bit binary vectors provided by the first memory to determine thereby a group associated with a candidate data element.

15. The apparatus of claim 12 , wherein the Bloom filter is programmed by hashing each data element of a group with each of the h hashing functions of a subset θ of the f sets of hashing functions.

16. The apparatus of claim 15 , wherein a group membership probe resulting in a binary vector having fewer than θ bits indicates a no match condition, and a binary vector having more than θ bits indicates a misclassification error.

17. The apparatus of claim 14 , wherein the first memory, second memory and decoder circuit are implemented in a programmable logic device.

18. The apparatus of claim 17 , further comprising a controller, for selectively placing the apparatus in one of a programming operational state and a testing operational state.

19. A computer-readable non-transitory medium storing a software program, that, when executed by a computer, causes the computer to perform a method for identifying group membership of a candidate data element, the method comprising:

providing in the memory circuit a plurality of hash sets operative to program a single Bloom filter with a plurality of non-zero f-bit binary vectors, each of the f-bit binary vectors being associated with a respective group indicative of group IDs for one or more candidate data elements;

performing group membership probes into the Bloom filter using candidate data elements.

20. The computer-readable medium of claim 19 , wherein group membership probes into the Bloom filter are performed by hashing candidate data elements according to each of h hashing functions of each off sets of hashing functions.

21. The computer-readable medium of claim 20 , wherein the Bloom filter is programmed by hashing each data element of a group with each of the h hashing functions of a subset of the f sets of hashing functions.

Assignments (11)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
PATENT SECURITY AGREEMENT Recorded Apr 22, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063429/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2012
From: ALCATEL-LUCENT USA INC.
To: ALCATEL LUCENT
Reel/Frame 028573/0432 →