IP Library Granted Patent US 10,635,638
Granted Patent B2
US 10,635,638 · App. 13/801,158 · Granted Apr 28, 2020

Systems, methods and media for deferred synchronization of files in cloud storage client device

Inventor: Ian McLean (Lymm, GB)
Assignee: Ivanti US LLC
G06F16/1734G06F16/178G06F16/1824
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,635,638
App. No.
13/801,158
Granted
Apr 28, 2020
Kind
B2
Abstract

Systems, methods and media are provided for deferred synchronization of files in cloud storage systems. One method includes detecting changes to a data file. The method also includes monitoring I/O operations performed by a process associated with the changes. When the process is busy, the method also includes adding to an upload file list a name of a first file in response to a creation/modification of the first file. The method further includes adding to the list a new name of a second file and, when applicable, removing from the list an old name of the second file in response to renaming the second file. The method also includes removing from the list a name of a third file in response to a deletion of the third file and uploading files identifiable using file names in the list to the cloud storage server when the process is no longer busy.

Claims (68)

1. A method, comprising:

detecting a change to content of a first file stored on a device connected to a cloud storage server, the first file having a first name;

determining an operation load of a process associated with the change to the content of the first file based on a number of operations performed by the process;

monitoring the process for a plurality of operations;

determining that a first operation from the plurality of operations renames the first file from the first name of the first file to a second name of the first file;

in response to determining that the first operation renames the first file, adding to an upload file list the second name of the first file;

determining that a second operation from the plurality of operations creates or modifies a second file;

in response to determining that the second operation creates or modifies the second file, adding to the upload file list a first name of the second file;

determining that a third operation from the plurality of operations renames the second file from the first name of the second file to a second name of the second file;

in response to determining that the third operation renames the second file:

adding to the upload file list the second name of the second file; and

removing from the upload file list the first name of the second file;

determining that a fourth operation from the plurality of operations deletes the first file; and

in response to determining that the fourth operation deletes the first file, removing from the upload file list the second name of the first file such that the upload file list includes the second name of the second file and does not include either the second name of the first file or the first name of the second file; and

uploading to the cloud storage server, after removing from the upload file list the second name of the first file, the second file based on the upload file list including the second name of the second file.

2. The method of claim 1 , wherein the first file is stored in a directory on the device, and the directory is managed by a cloud storage service program configured to run a background process.

3. The method of claim 1 , wherein the first file and the second file each includes at least one of a document file, an image file, an executable file, a graphics file, an animation file, an object file, a database file and a text file.

4. The method of claim 1 , wherein the process is associated with a running instance of an application program.

5. The method of claim 1 , wherein the second file includes the content of the first file and the change to the content of the first file.

6. The method of claim 5 , wherein the second name of the second file corresponds to the first name of the first file such that the second file, when uploaded to the cloud storage server, replaces a copy of the first file stored on the cloud storage server.

7. The method of claim 6 , wherein the first file is renamed before the second file is renamed.

8. The method of claim 7 , wherein the first file is deleted after the second file is renamed.

9. The method of claim 1 , wherein the upload file list includes at least one of a queue, a linked list and a text file.

10. An apparatus, comprising:

one or more interfaces configured to provide communication with one or more devices over a network; and

a processor, in communication with the one or more interfaces, configured to run a cloud storage management module stored in memory that is configured to:

detect a change to content of a first file stored on a device connected to a cloud storage server, the first file having a first name;

determine a first operation load of a process associated with the change to the content of the first file using a load-measuring heuristic that calculates the first operation load of the process based on (1) a number of operations performed by the process at a first time, (2) a second operation load of the process associated with a second time and being non-zero, and (3) a multiplier applied to the second operation load of the process;

in response to the first operation load of the process indicating that the process is busy:

monitor a plurality of operations associated with the process;

determine that a first operation from the plurality of operations renames the first file from the first name of the first file to a second name of the first file;

in response to determining that the first operation renames the first file, add to an upload file list the second name of the first file;

determine that a second operation from the plurality of operations creates or modifies a second file;

in response to determining that the second operation creates or modifies the second file, add to the upload file list a first name of the second file;

determine that a third operation from the plurality of operations renames the second file from the first name of the second file to a second name of the second file;

