IP Library Granted Patent US 11,003,545
Granted Patent B2
US 11,003,545 · App. 16/442,514 · Granted May 11, 2021

User space incremental tracking apparatuses, methods and systems

Inventors: Faury Francisco Rodriguez (Norwalk, CT); Jess Gentner (Rochester, NY)
Assignee: Datto, Inc
G06F11/1451G06F9/545G06F11/1469G06F11/3034G06F16/2358
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,003,545
App. No.
16/442,514
Granted
May 11, 2021
Kind
B2
Abstract

The User Space Incremental Tracking Apparatuses, Methods and Systems (“USIT”) transforms backup driver installation request, backup data store request inputs via USIT components into backup driver installation response, backup data store response outputs. A new most recent activity entry in a file system journal associated with a data volume is determined by a user space tracking agent. Newly changed files on the data volume are determined by processing journal entries between a previous most recent activity entry, as indicated by a last entry marker, and the new most recent activity entry. Changed data blocks associated with the newly changed files are determined. The changed data blocks are marked as changed in a tracking store. The last entry marker is updated to reflect the new most recent activity entry. Data blocks flagged as changed are sent to a backup device. The sent data blocks are marked as unchanged.

Claims (82)

1. A user space incremental backup apparatus, comprising:

a memory;

a component collection in the memory, including:

a changed file to changed block tracking 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 changed file to changed block tracking component, stored in the memory, to:

determine, via at least one processor, by a user space tracking agent, a new most recent activity entry in a file system journal associated with a data volume;

determine, via at least one processor, by the user space tracking agent, newly changed files on the data volume by processing journal entries between a previous most recent activity entry in the file system journal, as indicated by a last entry marker maintained by the user space tracking agent, and the new most recent activity entry in the file system journal;

determine, via at least one processor, by the user space tracking agent, changed data blocks associated with the newly changed files on the data volume;

mark, via at least one processor, by the user space tracking agent, the changed data blocks as changed in a tracking store maintained by the user space tracking agent;

update, via at least one processor, by the user space tracking agent, the last entry marker maintained by the user space tracking agent to reflect the new most recent activity entry in the file system journal;

send, via at least one processor, data blocks flagged as changed in the tracking store maintained by the user space tracking agent to a backup device; and

mark, via at least one processor, by the user space tracking agent, the sent data blocks as unchanged in the tracking store maintained by the user space tracking agent.

2. The apparatus of claim 1 , wherein the data volume is associated with a non-functional kernel-based changed block tracking backup agent that becomes functional upon an operating system reboot.

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

the processor issues instructions from the changed file to changed block tracking component, stored in the memory, to:

determine, via at least one processor, a sufficiently large journal history size to track activity on the data volume; and

set, via at least one processor, journal history size of the file system journal to the determined journal history size.

4. The apparatus of claim 3 , wherein the journal history size is determined based on at least one of: number of files on the data volume, size of the data volume, expected utilization of the data volume.

5. The apparatus of claim 1 , wherein the newly changed files determined by the user space tracking agent are filtered to include files selected for backup and to exclude files not selected for backup.

6. The apparatus of claim 1 , wherein the instructions to determine changed data blocks associated with a newly changed file further comprise instructions to determine data blocks of the newly changed file that were modified.

7. The apparatus of claim 1 , wherein the instructions to determine changed data blocks associated with a newly changed file further comprise instructions to determine each data block of the newly changed file.

8. The apparatus of claim 1 , wherein the instructions to mark a data block as changed further comprise instructions to flag a bit corresponding to the data block in a changed data blocks bitmap maintained by the user space tracking agent.

9. The apparatus of claim 8 , wherein the instructions to mark the data block as unchanged further comprise instructions to clear the bit corresponding to the data block in the changed data blocks bitmap maintained by the user space tracking agent.

10. The apparatus of claim 1 , wherein the backup device is at least one of: a local appliance, a remote server, cloud storage.

11. The apparatus of claim 1 , wherein the instructions to mark the changed data blocks as changed further comprise instructions to:

determine that there exist changes to file system metadata unreported by the file system journal; and

mark data blocks associated with the data volume's NTFS master file table as changed in the tracking store.

12. The apparatus of claim 1 , wherein the instructions to mark the changed data blocks as changed further comprise instructions to:

determine that there exist file system independent changes unreported by the file system journal;

analyze supplemental file system transaction logs of the data volume to determine additional changed data blocks; and

mark the additional changed data blocks as changed in the tracking store.

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

the processor issues instructions from the changed file to changed block tracking component, stored in the memory, to:

determine, via at least one processor, by the user space tracking agent, that an operating system reboot occurred; and

transfer, via at least one processor, by the user space tracking agent, control to the kernel-based changed block tracking backup agent.

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

the processor issues instructions from the changed file to changed block tracking component, stored in the memory, to:

