IP Library Granted Patent US 8,078,930
Granted Patent B2
US 8,078,930 · App. 12/839,309 · Granted Dec 13, 2011

Methods and apparatus for modifying a backup data stream including logical partitions of data blocks to be provided to a fixed position delta reduction backup application

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,078,930
App. No.
12/839,309
Granted
Dec 13, 2011
Kind
B2
Abstract

In accordance with one embodiment, a backup data stream is modified to be provided to a fixed position delta reduction backup method. When a data stream is received, the data stream may be parsed into a plurality of logical components, where each of the logical components includes one or more data blocks. Missing data blocks may also be detected in the data stream, and therefore may be detected in each of the plurality of logical components. For instance, each of the logical components may be separated into a separate data stream for which missing data blocks may be detected. A temporary data block is then inserted where each missing data block is detected (e.g., in each of the plurality of logical components). In this manner, inefficiencies introduced into a fixed position delta reduction backup process as a result of new or deleted data in a system implementing a plurality of data blocks which may be stored in the form of logical components are eliminated.

Claims (84)

1. A method of modifying a data stream of backup data to be provided to a fixed length fixed position delta reduction backup method, comprising:

receiving the data stream;

parsing the data stream into a plurality of logical components, at least one of the plurality of logical components including one or more data blocks;

detecting missing data blocks in the plurality of logical components; and

inserting a temporary data block where each missing data block has been detected in each of the plurality of logical components, thereby generating one or more modified data streams.

2. The method as recited in claim 1 , wherein each of the data blocks is a fixed length data block such that the length of each of the data blocks is identical.

3. The method as recited in claim 2 , wherein the temporary data block is a fixed length data block having a length that is identical to the length of each of the data blocks.

4. The method as recited in claim 1 , wherein each of the data blocks is a fixed length data block such that the length of each of the data blocks is fixed over time.

5. The method as recited in claim 1 , further comprising:

providing the modified data streams to a fixed position delta reduction backup application.

6. The method as recited in claim 1 , further comprising:

backing up the modified data streams using a fixed position delta reduction method.

7. The method as recited in claim 1 , wherein each of the plurality of logical components is a logical component of a data file or database.

8. The method as recited in claim 7 , wherein the database is a SQL database.

9. The method as recited in claim 1 , wherein parsing the data stream into a plurality of logical components comprises:

splitting the data stream into a plurality of data streams, each of the plurality of data streams corresponding to a different one of the plurality of logical components.

10. The method as recited in claim 9 , wherein inserting a temporary data block for each missing data block that has been detected in the plurality of logical components comprises:

inserting a temporary data block in the plurality of data streams for each missing data block that has been detected for the corresponding logical component.

11. The method as recited in claim 10 , further comprising:

providing the plurality of data streams to a fixed position delta reduction backup method adapted for updating backup data stored in a previous backup session.

12. The method as recited in claim 10 , further comprising:

removing each temporary data block from each of the plurality of data streams; and

concatenating the plurality of data streams corresponding to the plurality of logical components.

13. The method as recited in claim 12 , further comprising:

concatenating remaining data blocks in each of the plurality of data streams.

14. The method as recited in claim 9 , wherein detecting and inserting are performed for each of the plurality of data streams.

15. The method as recited in claim 1 , wherein detecting missing data blocks comprises:

comparing sequential information for data blocks in each of the logical components in the data stream with previously stored sequential information for data blocks in each of the logical components in a previous data stream of backup data.

16. The method as recited in claim 1 , wherein detecting missing data blocks comprises:

identifying each data block corresponding to each of the logical components that has been identified as present in the data stream in a previously received data stream of backup data; and

determining whether each identified data block is present in the data stream.

17. The method as recited in claim 1 , wherein detecting missing data blocks comprises:

identifying each data block corresponding to each of the logical components that has been identified as present in the data stream.

18. The method as recited in claim 17 , wherein each data block is identified by an indicator of a sequential order of the data block among a plurality of data blocks within the corresponding one of the logical components.

19. The method as recited in claim 18 , further comprising:

detecting the missing data blocks using the indicators associated with the data blocks that have been identified as present in the data stream such that the missing data blocks have indicators of sequential order that are not present in the data stream.

20. The method as recited in claim 18 , wherein the indicator of the sequential order of the data block among the plurality of data blocks within the corresponding one of the plurality of components further indicates a placement of the data block with respect to the plurality of data blocks within the corresponding one of the plurality of data blocks.

21. The method as recited in claim 18 , further comprising:

obtaining the indicator of the sequential order of the data block among the plurality of data blocks from the data block.

22. The method as recited in claim 21 , further comprising:

storing the indicator of the sequential order for each data block that is present in the data stream for each of the logical components.

23. The method as recited in claim 1 , wherein parsing comprises:

identifying each of the plurality of logical components using a header corresponding to each of the plurality of logical components.

24. The method as recited in claim 1 , wherein each data block is identified by an indicator of a sequential order of the data block among a plurality of data blocks within the corresponding one of the logical components, wherein parsing comprises:

identifying each of the plurality of logical components using the indicator of sequential order of the plurality of data blocks.

25. The method as recited in claim 1 , wherein the temporary data block includes a header indicating that the temporary data block is to be removed during restore of the backup data.

26. The method as recited in claim 1 , further comprising:

removing each temporary data block from each of the modified data streams; and

concatenating the modified data streams corresponding to the plurality of logical components.

27. The method as recited in claim 26 , further comprising:

concatenating remaining data blocks in each of the modified data streams.

28. The method as recited in claim 26 , further comprising:

obtaining the modified data streams from a fixed position delta reduction backup method.