in response to determining that the third operation renames the second file:

add to the upload file list the second name of the second file; and

remove from the upload file list the first name of the second file;

determine that a fourth operation from the plurality of operations deletes the first file; and

in response to determining that the fourth operation deletes the first file, remove from the upload file list the second name of the first file; and

in response to the first operation load of the process not indicating that the process is busy, upload to the cloud storage server the second file based on the upload file list including the second name of the second file.

11. The apparatus of claim 10 , wherein the second file includes the content of the first file and the change to the content of the first file.

12. The apparatus of claim 11 , wherein the second name of the second file corresponds to the first name of the first file such that the second file, when uploaded to the cloud storage server, replaces a copy of the first file stored on the cloud storage server.

13. The apparatus of claim 12 , wherein the first file is renamed before the second file is renamed.

14. The apparatus of claim 13 , wherein the first file is deleted after the second file is renamed.

15. The apparatus of claim 10 , wherein the load-measuring heuristic calculates the first operation load of the process associated with the first time using an equation L t =F t +H*L t−1 , where

L t is the first operation load of the process,

F t is the number of operations performed by the process at the first time,

H is the multiplier, and

L t−1 is the second operation load of the process associated with the second time.

16. A non-transitory computer readable medium having executable instructions operable to cause an apparatus to:

detect a change to content of a first file stored on a device connected to a cloud storage server, the first file having a first name;

monitor a plurality of operations associated with a process associated with the change to the content of the first file;

determine that a first operation from the plurality of operations renames the first file from the first name of the first file to a second name of the first file;

in response to determining that the first operation renames the first file, add to an upload file list the second name of the first file, the upload file list including one or more names of files and not information indicating one or more operations performed to files;

determine that a second operation from the plurality of operations creates or modifies a second file;

in response to determining that the second operation creates or modifies the second file, add to the upload file list a first name of the second file;

determine that a third operation from the plurality of operations renames the second file from the first name of the second file to a second name of the second file;

in response to determining that the third operation renames the second file:

add to the upload file list the second name of the second file; and

remove from the upload file list the first name of the second file;

determine that a fourth operation from the plurality of operations deletes the first file;

in response to determining that the fourth operation deletes the first file, remove from the upload file list the second name of the first file; and

upload to the cloud storage server the second file based on the upload file list including the second name of the second file.

17. The computer readable medium of claim 16 , wherein the second file includes the content of the first file and the change to the content of the first file.

18. The computer readable medium of claim 17 , wherein the second name of the second file corresponds to the first name of the first file such that the second file, when uploaded to the cloud storage server, replaces a copy of the first file stored on the cloud storage server.

19. The computer readable medium of claim 18 , wherein the first file is deleted after the second file is renamed.

20. The computer readable medium of claim 18 , wherein the uploading occurs after the second name of the second file remains on the upload file list for a predetermined period of time.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
SECURITY INTEREST Recorded May 2, 2025
From: IVANTI, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071164/0482 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 43971/0495 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: APPSENSE US LLC
Reel/Frame 054560/0278 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 43971/0549 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: APPSENSE US LLC
Reel/Frame 054560/0389 →
CHANGE OF NAME Recorded Mar 5, 2019
From: APPSENSE US LLC
To: IVANTI US LLC
Reel/Frame 048511/0832 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 15, 2017
From: APPSENSE US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 043971/0495 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 15, 2017
From: APPSENSE US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 043971/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2017
From: APPSENSE LIMITED
To: APPSENSE US LLC
Reel/Frame 043406/0821 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 038333/0821 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: APPSENSE LIMITED
Reel/Frame 040171/0172 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 038333/0879 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: APPSENSE LIMITED
Reel/Frame 040169/0981 →
SECURITY INTEREST Recorded Apr 20, 2016
From: APPSENSE LIMITED
To: JEFFERIES FINANCE LLC
Reel/Frame 038333/0879 →
SECURITY INTEREST Recorded Apr 20, 2016
From: APPSENSE LIMITED
To: JEFFERIES FINANCE LLC
Reel/Frame 038333/0821 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2013
From: MCLEAN, IAN
To: APPSENSE LIMITED
Reel/Frame 030410/0148 →