IP Library › Granted Patent US 11,182,359
Granted Patent B2
US 11,182,359 · App. 16/740,201 · Granted Nov 23, 2021

Data deduplication in data platforms

Inventors: Rohit Ranchal (Austin, TX); Aris Gkoulalas-Divanis (Waltham, MA); Paul R. Bastide (Ashland, MA)
Assignee: International Business Machines Corporation
G06F16/215G06F16/2255G06F16/2264
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,182,359
App. No.
16/740,201
Granted
Nov 23, 2021
Kind
B2
Abstract

One embodiment of the invention provides a method for data deduplication storage management in a data platform including a plurality of data stores. The method comprises, for each data store of the plurality of data stores, determining a corresponding multi-level signature mapping data content of the data store into an ordered logical form comprising a plurality of data abstraction levels, determining a data similarity between the data store and each other data store of the plurality of data stores based on the multi-level signature corresponding to the data store and another multi-level signature corresponding to the other data store, and determining data usage of the data content of the data store. The method further comprises improving storage in the data platform by detecting duplicate data across the plurality of data stores based on each data similarity determined and each data usage determined.

Claims (69)

1. A method for data deduplication storage management in a data platform including a plurality of data stores, comprising:

for each data store of the plurality of data stores:

determining a multi-level signature corresponding to the data store, wherein the multi-level signature corresponding to the data store maps data content of the data store into an ordered logical form comprising a plurality of data abstraction levels;

determining a data similarity between the data store and each other data store of the plurality of data stores based on the multi-level signature corresponding to the data store and another multi-level signature corresponding to the other data store, wherein the data similarity comprises one or more data blocks included in both the data store and the other data store that are common; and

determining data usage of the data content of the data store;

detecting data blocks of duplicate data across the plurality of data stores to merge based on each data similarity determined and each data usage determined; and

merging the data blocks of duplicate data detected.

2. The method of claim 1 , wherein the determining the multi-level signature corresponding to the data store comprises:

ordering the data content of the data store by ordering a dimension of the data content in a logical ordering;

determining a hash value of an entirety of the ordered data content, and storing the hash value of the entirety of the ordered data content in a top data abstraction level of the ordered logical form; and

partitioning the ordered data content into multiple partitions, determining a hash value of each partition of the multiple partitions, and storing each hash value of each partition of the multiple partitions in a lower data abstraction level of the ordered logical form, wherein a lowest level of the ordered logical form stores each hash value of each individual data record of the ordered data content.

3. The method of claim 2 , wherein the ordered logical form comprises a pyramid data structure including the plurality of data abstraction levels, each data abstraction level comprises one or more grid cells, and each grid cell stores a hash value.

4. The method of claim 1 , wherein the determining the data similarity between the data store and each other data store of the plurality of data stores comprises:

detecting one or more data blocks included in both the data store and the other data store that are common by examining the multi-level signature corresponding to the data store against the another multi-level signature corresponding to the other data store in a top-down manner.

5. The method of claim 1 , wherein the determining the data usage of the data content of the data store comprises:

classifying each data block included in the data store with a corresponding data usage classification indicative of frequency at which the data block is accessed.

6. The method of claim 1 , further comprising:

receiving new data content for ingestion into a data store of the data platform;

determining a new multi-level signature corresponding to the new data content;

determining data similarities between the new data content and each data store of the plurality of data stores based on the new multi-level signature corresponding to the new data content and each multi-level signature corresponding to each data store of the plurality of data stores; and

selectively storing the new data content on one of the plurality of data stores based on the data similarities determined.

7. The method of claim 1 , further comprising:

for each data store of the plurality of data stores, tracking one or more changes in data usage of data content of the data store.

8. A system for data deduplication storage management in a data platform including a plurality of data stores, comprising:

at least one processor; and

a non-transitory processor-readable memory device storing instructions that when executed by the at least one processor causes the at least one processor to perform operations including:

for each data store of the plurality of data stores:

determining a multi-level signature corresponding to the data store, wherein the multi-level signature corresponding to the data store maps data content of the data store into an ordered logical form comprising a plurality of data abstraction levels;

determining a data similarity between the data store and each other data store of the plurality of data stores based on the multi-level signature corresponding to the data store and another multi-level signature corresponding to the other data store, wherein the data similarity comprises one or more data blocks included in both the data store and the other data store that are common; and

determining data usage of the data content of the data store;

detecting data blocks of duplicate data across the plurality of data stores to merge based on each data similarity determined and each data usage determined; and

merging the data blocks of duplicate data detected.

