IP Library › Granted Patent US 10,282,438
Granted Patent B2
US 10,282,438 · App. 15/042,480 · Granted May 7, 2019

Locating data in a set with a single index using multiple property values

Inventors: Patrick J. McKenna (Galway, IE); David P. O'Connor (Galway, IE); Claude N. Warren, Jr. (Galway, IE)
Assignee: International Business Machines Corporation
G06F17/3033G06F17/30598G06F17/30949
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 10,282,438
App. No.
15/042,480
Granted
May 7, 2019
Kind
B2
Abstract

Identifying objects in a datastore with specified object properties, where each object is characterized by a Bloom filter, a Hamming value of the Bloom filter, and a binary logarithm of the Bloom filter. A set of object properties is received. A search Bloom filter is created from the object properties. A Hamming value of the search Bloom filter is determined. A binary logarithm of the search Bloom filter is calculated. Objects in the datastore which have respective Hamming values greater than or equal to the Hamming value of the search Bloom filter and respective binary logarithms that are greater than or equal to the binary logarithm of the search Bloom filter are identified.

Claims (54)

1. A computer-implemented method for identifying objects in a datastore with specified object properties, wherein each object is characterized by a Bloom filter, a Hamming value of the Bloom filter, and a binary logarithm of the Bloom filter, the method comprising:

receiving, by a computer, a set of object properties;

creating, by the computer, a search Bloom filter from the object properties;

determining, by the computer, a Hamming value of the search Bloom filter;

calculating, by the computer, a binary logarithm of the search Bloom filter;

identifying, by the computer, objects in the datastore which have respective Hamming values greater than or equal to the Hamming value of the search Bloom filter and respective binary logarithms that are greater than or equal to the binary logarithm of the search Bloom filter; and

returning, by the computer, a respective representation of the identified objects, from the identified objects whose Bloom filters match the search Bloom filter and that are not false positives,

wherein the datastore is a relational database,

wherein the objects correspond to rows in a database table, and

wherein the Bloom filter, the Hamming value, the binary logarithm, and the representation of the object in the datastore correspond to columns in the database table.

2. A method in accordance with claim 1 , further comprising:

identifying, by the computer, from the identified objects, ones whose Bloom filters match the search Bloom filter, wherein a Bloom filter matches the search Bloom filter if each 1 bit in the search Bloom filter corresponds to a 1 bit at the same position in the Bloom filter.

3. A method in accordance with claim 2 , further comprising:

eliminating, by the computer, from the identified objects whose Bloom filters match the search Bloom filter, false positives.

4. A method in accordance with claim 3 , further comprising:

in response to receiving a request to delete objects in the datastore with specified properties, deleting, by the computer, objects, from the identified objects whose Bloom filters match the search Bloom filter, any that are not false positives.

5. A method in accordance with claim 1 , wherein the representation of the object is one of:

a copy of the object, a binary large object, or a reference to the object.

6. A computer system for identifying objects in a datastore with specified object properties, wherein each object is characterized by a Bloom filter, a Hamming value of the Bloom filter, and a binary logarithm of the Bloom filter, the computer system comprising:

one or more computer processors, one or more non-transitory computer-readable storage media, and program instructions stored on one or more of the computer-readable storage media for execution by at least one of the one or more processors, the program instructions comprising:

program instructions to receive a set of object properties;

program instructions to create a search Bloom filter from the object properties;

program instructions to determine a Hamming value of the search Bloom filter;

program instructions to calculate a binary logarithm of the search Bloom filter;

program instructions to identify objects in the datastore which have respective Hamming values greater than or equal to the Hamming value of the search Bloom filter and respective binary logarithms that are greater than or equal to the binary logarithm of the search Bloom filter; and

program instructions to return, by the computer, a respective representation of the identified objects, from the identified objects whose Bloom filters match the search Bloom filter and that are not false positives,

wherein the datastore is a relational database,

wherein the objects correspond to rows in a database table, and

wherein the Bloom filter, the Hamming value, the binary logarithm, and the representation of the object in the datastore correspond to columns in the database table.

7. A computer system in accordance with claim 6 , further comprising:

program instructions to identify, from the identified objects, ones whose Bloom filters match the search Bloom filter, wherein a Bloom filter matches the search Bloom filter if each 1 bit in the search Bloom filter corresponds to a 1 bit at the same position in the Bloom filter.

8. A computer system in accordance with claim 7 , further comprising:

program instructions to eliminate, from the identified objects whose Bloom filters match the search Bloom filter, false positives.

9. A computer system in accordance with claim 8 , further comprising:

program instructions, in response to receiving a request to delete objects in the datastore with specified properties, to delete objects, from the identified objects whose Bloom filters match the search Bloom filter, any that are not false positives.

10. A computer system in accordance with claim 6 , wherein the representation is one of:

a copy of the object, a binary large object, or a reference to the object.

11. A computer program product for identifying objects in a datastore with specified object properties, wherein each object is characterized by a Bloom filter, a Hamming value of the Bloom filter, and a binary logarithm of the Bloom filter, the computer program product comprising:

one or more non-transitory computer-readable storage media and program instructions stored on the one or more computer-readable storage media, the program instructions comprising:

program instructions to receive a set of object properties;

program instructions to create a search Bloom filter from the object properties;

program instructions to determine a Hamming value of the search Bloom filter;

program instructions to calculate a binary logarithm of the search Bloom filter;

program instructions to identify objects in the datastore which have respective Hamming values greater than or equal to the Hamming value of the search Bloom filter and respective binary logarithms that are greater than or equal to the binary logarithm of the search Bloom filter; and

program instructions to return, by the computer, a respective representation of the identified objects, from the identified objects whose Bloom filters match the search Bloom filter and that are not false positives,

wherein the datastore is a relational database,

wherein the objects correspond to rows in a database table, and

wherein the Bloom filter, the Hamming value, the binary logarithm, and the representation of the object in the datastore correspond to columns in the database table.

12. A computer program product in accordance with claim 11 , further comprising:

program instructions to identify, from the identified objects, ones whose Bloom filters match the search Bloom filter, wherein a Bloom filter matches the search Bloom filter if each 1 bit in the search Bloom filter corresponds to a 1 bit at the same position in the Bloom filter.

13. A computer program product in accordance with claim 12 , further comprising:

program instructions to eliminate, from the identified objects whose Bloom filters match the search Bloom filter, false positives.

14. A computer program product in accordance with claim 13 , further comprising:

program instructions, in response to receiving a request to delete objects in the datastore with specified properties, to delete objects, from the identified objects whose Bloom filters match the search Bloom filter, any that are not false positives.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2016
From: MCKENNA, PATRICK J.; O'CONNOR, DAVID P.; WARREN, CLAUDE N., JR.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037724/0490 →
Continuity (1)
Related Publication 20170235811A1 · Aug 17, 2017