IP Library Granted Patent US 11,354,285
Granted Patent B2
US 11,354,285 · App. 16/848,878 · Granted Jun 7, 2022

Bulk duplication detection supporting data encryption

Inventors: Chenghung Ker (Burlingame, CA); Danil Dvinov (Oakland, CA); Parth Vijay Vaishnav (Newark, CA); Swaroop Shere (Dublin, CA); Alexandre Hersans (Walnut Creek, CA)
Assignee: salesforee.com, inc.
G06F16/215G06F16/285G06F21/602H04L9/0618
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 11,354,285
App. No.
16/848,878
Granted
Jun 7, 2022
Kind
B2
Abstract

Provided herein are system, methods and computer program products for identifying duplicate records stored in a database system, comprising: generating a plurality of encrypted match indexes for each of a plurality of records stored in the database system, each of the plurality of encrypted match indexes encrypts a value of each encryption enabled field of a respective one of the plurality of records defined by at least one match rule, creating a cluster of records comprising at least one set containing at least two records of the plurality of records, the at least two records having respective encrypted match indexes corresponding to the at least one match rule, causing identification of duplicate records in the at least one set according to detection of records of the at least one set having respective match indexes matching the at least one match rule, and outputting an indication of the identified duplicate records.

Claims (61)

1. A computer implemented method of identifying duplicate records stored in a database system, comprising:

using at least one processor of a database system for:

generating a plurality of encrypted match indexes for each of a plurality of records stored in the database system, each of the plurality of encrypted match indexes encrypts a value of each encryption enabled field of a respective one of the plurality of records defined by at least one match rule;

creating a cluster of records comprising at least one set containing at least two records of the plurality of records, the at least two records having respective encrypted match indexes corresponding to the at least one match rule;

causing identification of duplicate records in the at least one set according to detection of records of the at least one set having respective match indexes matching the at least one match rule; and;

in case the at least one match rule comprises a fuzzy match rule:

causing decryption of the encrypted match indexes of each of the records of the at least one set;

causing identification of duplicate records in the at least one set according to detection of records of the at least one set having decrypted match indexes matching the at least one match rule; and

outputting an indication of the identified duplicate records.

2. A computer implemented method of identifying duplicate records stored in a database system, comprising:

using at least one processor of a database system for:

generating a plurality of encrypted match indexes for each of a plurality of records stored in the database system, each of the plurality of encrypted match indexes encrypts a value of each encryption enabled field of a respective one of the plurality of records defined by at least one match rule;

creating a cluster of records comprising at least one set containing at least two records of the plurality of records, the at least two records having respective encrypted match indexes corresponding to the at least one match rule;

causing identification of duplicate records in the at least one set according to detection of records of the at least one set having respective match indexes matching the at least one match rule; and

outputting an indication of the identified duplicate records

wherein each encryption enabled field of the respective record is detected by intercepting at least one database access initiated to apply the encryption to the respective field, the at least one database access is initiated using at least one data access object defined by a protocol of the database system.

3. The method of claim 2 , wherein the encryption comprises deterministic encryption.

4. The method of claim 2 , wherein a unique identifier of the at least one match rule is used as an initialization vector in an encryption scheme used to encrypt the encryption enabled fields in each of the plurality of records.

5. The method of claim 2 , further comprising merging a plurality of sets comprising a common record to a single set.

6. The method of claim 2 , further comprising removing at least one of the duplicate records from the plurality of records stored in the database system.

7. A database system for automatically identifying duplicate records stored in a database system, comprising:

a database storing a plurality of records;

a storage storing a code; and

at least one processor coupled to the storage for executing the code, the code comprising:

code instructions t*o generate a plurality of encrypted match indexes for each of a plurality of records stored in the database system, each of the plurality of encrypted match indexes encrypts a value of each encryption enabled field of a respective one of the plurality of records defined by at least one match rule,

code instructions to create a cluster of records comprising at least one set containing at least two records of the plurality of records, the at least two records having respective encrypted match indexes corresponding to the at least one match rule,

code instructions to cause identification of duplicate records in the at least one set according to detection of records of the at least one set having respective match indexes matching the at least one match rule, and;

wherein the code further comprising:

code instructions to cause decryption of the encrypted match indexes of each of the records of the at least one set in case the at least one match rule comprises a fuzzy match rule;

