IP Library Granted Patent US 8,892,603
Granted Patent B2
US 8,892,603 · App. 13/479,003 · Granted Nov 18, 2014

Restoring deduplicated data objects from sequential backup devices

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,892,603
App. No.
13/479,003
Granted
Nov 18, 2014
Kind
B2
Abstract

Provided are computer program product, system, and method for restoring deduplicated data objects from sequential backup devices. A server stores data objects of extents having deduplicated data in the at least one sequential backup device. The server receives from a client a request for data objects. The server determines extents stored in the at least one sequential backup device for the requested data objects. The server or client sorts the extents according to an order in which they are stored in the at least one sequential backup device to generate a sort list. The server retrieves the extents from the at least one sequential backup device according to the order in the sort list to access the extents sequentially from the sequential backup device in the order in which they were stored. The server returns the retrieved extents to the client and the client reconstructs the requested data objects from the received extents.

Claims (30)

1. A method for restoring data objects, comprising:

storing data objects of extents having deduplicated data in at least one sequential backup device;

receiving from a client a request for data objects;

determining extents stored in the at least one sequential backup device for the requested data objects;

sorting the extents according to an order in which they are stored in the at least one sequential backup device to generate a sort list;

retrieving, by a server, the extents from the at least one sequential backup device according to the order in the sort list to access the extents sequentially from the sequential backup device in the order in which they were stored;

returning the retrieved extents to the client; and

reconstructing the requested data objects from the received extents.

2. The method of claim 1 , wherein the requested data objects are stored in a plurality of sequential backup devices, wherein the sorting of the extents in the sort list is performed for each of the sequential backup devices including extents for the requested data objects to produce one sort list for each of the sequential backup devices, and wherein the retrieving comprises retrieving all the extents for each of the sequential backup devices according to the order in the sort list for the sequential backup device to access the extents sequentially in the sequential backup device according to the order in which they were written to the sequential backup device.

3. The method of claim 1 , wherein the storing of the data objects in the sequential backup devices only stores one instance of an extent, wherein at least two of the requested data objects include at least one common extent, and wherein the returned extents include only one instance of the at least one common extent included in the at least two data objects.

4. The method of claim 3 , further comprising:

maintaining client data object information of extents included in the requested data objects,

wherein reconstructing the requested data objects comprises using the client data object information to determine the data object to which to add the received extents, wherein the at least one common extent is included in each of the at least two data objects including the common extent.

5. The method of claim 3 , wherein the client data object information indicates for each extent in a data object, at least one offset in the data object at which the extent in the data object is located, wherein each extent in the data object can occur at one or more offsets within the data object, wherein reconstructing the requested data objects comprises performing in response to receiving each extent:

determining the at least one offset of the received extent in each of the requested data objects in which the extent is included;

for each data object including the received extent, adding the received extent to the determined at least one offset in the data object, wherein extents are included in data objects as the extents are received.

6. The method of claim 3 , wherein the client data object information indicates for each extent in the data object, at least one offset in the data object at which the extent is located, wherein each extent in the data object can occur at one or more offsets within the data object, wherein reconstructing the requested data objects comprises performing:

buffering the received extents until all the extents for the requested data objects are available;

determining the offsets of the received extents in the requested data objects; and

adding the buffered received extents to the determined offsets in one of the requested data objects in response to buffering all the extents for the data object received from the server.

7. The method of claim 3 , wherein the operations further comprise

determining extents in the requested data objects maintained locally at the client; and

sending to the server indication of extents in the requested data objects not maintained locally at the client, wherein the server returns the indicated extents to the client that the client does not maintain locally, and wherein the requested data objects are reconstructed from the extents received from the server and the extents in the requested data objects maintained locally at the client.

8. The method of claim 3 , further comprising:

maintaining extent information indicating locations of the extents stored in the sequential backup devices;

generating server data object information for each requested data object indicating the extents included in the data object;

returning the server data object information to the client; and

receiving from the client indication used by the server to determine extents the client does not maintain locally, wherein the server returns the extents the client does not maintain locally to the client.

9. The method of claim 8 , wherein the server data object information indicates multiple instances of the extents that are included in multiple data objects, wherein the sort list includes only one instance of each extent, including extents included in multiple of the requested data objects, further comprising:

using the server data object information to generate client data object information indicating for each extent, each data object including the extent, wherein reconstructing, by the client, the requested data objects comprises using the client data object information to add the received extents to the requested data objects that include the extents, wherein the at least one common extent is included in each of the at least two data objects including the common extent as indicated in the client data object information.

Assignments (6)
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052888 FRAME 0177 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0712 →
SECURITY INTEREST Recorded Jun 9, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052888/0177 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2020
From: HGST NETHERLANDS B.V
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 052783/0631 →
CONFIRMATORY ASSIGNMENT Recorded Jan 21, 2016
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: HGST NETHERLANDS B.V.
Reel/Frame 037569/0134 →