IP Library Granted Patent US 11,093,344
Granted Patent B2
US 11,093,344 · App. 16/391,243 · Granted Aug 17, 2021

Source volume backup with predictive and lookahead optimizations apparatuses, methods and systems

Inventors: Stuart Mark (Chappaqua, NY); William Robert Speirs, II (Norwalk, CT); Robert Loce (Webster, NY); Robert J. Gibbons, Jr. (Wilton, CT)
Assignee: Datto, Inc.
G06F11/1458G06F3/0604G06F3/0655G06F3/0673
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,093,344
App. No.
16/391,243
Granted
Aug 17, 2021
Kind
B2
Abstract

The Source Volume Backup with Predictive and Lookahead Optimizations Apparatuses, Methods and Systems (“SVBAF”) transforms backup request inputs via SVBAF components into backup response outputs. A set of blocks to be copied from a source volume to a target volume is designated based on predictive optimization settings and copied based on lookahead optimization settings while an operating system is configured to write to the source volume. Blocks of the source volume that were written to by the operating system are identified. A determination is made whether to enter a CoW mode. If the CoW mode should not be entered, the designated set of blocks is changed to include at least one of the identified blocks and a pass is repeated. Otherwise, the operating system is instructed to enter the CoW mode and bring the target volume into a state consistent with a state of the source volume.

Claims (80)

1. A backup apparatus, comprising:

a memory;

a component collection in the memory, including:

a backup processing component;

a processor disposed in communication with the memory, and configured to issue a plurality of processing instructions from the component collection stored in the memory,

wherein the processor issues instructions from the backup processing component, stored in the memory, to:

(a) designate, via at least one processor, a set of one or more blocks to be copied from a source volume to a target volume based on predictive optimization settings associated with a backup request,

the predictive optimization settings determined from historical change frequency analysis of blocks that denote stable blocks with low frequency changes and busy blocks with higher frequency changes,

 the stable blocks designated for copying on initial copy passes and the busy blocks designated for copying on subsequent copy passes;

(b) copy, via at least one processor, at least some of the designated set of one or more blocks from the source volume to the target volume based on lookahead optimization settings associated with the backup request, while an operating system is configured to write to the source volume;

(c) identify, via at least one processor, blocks of the source volume that were written to by the operating system while the operating system was configured to write to the source volume during element (b);

(d) determine, via at least one processor, whether to enter a copy-on-write mode, when one or more blocks were identified in element (c);

(d)(i) change, via at least one processor, the designated set of one or more blocks to be copied from the source volume to the target volume to include at least one of the identified one or more blocks based on the predictive optimization settings and repeat elements (b), (c), and (d), when it is determined that the copy-on-write mode should not be entered;

(d)(ii) instruct, via at least one processor, the operating system to enter the copy-on-write mode and bring the target volume into a state consistent with a state of the source volume at the time the copy-on-write mode was entered, when it is determined that the copy-on-write mode should be entered.

2. The apparatus of claim 1 , further, comprising:

the processor issues instructions from the backup processing component, stored in the memory, to:

determine, via at least one processor, a usage profile associated with the backup request; and

set, via at least one processor, the predictive optimization settings to settings corresponding to the usage profile.

3. The apparatus of claim 2 , further, comprising:

the processor issues instructions from the backup processing component, stored in the memory, to:

retrieve, via at least one processor, performance logs associated with the usage profile; and

determine, via at least one processor, an optimal predictive optimization settings combination based on analysis of the performance logs via a machine learning technique,

wherein the predictive optimization settings are set to the optimal predictive optimization settings combination.

4. The apparatus of claim 1 , wherein the predictive optimization settings specify that stable blocks criteria, which identify blocks on the source volume that are unlikely to change, are utilized to designate the set of one or more blocks to be copied.

5. The apparatus of claim 4 , wherein stable blocks optimization settings specify a set of blocks classified as stable blocks, and wherein blocks other than the stable blocks are not designated in the set of one or more blocks to be copied for a specified number of passes through elements (b), (c), and (d).

6. The apparatus of claim 5 , wherein the stable blocks include blocks that represent at least one of: the operating system, applications, user data.