code instructions to cause identification of duplicate records in the at least one set according to detection of records of the at least one set having decrypted match indexes matching the at least one match rule; and

code instructions to output an indication of the identified duplicate records.

8. The database system of claim 7 , wherein the encryption comprises deterministic encryption.

9. The database system of claim 7 , wherein a unique identifier of the at least one match rule is used as an initialization vector in an encryption scheme used to encrypt the encryption enabled fields in each of the plurality of records.

10. The database system of claim 7 , further comprising merging a plurality of sets comprising a common record to a single set.

11. The database system of claim 7 , further comprising removing at least one of the duplicate records from the plurality of records stored in the database system.

12. A database system for automatically identifying duplicate records stored in a database system, comprising:

a database storing a plurality of records;

a storage storing a code; and

at least one processor coupled to the storage for executing the code, the code comprising:

code instructions to generate a plurality of encrypted match indexes for each of a plurality of records stored in the database system, each of the plurality of encrypted match indexes encrypts a value of each encryption enabled field of a respective one of the plurality of records defined by at least one match rule,

code instructions to create a cluster of records comprising at least one set containing at least two records of the plurality of records, the at least two records having respective encrypted match indexes corresponding to the at least one match rule,

code instructions to cause identification of duplicate records in the at least one set according to detection of records of the at least one set having respective match indexes matching the at least one match rule, and

code instructions to output an indication of the identified duplicate records;

wherein each encryption enabled field of the respective record is detected by intercepting at least one database access initiated to apply to the encryption to the respective field, the at least one database access is initiated using at least one data access object defined by a protocol of the database system.

13. A computer program product comprising computer readable program code to be executed by at least one processor when retrieved from a non-transitory computer readable medium, the program code comprising code instructions to:

generate a plurality of encrypted match indexes for each of a plurality of records stored in a database system, each of the plurality of encrypted match indexes encrypts a value of each encryption enabled field of a respective one of the plurality of records defined by at least one match rule;

create a cluster of records comprising at least one set containing at least two records of the plurality of records, the at least two records having a respective encrypted match indexes corresponding to the at least one match rule;

cause identification of duplicate records in the at least one set according to detection of records of the at least one set having respective match indexes matching the at least one match rule; and

cause decryption of the encrypted match indexes of each of the records of the at least one set in case the at least one match rule comprises a fuzzy match rule;

cause identification of duplicate records in the at least one set according to detection of records of the at least one set having decrypted match indexes matching the at least one match rule; and

output an indication of the identified duplicate records.

14. The computer program product of claim 13 , wherein a unique identifier of the at least one match rule is used as an initialization vector in an encryption scheme used to encrypt the encryption enabled fields in each of the plurality of records.

15. The computer program product of claim 13 , further comprising code instructions to merge a plurality of sets comprising a common record to a single set.

16. A computer program product comprising computer readable program code to be executed by at least one processor when retrieved from a non-transitory computer readable medium, the program code comprising code instructions to:

generate a plurality of encrypted match indexes for each of a plurality of records stored in a database system, each of the plurality of encrypted match indexes encrypts a value of each encryption enabled field of a respective one of the plurality of records defined by at least one match rule;

create a cluster of records comprising at least one set containing at least two records of the plurality of records, the at least two records having a respective encrypted match indexes corresponding to the at least one match rule;

cause identification of duplicate records in the at least one set according to detection of records of the at least one set having respective match indexes matching the at least one match rule; and

detect each encryption enabled field of the respective record by intercepting at least one database access initiated to apply to the encryption to the respective field, the at least one database access is initiated using at least one data access object defined by a protocol of the database system;

output an indication of the identified duplicate records.

17. The computer program product of claim 16 , wherein the encryption comprises deterministic encryption.

18. The computer program product of claim 16 , further comprising code instructions to remove at least one of the duplicate records from the plurality of records stored in the database system.

Assignments (2)
CHANGE OF NAME Recorded Oct 3, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065114/0983 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2020
From: KER, CHENGHUNG; DVINOV, DANIL; VAISHNAV, PARTH VIJAY; SHERE, SWAROOP; HERSANS, ALEXANDRE
To: SALESFORCE.COM, INC.
Reel/Frame 053130/0157 →
Continuity (1)
Related Publication 20210326311A1 · Oct 21, 2021
Cited By (2)
US 12,260,434 US 12,688,205