IP Library Granted Patent US 10,877,937
Granted Patent B2
US 10,877,937 · App. 15/492,201 · Granted Dec 29, 2020

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 10,877,937
App. No.
15/492,201
Granted
Dec 29, 2020
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 (37)

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

detecting a failed synchronization event associated with a synchronization item;

determining a failure reason associated with the failed synchronization event;

identifying a subsequent synchronization event based on the failure reason; and

collapsing the failed synchronization event and the identified subsequent synchronization event into a collapsed synchronization event, wherein the collapsed synchronization event comprises a single event resolving both the failed synchronization event and the identified subsequent synchronization event, wherein the failed synchronization event and the identified subsequent synchronization event are different, and wherein collapsing the failed synchronization event into the identified subsequent synchronization event is based on an event type for each of the failed synchronization event and the identified subsequent 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 when the failure reason includes name conflict, the subsequent synchronization event includes a rename event.

4. The method of claim 1 , wherein when the failure reason includes missing synchronization item on a source filesystem, the subsequent synchronization event includes a delete event.

5. The method of claim 1 , wherein when the failure reason includes change in the synchronization item when deleting the synchronization item on the opposing file system, the subsequent synchronization event includes a create event.

6. The method of claim 1 , wherein collapsing the subsequent synchronization event with the failed 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.

7. The method of claim 1 , further comprising:

identifying attributes associated with the failed synchronization event.

8. The method of claim 7 , wherein the attributes associated with the failed synchronization event include a type of the failed synchronization event, a file system corresponding to the failed synchronization event, and the failure reason associated with the failed synchronization event.

9. The method of claim 1 , wherein the failure reason includes at least one of: a network communication failure, expiry of an authorization token, or a quota failure.

10. 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.

11. A system for handling failed synchronization events associated with a cloud-based platform, comprising:

a memory;

a processor in communication with the memory and configured to execute instructions stored in the memory to:

detect a failed synchronization event associated with a synchronization item;

determine a failure reason associated with the failed synchronization event;

identify a subsequent synchronization event based on the failure reason; and

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

12. The system of claim 11 , wherein the processor is further configured to: re-execute the collapsed synchronization event on an opposing file system.

13. The system of claim 11 , wherein when the failure reason includes name conflict, the subsequent synchronization event includes a rename event.

14. The system of claim 11 , wherein when the failure reason includes missing synchronization item on a source filesystem, the subsequent synchronization event includes a delete event.

15. The system of claim 11 , wherein when the failure reason includes change in the synchronization item when deleting the synchronization item on the opposing file system, the subsequent synchronization event includes a create event.

16. A computer-readable medium having stored thereon a set of instructions which when executed perform a method, comprising:

detecting a failed synchronization event associated with a synchronization item;

determining a failure reason associated with the failed synchronization event;

identifying a subsequent synchronization event based on the failure reason; and

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

17. The method of claim 16 , further comprising:

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

18. The method of claim 16 , wherein when the failure reason includes name conflict, the subsequent synchronization event includes a rename event.

19. The method of claim 16 , wherein when the failure reason includes missing synchronization item on a source filesystem, the subsequent synchronization event includes a delete event.

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 May 9, 2017
From: SMITH, BENJAMIN CAMPBELL; MACKENZIE, DAVID; LU, YIMING; PARMAR, KUNAL; POTREBIC, PETER
To: BOX, INC.
Reel/Frame 042308/0359 →
Continuity (3)
Division 14304038 · Jun 13, 2014
Provisional Application 61834756 · Jun 13, 2013
Related Publication 20170220596A1 · Aug 3, 2017