7. The apparatus of claim 5 , wherein the stable blocks include blocks classified as stable based on analysis of write history associated with blocks on the source volume via a machine learning technique.

8. The apparatus of claim 1 , wherein the predictive optimization settings specify that busy blocks criteria, which identify blocks on the source volume that are likely to change frequently, are utilized to designate the set of one or more blocks to be copied.

9. The apparatus of claim 8 , wherein busy blocks optimization settings specify a set of blocks classified as busy blocks, and wherein the busy blocks are not designated in the set of one or more blocks to be copied for a specified number of passes through elements (b), (c), and (d).

10. The apparatus of claim 9 , wherein the busy blocks include blocks that represent at least one of: database entries, mail server files.

11. The apparatus of claim 9 , wherein the busy blocks include blocks classified as busy based on analysis of write history associated with blocks on the source volume via a statistical technique.

12. The apparatus of claim 1 , wherein the predictive optimization settings specify that historical change frequency criteria, which categorize blocks on the source volume into different frequency types based on analysis of write history, are utilized to designate the set of one or more blocks to be copied.

13. The apparatus of claim 12 , wherein historical change frequency optimization settings specify the number of passes through elements (b), (c), and (d) during which blocks of each frequency type are not designated in the set of one or more blocks to be copied.

14. The apparatus of claim 1 , further, comprising:

the processor issues instructions from the backup processing component, stored in the memory, to:

determine, via at least one processor, a usage profile associated with the backup request; and

set, via at least one processor, the lookahead optimization settings to settings corresponding to the usage profile.

15. The apparatus of claim 14 , further, comprising:

the processor issues instructions from the backup processing component, stored in the memory, to:

retrieve, via at least one processor, performance logs associated with the usage profile; and

determine, via at least one processor, an optimal lookahead optimization settings combination based on analysis of the performance logs via a statistical technique,

wherein the lookahead optimization settings are set to the optimal lookahead optimization settings combination.

16. The apparatus of claim 1 , wherein the lookahead optimization settings specify that accelerated copy optimization is utilized to configure copying of the designated set of one or more blocks.

17. The apparatus of claim 16 , wherein accelerated copy optimization settings specify that blocks on the source volume that changed forward of a current position and that had not been marked as changed blocks at the start of a current pass through elements (b), (c), and (d) are added to the set of one or more blocks to copy.

18. The apparatus of claim 17 , wherein the accelerated copy optimization settings specify a schedule that determines when the accelerated copy optimization is utilized.

19. The apparatus of claim 1 , wherein the lookahead optimization settings specify that delayed copy optimization is utilized to configure copying of the designated set of one or more blocks.

20. The apparatus of claim 19 , wherein delayed copy optimization settings specify that blocks on the source volume that changed forward of a current position and that had been marked as changed blocks at the start of a current pass through elements (b), (c), and (d) are removed from the set of one or more blocks to copy.

21. A processor-readable backup non-transient physical medium storing processor-executable components, the components, comprising:

a component collection stored in the medium, including:

a backup processing component;

wherein the backup processing component, stored in the medium, includes processor-issuable instructions to:

(a) designate, via at least one processor, a set of one or more blocks to be copied from a source volume to a target volume based on predictive optimization settings associated with a backup request,

the predictive optimization settings determined from historical change frequency analysis of blocks that denote stable blocks with low frequency changes and busy blocks with higher frequency changes,

 the stable blocks designated for copying on initial copy passes and the busy blocks designated for copying on subsequent copy passes;

(b) copy, via at least one processor, at least some of the designated set of one or more blocks from the source volume to the target volume based on lookahead optimization settings associated with the backup request, while an operating system is configured to write to the source volume;

(c) identify, via at least one processor, blocks of the source volume that were written to by the operating system while the operating system was configured to write to the source volume during element (b);

(d) determine, via at least one processor, whether to enter a copy-on-write mode, when one or more blocks were identified in element (c);

(d)(i) change, via at least one processor, the designated set of one or more blocks to be copied from the source volume to the target volume to include at least one of the identified one or more blocks based on the predictive optimization settings and repeat elements (b), (c), and (d), when it is determined that the copy-on-write mode should not be entered;

