IP Library Granted Patent US 8,645,399
Granted Patent B2
US 8,645,399 · App. 13/349,414 · Granted Feb 4, 2014

Dynamic record blocking

Inventors: William P. McNeill (Seattle, WA); Andrew Borthwick (Kirkland, WA)
Assignee: Intelius Inc.
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,645,399
App. No.
13/349,414
Granted
Feb 4, 2014
Kind
B2
Abstract

Dynamic blocking determines which pairs of records in a data set should be examined as potential duplicates. Records are grouped together into blocks by shared properties that are indicators of duplication. Blocks that are too large to be efficiently processed are further subdivided by other properties chosen in a data-driven way. We demonstrate the viability of this algorithm for large data sets. We have scaled this system up to work on billions of records on an 80 node Hadoop cluster.

Claims (27)

1. A method of using a plurality of distributed computing nodes each comprising a processor and associated storage to dynamically block records, comprising:

(a) using the distributed computing nodes comprising a processor and associated storage, grouping together records of a data set with a first set of shared properties into blocks; and

(b) using the distributed computing nodes comprising a processor and associated storage, for a block that is intractably large and therefore requires further grouping records into sub-blocks, automatically discovering based on the contents of the intractably large block, at least one second set of shared properties that enables creation of sub-blocks of tractable size, wherein the second set is different from the first set.

2. The method of claim 1 wherein automatically discovering comprises automatically analyzing the set of properties present in records in an oversized block to dynamically guide subdivision of that oversized block.

3. The method of claim 1 further including processing the discovered sets of shared record properties in parallel using the plurality of distributed computing nodes to recursively or iteratively subdivide or partition, based on similar properties, at least one intractably large block into blocks of tractable size.

4. The method of claim 1 further including dynamically adjusting the discovered second set of shared properties in response to the composition of the data set and block size.

5. The method of claim 1 wherein the data set comprises a massive database of personal information from diverse data sources for an online people search.

6. The method of claim 1 wherein discovering applies a ramp parameter by which the maximum number of comparisons in the block of intractable size is increased with each recursion or iteration to provide a data-driven way to trade off between sub-blocking and linkage.

7. The method of claim 1 further including allowing sets of records to overlap.

8. The method of claim 1 further including applying the method to data sets when there is no obvious quickly-calculable metric between records and the number of records makes even a fast calculation for all pairs intractable.

9. The method of claim 1 further including creating multiple top-level blocks that can be worked on independently and in parallel.

10. The method of claim 1 further including dynamically adjusting the creation of sub-blocks based on several record property dimensions along which the records may vary, thereby avoiding the need to define a single ordering that places similar records next to each other.

11. The method of claim 1 further including allowing maximum block size to be a function of block key length.

12. A system for dynamically blocking records, comprising:

a plurality of distributed computing nodes each comprising a processor and associated non-transitory memory, the nodes each storing in non-transitory storage codes that when executed in parallel:

groups together records of a data set with a first set of similar properties into blocks; and

for a block that is intractably large and therefore requires further grouping records into sub-blocks, automatically discovers based on the contents of the intractably large block, at least one second set of shared properties that enables creation of sub-blocks of tractable size, wherein the second set is different from the first set.

13. The system of claim 12 wherein the code automatically analyzes the set of properties present in records in an oversized block to dynamically guide subdivision into sub-blocks.

14. The system of claim 12 wherein the processors process the discovered sets of shared record properties in parallel to recursively or iteratively subdivide or partition, based on similar properties, at least one intractably large block into blocks of tractable size.

15. The system of claim 12 wherein the processors dynamically adjust the discovered second set of shared properties in response to the composition of the data set and block size.

16. The system of claim 12 wherein the data set comprises a massive database of personal information from diverse data sources for an online people search.

17. The system of claim 12 wherein the processors apply a ramp parameter by which the maximum number of comparisons in the block of intractable size is increased with each recursion or iteration to provide a data-driven way to trade off between sub-blocking and linkage.

18. The system of claim 12 wherein the processors allow sets of records to overlap.

19. The system of claim 12 wherein the processors apply reduction to data sets when there is no obvious quickly-calculable metric between records and the number of records makes even a fast calculation for all pairs intractable.

20. The system of claim 12 wherein the processors create multiple top-level blocks that can be worked on independently and in parallel.

21. The system of claim 12 wherein the processors dynamically adjust the creation of sub-blocks based on several record property dimensions along which the records may vary, thereby avoiding the need to define a single ordering that places similar records next to each other.

22. The system of claim 12 further including allowing maximum block size to be a function of block key length.

Assignments (9)
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 35990/788 Recorded Feb 7, 2020
From: PROSPECT CAPITAL CORPORATION, AS COLLATERAL AGENT
To: PEOPLECONNECT, INC. (FORMERLY INTELIUS, INC.)
Reel/Frame 051843/0768 →
SECURITY INTEREST Recorded Jan 28, 2020
From: PEOPLECONNECT, INC.
To: PROSPECT CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 051643/0712 →
CHANGE OF NAME Recorded Aug 9, 2017
From: INTELIUS, INC.
To: PEOPLECONNECT, INC.
Reel/Frame 043496/0890 →
MERGER Recorded Aug 9, 2017
From: INTELIUS MERGER SUB, INC.; INOME, INC.
To: INTELIUS, INC.
Reel/Frame 043246/0089 →
SECURITY INTEREST Recorded Jul 8, 2015
From: INTELIUS, INC.
To: PROSPECT CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 036033/0896 →
SECURITY INTEREST Recorded Jul 6, 2015
From: INTELIUS, INC.
To: PROSPECT CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 035990/0788 →
CHANGE OF NAME Recorded Jul 2, 2015
From: INOME, INC.
To: INTELIUS, INC.
Reel/Frame 035972/0446 →
CHANGE OF NAME Recorded May 21, 2015
From: INTELIUS, INC.
To: INOME, INC.
Reel/Frame 035749/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2012
From: MCNEILL, WILLIAM P.; BORTHWICK, ANDREW
To: INTELIUS INC.
Reel/Frame 027932/0821 →
Continuity (2)
Provisional Application 61582775 · Jan 3, 2012
Related Publication 20130173560A1 · Jul 4, 2013