IP Library Granted Patent US 10,394,760
Granted Patent B1
US 10,394,760 · App. 14/736,784 · Granted Aug 27, 2019

Browsable data backup

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 10,394,760
App. No.
14/736,784
Granted
Aug 27, 2019
Kind
B1
Abstract

Systems and methods are disclosed for backing up data in a computing system including a controller configured to backup a file in the non-volatile memory at least in part by receiving the file from a host, the file including a plurality of chunks of data and storing the plurality of chunks of data in a browsable partition of the non-volatile memory in response to said receiving the file. The controller further determines that one or more of the plurality of chunks has been modified, determine a new chunk associated with each of the one or more modified chunks, store the one or more new chunks in the browsable partition of the non-volatile memory using the communication interface in response to said determination of the one or more new chunks and store the one or more modified chunks in a container partition of the non-volatile memory using the communication interface.

Claims (77)

1. A data storage system comprising:

a non-volatile memory comprising:

a browsable partition that is browsable by a native operating system of a host device; and

a container partition that is not browsable by the native operating system of the host device;

a controller;

a memory interface communicatively coupling the controller to the non-volatile memory; and

a host interface configured to communicatively couple the controller to the host device;

wherein the controller is configured to backup a file in the non-volatile memory at least in part by:

receiving the file from the host device over the host interface, the file including a plurality of chunks of data;

in response to said receiving the file, storing the plurality of chunks of data in the browsable partition of the non-volatile memory using the memory interface;

determining that one or more of the plurality of chunks of data has been modified;

determining a new chunk associated with each of the one or more modified chunks;

storing the one or more new chunks in the browsable partition of the non-volatile memory using the memory interface; and

storing the one or more modified chunks in the container partition of the non-volatile memory using the memory interface; and

wherein the controller is further configured to reconstruct the file at least in part by:

receiving, from the host device over the host interface, a request to restore a previous version of the file;

locating, using a file location table, the one or more modified chunks stored in the container partition and one or more non-modified chunks stored in the browsable partition, wherein:

the file location table includes hash values associated with chunks of data; and

the hash values indicate storage locations, within the non-volatile memory, of the respective chunks of data;

combining the one or more modified chunks with the one or more non-modified chunks to generate a restored file; and

providing the restored file to the host device over the host interface.

2. The data storage system of claim 1 , wherein the browsable partition is searchable using a native file explorer associated with the native operating system of the host device.

3. The data storage system of claim 1 , wherein the controller is further configured to maintain the file location table in the container partition of the non-volatile memory.

4. The data storage system of claim 1 , wherein the controller is further configured to maintain, in the browsable partition of the non-volatile memory, a substantially complete current version of each backup file stored in the non-volatile memory.

5. The data storage system of claim 1 , wherein said storing the one or more new chunks in the browsable partition comprises:

generating a separate chunk file for each of the one or more new chunks; and

storing the one or more separate chunk files in the browsable partition of the non-volatile memory.

6. The data storage system of claim 1 , wherein storing the one or more modified chunks comprises:

generating a separate chunk file for each of the one or more modified chunks; and

storing the one or more separate chunk files in the container partition of the non-volatile memory.

7. The data storage system of claim 6 , wherein the one or more separate chunk files each include a filename that indicates a storage location within a file directory associated with the container partition of the non-volatile memory.

8. A method of backing up data in a data storage system, the method comprising:

receiving a file from a host device over a first communication interface, the file including a plurality of chunks of data;

in response to said receiving the file, storing the plurality of chunks of data in a browsable partition of a non-volatile memory using a second communication interface, the browsable partition being browsable by a native operating system of the host device;

determining that one or more of the plurality of chunks of data has been modified;

determining a new chunk associated with each of the one or more modified chunks;

in response to said determination of the one or more new chunks, storing the one or more new chunks in the browsable partition of the non-volatile memory using the second communication interface;

storing the one or more modified chunks in a container partition of the non-volatile memory using the second communication interface;

receiving, from the host device over the first communication interface, a request to restore a previous version of the file;

locating, using a file location table, the one or more modified chunks stored in the container partition and one or more non-modified chunks stored in the browsable partition, wherein:

the file location table includes hash values associated with chunks of data; and

the hash values indicate locations within the non-volatile memory of the respective chunks of data;

combining the one or more modified chunks with the one or more non-modified chunks to generate a restored file; and

providing the restored file to the host device over the first communication interface;

wherein the container partition of the non-volatile memory is not browsable by the native operating system of the host device.

9. The method of claim 8 , wherein the browsable partition of the non-volatile memory is searchable using a native file explorer associated with the native operating system of the host device.

10. The method of claim 8 , further comprising maintaining the file location table in the container partition of the non-volatile memory.

11. The method of claim 8 , further comprising maintaining a substantially complete current version of each backup file stored in the non-volatile memory in the browsable partition of the non-volatile memory.

12. The method of claim 8 , wherein said storing the one or more new chunks in the browsable partition of the non-volatile memory comprises:

generating a separate chunk file for each of the one or more new chunks; and

storing the one or more separate chunk files in the browsable partition of the non-volatile memory.

13. The method of claim 8 , wherein said storing the one or more modified chunks in the browsable partition of the non-volatile memory comprises:

generating a separate chunk file for each of the one or more modified chunks; and

storing the one or more separate chunk files in the container partition of the non-volatile memory.

14. The method of claim 13 , wherein the one or more separate chunk files each include a filename that indicates a storage location within a file directory associated with the container partition of the non-volatile memory.

15. A data storage device comprising:

a non-volatile memory comprising:

a browsable partition that is browsable by a native operating system of a host device; and

a container partition that is not browsable by the native operating system of the host device;

means for backing-up a file in the non-volatile memory at least in part by:

receiving the file from the host device, the file including a plurality of chunks of data;

storing the plurality of chunks of data in the browsable partition of the non-volatile memory;

determining that one or more of the plurality of chunks of data has been modified;

determining a new chunk associated with each of the one or more modified chunks;

storing the one or more new chunks in the browsable partition of the non-volatile memory; and

storing the one or more modified chunks in the container partition of the non-volatile memory; and

means for restoring a previous version of the file at least in part by:

retrieving, from the container partition of the non-volatile memory, the one or more modified chunks; and

combining the retrieved one or more modified chunks with one or more non-modified chunks stored in the browsable partition of the non-volatile memory to generate a restored file.

16. The data storage device of claim 15 , wherein:

the means for restoring the previous version of the file is configured to locate, using a file location table, the one or more modified chunks stored in the container partition and one or more non-modified chunks stored in the browsable partition;

the file location table includes hash values associated with chunks of data; and

the hash values indicate storage locations of the respective chunks of data.

17. The data storage device of claim 16 , wherein the data storage device is configured to maintain the file location table in the container partition of the non-volatile memory.

18. The data storage device of claim 15 , wherein the means for backing-up the file is configured to maintain, in the browsable partition of the non-volatile memory, a substantially complete current version of each backup file stored in the non-volatile memory.

19. The data storage device of claim 15 , further comprising a controller for the non-volatile memory.

20. The data storage device of claim 19 , wherein the controller comprises the means for backing-up the file and the means for restoring the previous version of the file.

Assignments (8)
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 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2015
From: KOCHAN, LINH; MILLER, SHAWN; DOLAN, MICHAEL A.; ROHR, SEAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 036861/0081 →