(d)(ii) instruct, via at least one processor, the operating system to enter the copy-on-write mode and bring the target volume into a state consistent with a state of the source volume at the time the copy-on-write mode was entered, when it is determined that the copy-on-write mode should be entered.

22. A processor-implemented backup system, comprising:

a predictive optimization settings determining component means for determining predictive optimization settings; and

a backup processing component means, to:

(a) designate a set of one or more blocks to be copied from a source volume to a target volume based on predictive optimization settings associated with a backup request,

the predictive optimization settings determined from historical change frequency analysis of blocks that denote stable blocks with low frequency changes and busy blocks with higher frequency changes,

the stable blocks designated for copying on initial copy passes and the busy blocks designated for copying on subsequent copy passes;

(b) copy at least some of the designated set of one or more blocks from the source volume to the target volume based on lookahead optimization settings associated with the backup request, while an operating system is configured to write to the source volume;

(c) identify blocks of the source volume that were written to by the operating system while the operating system was configured to write to the source volume during element (b);

(d) determine whether to enter a copy-on-write mode, when one or more blocks were identified in element (c);

(d)(i) change the designated set of one or more blocks to be copied from the source volume to the target volume to include at least one of the identified one or more blocks based on the predictive optimization settings and repeat elements (b), (c), and (d), when it is determined that the copy-on-write mode should not be entered;

(d)(ii) instruct the operating system to enter the copy-on-write mode and bring the target volume into a state consistent with a state of the source volume at the time the copy-on-write mode was entered, when it is determined that the copy-on-write mode should be entered.

23. A processor-implemented backup method, comprising:

executing processor-implemented backup processing component instructions to:

(a) designate, via at least one processor, a set of one or more blocks to be copied from a source volume to a target volume based on predictive optimization settings associated with a backup request,

the predictive optimization settings determined from historical change frequency analysis of blocks that denote stable blocks with low frequency changes and busy blocks with higher frequency changes,

the stable blocks designated for copying on initial copy passes and the busy blocks designated for copying on subsequent copy passes;

(b) copy, via at least one processor, at least some of the designated set of one or more blocks from the source volume to the target volume based on lookahead optimization settings associated with the backup request, while an operating system is configured to write to the source volume;

(c) identify, via at least one processor, blocks of the source volume that were written to by the operating system while the operating system was configured to write to the source volume during element (b);

(d) determine, via at least one processor, whether to enter a copy-on-write mode, when one or more blocks were identified in element (c);

(d)(i) change, via at least one processor, the designated set of one or more blocks to be copied from the source volume to the target volume to include at least one of the identified one or more blocks based on the predictive optimization settings and repeat elements (b), (c), and (d), when it is determined that the copy-on-write mode should not be entered;

(d)(ii) instruct, via at least one processor, the operating system to enter the copy-on-write mode and bring the target volume into a state consistent with a state of the source volume at the time the copy-on-write mode was entered, when it is determined that the copy-on-write mode should be entered.

Assignments (8)
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 24, 2025
From: DATTO, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS SECOND LIEN COLLATERAL AGENT
Reel/Frame 070609/0599 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 21, 2025
From: DATTO, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 070586/0681 →
RELEASE OF SECURITY INTEREST (PATENTS) Recorded Mar 20, 2025
From: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
To: DATTO, INC.
Reel/Frame 070583/0566 →
CHANGE OF NAME Recorded Oct 27, 2023
From: DATTO, INC.
To: DATTO, LLC
Reel/Frame 065385/0256 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Aug 9, 2022
From: DATTO, INC.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 061129/0839 →
RELEASE OF SECURITY INTEREST Recorded Jun 23, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: DATTO, INC.; AUTOTASK CORPORATION; OPEN MESH, INC.; SOONR, INC.
Reel/Frame 060293/0565 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: DATTO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 054191/0984 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2019
From: MARK, STUART; SPEIRS II, WILLIAM ROBERT; LOCE, ROBERT; GIBBONS, ROBERT J., JR.
To: DATTO, INC.
Reel/Frame 048977/0649 →
Continuity (4)
Continuation In Part 16391205 · Apr 22, 2019
Continuation In Part 16055347 · Aug 6, 2018
Provisional Application 62541952 · Aug 7, 2017
Related Publication 20190250995A1 · Aug 15, 2019