IP Library Granted Patent US 11,550,757
Granted Patent B2
US 11,550,757 · App. 17/135,499 · Granted Jan 10, 2023

Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform

Inventors: Benjamin Campbell Smith (Mountain View, CA); David Mackenzie (Daly City, CA); Yiming Lu (Los Altos, CA); Kunal Parmar (San Jose, CA); Peter Potrebic (Calistoga, CA)
Assignee: Box, Inc.
G06F16/178G06F16/184G06F16/273
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,550,757
App. No.
17/135,499
Granted
Jan 10, 2023
Kind
B2
Abstract

Techniques for monitoring local and/or remote file systems by a synchronization component (e.g., client/server) of a cloud-based platform are disclosed. In some embodiments, a method of building synchronization events by a synchronization component (e.g., a synchronization server/client) includes obtaining a set of items that have been changed and their new states and retrieving last known states of the set of items that are stored in a reference snapshot inside a filesystem scanner. The method further includes generating differences between the new states and the last known states of the set of items as item changes and utilizing information provided by the item changes to translate the item changes into synchronization events for execution on the opposing file system. A method of handling failed synchronization events by a synchronization component of the cloud-based platform by collapsing a subsequent event with the failed synchronization event is also disclosed.

Claims (36)

1. A method of handling synchronization events by a synchronization component of a cloud-based platform, comprising:

detecting a first synchronization event associated with a synchronization item;

identifying a second synchronization event associated with the synchronization item, the second synchronization event subsequent to the first synchronization event; and

collapsing the first synchronization event and the second synchronization event into a collapsed synchronization event, wherein the collapsed synchronization event comprises a single event resolving both the first synchronization event and the second synchronization event, wherein the first synchronization event and the second synchronization event are different, and wherein collapsing the first synchronization event into the second synchronization event is based on an event type for each of the first synchronization event and the second synchronization event.

2. The method of claim 1 , further comprising:

re-executing the collapsed synchronization event on an opposing file system.

3. The method of claim 1 , wherein collapsing the second synchronization event with the first synchronization event results in a single operation or no operation, wherein the single operation includes a create operation, a rename operation, a move operation or a delete operation.

4. The method of claim 1 , further comprising:

identifying attributes associated with the first synchronization event.

5. The method of claim 4 , wherein the attributes associated with the first synchronization event include a type of the first synchronization event and a file system corresponding to the first synchronization event.

6. The method of claim 1 , wherein collapsing the first synchronization event and the second synchronization event into the collapsed synchronization event is performed in response to determining the first synchronization event failed.

7. The method of claim 1 , wherein re-executing the collapsed synchronization event on an opposing file system includes:

placing the modified synchronization event into a synchronization event queue for serial processing.

8. A system comprising:

a memory; and

a processor coupled with and readable by the processor and storing therein a set of instructions which, when executed by the processor, causes the processor to handle synchronization events in a cloud-based platform by:

detecting a first synchronization event associated with a synchronization item;

identifying a second synchronization event associated with the synchronization item, the second synchronization event subsequent to the first synchronization event; and

collapsing the first synchronization event and the second synchronization event into a collapsed synchronization event, wherein the collapsed synchronization event comprises a single event resolving both the first synchronization event and the second synchronization event, wherein the first synchronization event and the second synchronization event are different, and wherein collapsing the first synchronization event into the second synchronization event is based on an event type for each of the first synchronization event and the second synchronization event.

9. The system of claim 8 , wherein the instructions further cause the processor to re-execute the collapsed synchronization event on an opposing file system.

10. The system of claim 8 , wherein collapsing the second synchronization event with the first synchronization event results in a single operation or no operation, wherein the single operation includes a create operation, a rename operation, a move operation or a delete operation.

11. The system of claim 8 , wherein the instructions further cause the processor to identify attributes associated with the first synchronization event.

12. The system of claim 11 , wherein the attributes associated with the first synchronization event include a type of the first synchronization event and a file system corresponding to the first synchronization event.

13. The system of claim 8 , wherein collapsing the first synchronization event and the second synchronization event into the collapsed synchronization event is performed in response to determining the first synchronization event failed.

14. The system of claim 8 , wherein re-executing the collapsed synchronization event on an opposing file system includes:

placing the modified synchronization event into a synchronization event queue for serial processing.

15. A non-transitory, computer-readable medium comprising a set of instructions stored therein which, when executed by a processor, causes the processor to handle synchronization events in a cloud-based platform by:

detecting a first synchronization event associated with a synchronization item;

identifying a second synchronization event associated with the synchronization item, the second synchronization event subsequent to the first synchronization event; and

collapsing the first synchronization event and the second synchronization event into a collapsed synchronization event, wherein the collapsed synchronization event comprises a single event resolving both the first synchronization event and the second synchronization event, wherein the first synchronization event and the second synchronization event are different, and wherein collapsing the first synchronization event into the second synchronization event is based on an event type for each of the first synchronization event and the second synchronization event.

16. The non-transitory, computer-readable medium of claim 15 , wherein the instructions further cause the processor to re-execute the collapsed synchronization event on an opposing file system.

17. The non-transitory, computer-readable medium of claim 15 , wherein collapsing the second synchronization event with the first synchronization event results in a single operation or no operation, wherein the single operation includes a create operation, a rename operation, a move operation or a delete operation.

18. The non-transitory, computer-readable medium of claim 15 , wherein the instructions further cause the processor to identify attributes associated with the first synchronization event and wherein the attributes associated with the first synchronization event include a type of the first synchronization event and a file system corresponding to the first synchronization event.

19. The non-transitory, computer-readable medium of claim 15 , wherein collapsing the first synchronization event and the second synchronization event into the collapsed synchronization event is performed in response to determining the first synchronization event failed.

20. The non-transitory, computer-readable medium of claim 15 , wherein re-executing the collapsed synchronization event on an opposing file system includes:

placing the modified synchronization event into a synchronization event queue for serial processing.

Assignments (2)
SECURITY INTEREST Recorded Jul 26, 2023
From: BOX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 064389/0686 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2022
From: SMITH, BENJAMIN CAMPBELL; MACKENZIE, DAVID; LU, YIMING; PARMAR, KUNAL; POTREBIC, PETER
To: BOX, INC.
Reel/Frame 058633/0693 →
Continuity (4)
Continuation 15492201 · Apr 20, 2017
Division 14304038 · Jun 13, 2014
Provisional Application 61834756 · Jun 13, 2013
Related Publication 20210117387A1 · Apr 22, 2021