9. The system of claim 8 , wherein the determining the multi-level signature corresponding to the data store comprises:

ordering the data content of the data store by ordering a dimension of the data content in a logical ordering;

determining a hash value of an entirety of the ordered data content, and storing the hash value of the entirety of the ordered data content in a top data abstraction level of the ordered logical form; and

partitioning the ordered data content into multiple partitions, determining a hash value of each partition of the multiple partitions, and storing each hash value of each partition of the multiple partitions in a lower data abstraction level of the ordered logical form, wherein a lowest level of the ordered logical form stores each hash value of each individual data record of the ordered data content.

10. The system of claim 9 , wherein the ordered logical form comprises a pyramid data structure including the plurality of data abstraction levels, each data abstraction level comprises one or more grid cells, and each grid cell stores a hash value.

11. The system of claim 8 , wherein the determining the data similarity between the data store and each other data store of the plurality of data stores comprises:

detecting one or more data blocks included in both the data store and the other data store that are common by examining the multi-level signature corresponding to the data store against the another multi-level signature corresponding to the other data store in a top-down manner.

12. The system of claim 8 , wherein the determining the data usage of the data content of the data store comprises:

classifying each data block included in the data store with a corresponding data usage classification indicative of frequency at which the data block is accessed.

13. The system of claim 8 , further comprising:

receiving new data content for ingestion into a data store of the data platform;

determining a new multi-level signature corresponding to the new data content; determining data similarities between the new data content and each data store of the plurality of data stores based on the new multi-level signature corresponding to the new data content and each multi-level signature corresponding to each data store of the plurality of data stores; and

selectively storing the new data content on one of the plurality of data stores based on the data similarities determined.

14. The system of claim 8 , wherein the operations further include:

for each data store of the plurality of data stores, tracking one or more changes in data usage of data content of the data store.

15. A computer program product for data deduplication storage management in a data platform including a plurality of data stores, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:

for each data store of the plurality of data stores:

determine a multi-level signature corresponding to the data store, wherein the multi-level signature corresponding to the data store maps data content of the data store into an ordered logical form comprising a plurality of data abstraction levels;

determine a data similarity between the data store and each other data store of the plurality of data stores based on the multi-level signature corresponding to the data store and another multi-level signature corresponding to the other data store, wherein the data similarity comprises one or more data blocks included in both the data store and the other data store that are common; and

determine data usage of the data content of the data store;

detect data blocks of duplicate data across the plurality of data stores to merge based on each data similarity determined and each data usage determined; and

merge the data blocks of duplicate data detected.

16. The computer program product of claim 15 , wherein the program instructions are executable by the processor to cause the processor to determine the multi-level signature corresponding to the data store by:

ordering the data content of the data store by ordering a dimension of the data content in a logical ordering;

determining a hash value of an entirety of the ordered data content, and storing the hash value of the entirety of the ordered data content in a top data abstraction level of the ordered logical form; and

partitioning the ordered data content into multiple partitions, determining a hash value of each partition of the multiple partitions, and storing each hash value of each partition of the multiple partitions in a lower data abstraction level of the ordered logical form, wherein a lowest level of the ordered logical form stores each hash value of each individual data record of the ordered data content.

17. The computer program product of claim 15 , wherein the program instructions are executable by the processor to cause the processor to determine the data similarity between the data store and each other data store of the plurality of data stores by:

detecting one or more data blocks included in both the data store and the other data store that are common by examining the multi-level signature corresponding to the data store against the another multi-level signature corresponding to the other data store in a top-down manner.

18. The computer program product of claim 15 , wherein the program instructions are executable by the processor to cause the processor to determine the data usage of the data content of the data store by:

classifying each data block included in the data store with a corresponding data usage classification indicative of frequency at which the data block is accessed.

19. The computer program product of claim 15 , wherein the program instructions are executable by the processor to cause the processor to:

receive new data content for ingestion into a data store of the data platform;

determine a new multi-level signature corresponding to the new data content;

determine data similarities between the new data content and each data store of the plurality of data stores based on the new multi-level signature corresponding to the new data content and each multi-level signature corresponding to each data store of the plurality of data stores; and

selectively store the new data content on one of the plurality of data stores based on the data similarities determined.

20. The computer program product of claim 15 , wherein the program instructions are executable by the processor to further cause the processor to:

for each data store of the plurality of data stores, track one or more changes in data usage of data content of the data store.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2020
From: RANCHAL, ROHIT; GKOULALAS-DIVANIS, ARIS; BASTIDE, PAUL R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 051483/0416 →
Continuity (1)
Related Publication 20210216511A1 · Jul 15, 2021