29. The method as recited in claim 1 , wherein each of the missing data blocks has been assigned a sequential identifier within a sequence of a plurality of data blocks, wherein detecting missing data blocks in the plurality of logical components comprises:

identifying each sequential identifier within the sequence that is missing from the plurality of logical components.

30. The method as recited in claim 1 , wherein each of the missing data blocks has been previously recorded during a previous backup, but is detected as not present in the plurality of logical components.

31. The method as recited in claim 1 , wherein the temporary data block includes null bytes.

32. The method as recited in claim 1 , wherein the temporary data block includes a header indicating that the temporary data block is temporary.

33. A computer-readable medium storing thereon computer-readable instructions for modifying a data stream of backup data to be provided to a fixed length fixed position delta reduction backup method, comprising:

instructions for receiving the data stream;

instructions for parsing the data stream into a plurality of logical components, at least one of the plurality of logical components including one or more data blocks;

instructions for detecting missing data blocks in the plurality of logical components; and

instructions for inserting a temporary data block where each missing data block has been detected in each of the plurality of logical components, thereby generating one or more modified data streams.

34. An apparatus for modifying a data stream of backup data to be provided to a fixed length fixed position delta reduction backup method, comprising:

a processor; and

a memory, at least one of the processor and the memory being adapted for:

receiving the data stream;

parsing the data stream into a plurality of logical components, at least one of the plurality of logical components including one or more data blocks;

detecting missing data blocks in the plurality of logical components; and

inserting a temporary data block where each missing data block has been detected in each of the plurality of logical components, thereby generating one or more modified data streams.

35. A method of modifying a data stream of backup data to be provided to a fixed length fixed position delta reduction backup method, comprising:

detecting missing data blocks in the data stream, the data stream corresponding to at least a portion of a data file or database; and

inserting a temporary data block in the data stream where each missing data block has been detected in the data stream, thereby generating one or more modified data streams.

36. The method as recited in claim 35 , wherein each data block in the data stream is a fixed length data block such that the length of each of the data blocks is identical.

37. The method as recited in claim 36 , wherein the length of the temporary data block is identical to the length of each of the data blocks.

38. The method as recited in claim 35 , wherein each data block in the data stream is a fixed length data block such that the length of each of the data blocks is fixed over time.

39. A computer-readable medium storing thereon computer-readable instructions for modifying a data stream of backup data to be provided to a fixed length fixed position delta reduction backup method, comprising:

instructions for detecting missing data blocks in the data stream of backup data, the data stream of backup data corresponding to at least a portion of a data file or database; and

instructions for inserting a temporary data block in the data stream where each missing data block has been detected in the data stream, thereby generating one or more modified data streams.

40. An apparatus for modifying a data stream of backup data to be provided to a fixed length fixed position delta reduction backup method, comprising:

a processor; and

a memory, at least one of the processor and the memory being adapted for:

detecting missing data blocks in the data stream of backup data, the data stream of backup data corresponding to at least a portion of a data file or database; and

inserting a temporary data block in the data stream where each missing data block has been detected in the data stream, thereby generating one or more modified data streams.

Assignments (14)
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2025
From: THE BANK OF NOVA SCOTIA
To: SEAGATE TECHNOLOGY US HOLDINGS, INC.; EVAULT, INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY LLC
Reel/Frame 070363/0903 →
RELEASE OF SECURITY INTEREST Recorded Jul 23, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: SEAGATE TECHNOLOGY LLC; EVAULT INC
Reel/Frame 068457/0076 →
RELEASE OF SECURITY INTEREST Recorded May 20, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: SEAGATE TECHNOLOGY LLC; EVAULT, INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY US HOLDINGS, INC.
Reel/Frame 067471/0955 →
CERTIFICATE OF CONVERSION Recorded Oct 12, 2023
From: CARBONITE, INC.
To: CARBONITE, LLC
Reel/Frame 065222/0303 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Oct 12, 2023
From: CARBONITE, LLC
To: OPEN TEXT INC.
Reel/Frame 065222/0310 →
TERMINATION OF PATENT SECURITY AGREEMENT FILED AT R/F 045640/0335 Recorded Mar 26, 2019
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: CARBONITE, INC.
Reel/Frame 048702/0929 →
SECURITY INTEREST Recorded Mar 19, 2018
From: CARBONITE, INC.
To: SILICON VALLEY BANK
Reel/Frame 045640/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2016
From: EVAULT, INC.
To: CARBONITE GMBH
Reel/Frame 037617/0911 →
RELEASE OF SECURITY INTEREST Recorded Dec 18, 2015
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: EVAULT, INC.
Reel/Frame 037334/0844 →
RELEASE OF SECURITY INTEREST Recorded Dec 14, 2015
From: THE BANK OF NOVA SCOTIA, AS ADMINSTRATIVE AGENT
To: EVAULT, INC.
Reel/Frame 037281/0084 →
RELEASE OF SECURITY INTEREST Recorded Dec 11, 2015
From: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT
To: EVAULT, INC. (F/K/A I365 INC.)
Reel/Frame 037275/0869 →
SECURITY AGREEMENT Recorded Oct 15, 2012
From: SEAGATE TECHNOLOGY LLC; EVAULT, INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY US HOLDINGS, INC.
To: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT
Reel/Frame 029127/0527 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 15, 2012
From: SEAGATE TECHNOLOGY LLC; EVAULT, INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY US HOLDINGS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 029253/0585 →
CHANGE OF NAME Recorded Jan 10, 2012
From: I365 INC.
To: EVAULT, INC.
Reel/Frame 027508/0769 →