verify, via at least one processor, by the user space tracking agent, that the kernel-based changed block tracking backup agent is functional for the data volume prior to transferring control to the kernel-based changed block tracking backup agent.

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

the processor issues instructions from the changed file to changed block tracking component, stored in the memory, to:

transfer, via at least one processor, information regarding changed data blocks recorded in the tracking store maintained by the user space tracking agent to a tracking store maintained by the kernel-based changed block tracking backup agent.

16. A processor-readable user space incremental backup non-transient physical medium storing processor-executable components, the components, comprising:

a component collection stored in the medium, including:

a changed file to changed block tracking component;

wherein the changed file to changed block tracking component, stored in the medium, includes processor-issuable instructions to:

determine, via at least one processor, by a user space tracking agent, a new most recent activity entry in a file system journal associated with a data volume;

determine, via at least one processor, by the user space tracking agent, newly changed files on the data volume by processing journal entries between a previous most recent activity entry in the file system journal, as indicated by a last entry marker maintained by the user space tracking agent, and the new most recent activity entry in the file system journal;

determine, via at least one processor, by the user space tracking agent, changed data blocks associated with the newly changed files on the data volume;

mark, via at least one processor, by the user space tracking agent, the changed data blocks as changed in a tracking store maintained by the user space tracking agent;

update, via at least one processor, by the user space tracking agent, the last entry marker maintained by the user space tracking agent to reflect the new most recent activity entry in the file system journal;

send, via at least one processor, data blocks flagged as changed in the tracking store maintained by the user space tracking agent to a backup device; and

mark, via at least one processor, by the user space tracking agent, the sent data blocks as unchanged in the tracking store maintained by the user space tracking agent.

17. A processor-implemented user space incremental backup system, comprising:

a changed file to changed block tracking component means, to:

determine, via at least one processor, by a user space tracking agent, a new most recent activity entry in a file system journal associated with a data volume;

determine, via at least one processor, by the user space tracking agent, newly changed files on the data volume by processing journal entries between a previous most recent activity entry in the file system journal, as indicated by a last entry marker maintained by the user space tracking agent, and the new most recent activity entry in the file system journal;

determine, via at least one processor, by the user space tracking agent, changed data blocks associated with the newly changed files on the data volume;

mark, via at least one processor, by the user space tracking agent, the changed data blocks as changed in a tracking store maintained by the user space tracking agent;

update, via at least one processor, by the user space tracking agent, the last entry marker maintained by the user space tracking agent to reflect the new most recent activity entry in the file system journal; and

send, via at least one processor, data blocks flagged as changed in the tracking store maintained by the user space tracking agent to a backup device.

18. A processor-implemented user space incremental backup method, comprising:

executing processor-implemented changed file to changed block tracking component instructions to:

determine, via at least one processor, by a user space tracking agent, a new most recent activity entry in a file system journal associated with a data volume;

determine, via at least one processor, by the user space tracking agent, newly changed files on the data volume by processing journal entries between a previous most recent activity entry in the file system journal, as indicated by a last entry marker maintained by the user space tracking agent, and the new most recent activity entry in the file system journal;

determine, via at least one processor, by the user space tracking agent, changed data blocks associated with the newly changed files on the data volume;

mark, via at least one processor, by the user space tracking agent, the changed data blocks as changed in a tracking store maintained by the user space tracking agent;

update, via at least one processor, by the user space tracking agent, the last entry marker maintained by the user space tracking agent to reflect the new most recent activity entry in the file system journal;

send, via at least one processor, data blocks flagged as changed in the tracking store maintained by the user space tracking agent to a backup device; and

mark, via at least one processor, by the user space tracking agent, the sent data blocks as unchanged in the tracking store maintained by the user space tracking agent.

19. The method of claim 18 , wherein the data volume is associated with a non-functional kernel-based changed block tracking backup agent that becomes functional upon an operating system reboot.

20. The method of claim 18 , further, comprising:

executing processor-implemented changed file to changed block tracking component instructions to:

determine, via at least one processor, a sufficiently large journal history size to track activity on the data volume; and

set, via at least one processor, journal history size of the file system journal to the determined journal history size.

21. The method of claim 19 , further, comprising:

executing processor-implemented changed file to changed block tracking component instructions to:

determine, via at least one processor, by the user space tracking agent, that an operating system reboot occurred; and

transfer, via at least one processor, by the user space tracking agent, control to the kernel-based changed block tracking backup agent.

22. The method of claim 21 , further, comprising:

executing processor-implemented changed file to changed block tracking component instructions to:

transfer, via at least one processor, information regarding changed data blocks recorded in the tracking store maintained by the user space tracking agent to a tracking store maintained by the kernel-based changed block tracking backup agent.

Assignments (6)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2021
From: RODRIGUEZ, FAURY FRANCISCO; GENTNER, JESS
To: DATTO, INC.
Reel/Frame 054897/0716 →