IP Library Granted Patent US 9,811,424
Granted Patent B2
US 9,811,424 · App. 15/073,703 · Granted Nov 7, 2017

Optimizing restoration of deduplicated data

Inventors: Kavita Chavda (Roswell, GA); Nagapramod S. Mandagere (San Jose, CA); Ramani R. Routray (San Jose, CA); Pin Zhou (San Jose, CA)
Assignee: International Business Machines Corporation
G06F11/1458G06F11/1453G06F11/1469G06F17/3015G06F17/30194G06F17/30958G06F2201/84
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 9,811,424
App. No.
15/073,703
Granted
Nov 7, 2017
Kind
B2
Abstract

A computer identifies a plurality of data retrieval requests that may be serviced using a plurality of unique data chunks. The computer services the data retrieval requests by utilizing at least one of the unique data chunks. At least one of the unique data chunks can be utilized for servicing two or more of the data retrieval requests. The computer determines a servicing sequence for the plurality of data retrieval requests such that the two or more of the data retrieval requests that can be serviced utilizing the at least one of the unique data chunks are serviced consecutively. The computer services the plurality of data retrieval requests according to the servicing sequence.

Claims (45)

1. A method for restoring deduplicated data, the method comprising the steps of:

a first computing device identifying a plurality of data retrieval requests for servicing with a plurality of unique data chunks, wherein each data retrieval request is serviced utilizing at least one of the plurality of unique data chunks, and wherein at least one of the plurality of unique data chunks is utilized for the servicing of two or more of the data retrieval requests;

the first computing device determining a servicing sequence of the plurality of data retrieval requests such that the two or more of the data retrieval requests that are serviced utilizing the at least one of the plurality of unique data chunks are serviced consecutively;

the first computing device servicing the plurality of data retrieval requests according to the servicing sequence; and

restoring deduplicated data using the plurality of unique data chunks;

wherein the determining a servicing sequence of the plurality of data retrieval requests further includes the step of:

the first computing device mapping the plurality of data retrieval requests into a relationship graph, wherein each node of the relationship graph corresponds to a data retrieval request, and wherein each edge of the relationship graph has an edge weight associated with a number of unique data chunks shared between a pair of data retrieval requests connected by the edge.

2. The method of claim 1 , wherein the determining a servicing sequence of the plurality of data retrieval requests further comprises the steps of:

the first computing device determining which node of the relationship graph has a highest relationship score; and

the first computing device traversing the relationship graph, starting from the node of the relationship graph that has the highest relationship score, in substantially breadth-first order according to descending relationship score.

3. The method of claim 2 , wherein the determining which node of the relationship graph has the highest relationship score further includes determining a total edge weight of the node, a total number of edges of the node, or a weighted sum of a total edge weight of the node and a total number of edges of the node.

4. The method of claim 1 , wherein the determining a servicing sequence of the plurality of data retrieval requests further comprises the steps of:

the first computing device storing the node that has a highest relationship score in the servicing sequence; and

the first computing device, responsive to determining that a plurality of nodes have a relationship score in common, storing the plurality of nodes having the relationship score in common.

5. A computer program product to restore deduplicated data, 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 identify a plurality of data retrieval requests for servicing with a plurality of unique data chunks, wherein each data retrieval request is serviced utilizing at least one of the plurality of unique data chunks, and wherein at least one of the plurality of unique data chunks is utilized for the servicing of two or more of the data retrieval requests;

program instructions to determine a servicing sequence of the plurality of data retrieval requests such that the two or more of the data retrieval requests that are serviced utilizing the at least one of the plurality of unique data chunks are serviced consecutively;

program instructions to service the plurality of data retrieval requests according to the servicing sequence; and

program instructions to restore deduplicated data using the plurality of unique data chunks;

wherein the program instructions to determine a servicing sequence of the plurality of data retrieval requests further includes:

program instructions to map the plurality of data retrieval requests into a relationship graph, wherein each node of the relationship graph corresponds to a data retrieval request, and wherein each edge of the relationship graph has an edge weight associated with a number of unique data chunks shared between a pair of data retrieval requests connected by the edge.

6. The computer program product of claim 5 , further comprising program instructions to:

determine which node of the relationship graph has a highest relationship score; and

traverse the relationship graph by starting from the node of the relationship graph that has the highest relationship score, in substantially breadth-first order according to descending relationship score.

7. The computer program product of claim 6 , wherein the program instructions to determine which node of the relationship graph has the highest relationship score further includes program instructions to determine a total edge weight of the node; a total number of edges of the node; or a weighted sum of a total edge weight of the node and a total number of edges of the node.

8. The computer program product of claim 5 , further comprising program instructions to:

store the node that has a highest relationship score in the servicing sequence; and

responsive to determining that a plurality of nodes have a relationship score in common, storing the plurality of nodes having the relationship score in common.

9. A computer system for restoring deduplicated data, the computer system comprising:

one or more computer processors; and

one or more non-transitory computer-readable storage media storing program instructions, wherein the computer processor executes the program instructions to:

identify a plurality of data retrieval requests for servicing with a plurality of unique data chunks, wherein each data retrieval request is serviced utilizing at least one of the plurality of unique data chunks, and wherein at least one of the plurality of unique data chunks is utilized for the servicing of two or more of the data retrieval requests,

determine a servicing sequence of the plurality of data retrieval requests such that the two or more of the data retrieval requests that are serviced utilizing the at least one of the plurality of unique data chunks are serviced consecutively,

service the plurality of data retrieval requests according to the servicing sequence, and

restore deduplicated data using the plurality of unique data chunks;

wherein the computer processor further executes the program instructions to map the plurality of data retrieval requests into a relationship graph, wherein each node of the relationship graph corresponds to a data retrieval request, and wherein each edge of the relationship graph has an edge weight associated with a number of unique data chunks shared between a pair of data retrieval requests connected by the edge.

10. The computer system of claim 9 , wherein the computer processor further executes the program instructions to:

determine which node of the relationship graph has a highest relationship score; and

traverse the relationship graph by starting from the node of the relationship graph that has the highest relationship score, in substantially breadth-first order according to descending relationship score.

11. The computer system of claim 10 , wherein the program instructions are further configured to:

determine a total edge weight of the node; a total number of edges of the node; or a weighted sum of a total edge weight of the node and a total number of edges of the node.

12. The computer system of claim 9 , the computer processor further executes the program instructions to:

store the node that has a highest relationship score in the servicing sequence; and

responsive to determining that a plurality of nodes have a relationship score in common, store the plurality of nodes having the relationship score in common.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2016
From: CHAVDA, KAVITA; MANDAGERE, NAGAPRAMOD S.; ROUTRAY, RAMANI R.; ZHOU, PIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038020/0412 →
Continuity (3)
Continuation 14334814 · Jul 18, 2014
Continuation 13610929 · Sep 12, 2012
Related Publication 20160203058A1 · Jul 14, 2016