File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
First Claim
1. A method for resolving race conditions when updating synchronization clients with what occurred in a cloud-based platform, the method comprising:
- in response to receiving, at a synchronization client, an event which represents that a modification to an item has taken place on the cloud-based platform, identifying whether execution of the event is to violate any local file system rule;
if the execution of the event is not to violate any local file system rule, executing the event, wherein executing the event includes;
comparing a sequence identifier (ID) of the event with a current sequence ID of the item in the synchronization client,dropping the event in case the sequence ID of the event is lower than the current sequence ID of the item in the synchronization client,executing the event in case the sequence ID of the event is higher than the current sequence ID of the item in the synchronization client, wherein the executing further includes generating one or more events at the synchronization client to make a state of the item at the synchronization client the same as the state of the item indicated by the event; and
if the execution of the event is to violate any local file system rule at the synchronization client, buffering the event at the synchronization client until a subsequent event arrives, wherein buffering the event further includes;
discarding the event if the event remains buffered over a select amount of time,determining that the item is associated with a specified folder of a folder tree structure in the cloud-based platform, the folder-tree structure including multiple folders that are organized into multiple levels of hierarchy, andrequesting a partial scan of the folder-tree structure in the cloud-based platform when a specified folder is moved from a first path to a second path in the folder-tree structure, instead of a full scan, the partial scan generating a synchronization event for a lowest partially synchronized folder in;
the first path that had the specified folder before the move, andthe second path that has the specified folder after the move.
4 Assignments
0 Petitions
Accused Products
Abstract
Techniques are disclosed for file system monitoring in a system which incrementally updates clients with what occurred in a cloud-enabled platform. In one embodiment, a method comprises, in response to an event which represents that a modification to an item has taken place on the cloud-based platform, identifying whether execution of the event is to violate any local file system rule. The method further comprises, if the execution of the event is to violate any local file system rule, buffering the event until a subsequent event arrives. The method further comprises identifying whether execution of an aggregate of the events is to violate any local file system rule.
737 Citations
23 Claims
-
1. A method for resolving race conditions when updating synchronization clients with what occurred in a cloud-based platform, the method comprising:
-
in response to receiving, at a synchronization client, an event which represents that a modification to an item has taken place on the cloud-based platform, identifying whether execution of the event is to violate any local file system rule; if the execution of the event is not to violate any local file system rule, executing the event, wherein executing the event includes; comparing a sequence identifier (ID) of the event with a current sequence ID of the item in the synchronization client, dropping the event in case the sequence ID of the event is lower than the current sequence ID of the item in the synchronization client, executing the event in case the sequence ID of the event is higher than the current sequence ID of the item in the synchronization client, wherein the executing further includes generating one or more events at the synchronization client to make a state of the item at the synchronization client the same as the state of the item indicated by the event; and if the execution of the event is to violate any local file system rule at the synchronization client, buffering the event at the synchronization client until a subsequent event arrives, wherein buffering the event further includes; discarding the event if the event remains buffered over a select amount of time, determining that the item is associated with a specified folder of a folder tree structure in the cloud-based platform, the folder-tree structure including multiple folders that are organized into multiple levels of hierarchy, and requesting a partial scan of the folder-tree structure in the cloud-based platform when a specified folder is moved from a first path to a second path in the folder-tree structure, instead of a full scan, the partial scan generating a synchronization event for a lowest partially synchronized folder in; the first path that had the specified folder before the move, and the second path that has the specified folder after the move. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for resolving race conditions when incrementally updating remote clients with what occurred in a cloud-based platform, the system comprising:
-
a processor; a memory having stored thereon instructions which, when executed by the processor, cause the processor to; in response to receiving, at a synchronization client, an event which represents that a modification to an item has taken place on a cloud-based platform, identify whether execution of the event is to violate any local file system rule; if the execution of the event is not to violate any local file system rule, executing the event, wherein executing the event includes; comparing a sequence identifier (ID) of the event with a current sequence ID of the item in a synchronization client, dropping the event in case the sequence ID of the event is lower than the current sequence ID of the item in the synchronization client, executing the event in case the sequence ID of the event is higher than the current sequence ID of the item in the synchronization client, wherein the executing further includes generating one or more events at the synchronization client to make a state of the item at the synchronization client the same as the state of the item indicated by the event, and if the execution of the event is to violate any local file system rule at the synchronization client, buffer the event at the synchronization client until a subsequent event arrives, wherein buffering the event further includes; discarding the event if the event remains buffered over a select amount of time, determining that the item is associated with a specified folder of a folder tree structure in the cloud-based platform, the folder-tree structure including multiple folders that are organized into multiple levels of hierarchy, and requesting a partial scan of the folder-tree structure in the cloud-based platform when a specified folder is moved from a first path to a second path in the folder-tree structure, instead of a full scan, the partial scan generating a synchronization event for a lowest partially synchronized folder in; the first path that had the specified folder before the move, and the second path that has the specified folder after the move. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A system, comprising:
-
means for, in response to receiving, at a synchronization client, an event which represents that a modification to an item has taken place on a cloud-based platform, identifying whether execution of the event is to violate any local file system rule; means for, if the execution of the event is not to violate any local file system rule, executing the event, wherein executing the event includes; comparing a sequence identifier (ID) of the event with a current sequence ID of the item in the synchronization client, dropping the event in case the sequence ID of the event is lower than the current sequence ID of the item in the synchronization client, and executing the event in case the sequence ID of the event is higher than the current sequence ID of the item in the synchronization client, wherein the executing further includes generating one or more events at the synchronization client to make a state of the item at the synchronization client the same as the state of the item indicated by the event, and means for, if the execution of the event is to violate any local file system rule at the synchronization client, buffering the event at the synchronization client until a subsequent event arrives, wherein buffering the event further includes; discarding the event if the event remains buffered over a select amount of time, determining that the item is associated with a specified folder of a folder tree structure in the cloud-based platform, the folder-tree structure including multiple folders that are organized into multiple levels of hierarchy, and requesting a partial scan of the folder-tree structure in the cloud-based platform when a specified folder is moved from a first path to a second path in the folder-tree structure, instead of a full scan, the partial scan generating a synchronization event for a lowest partially synchronized folder; the first path that had the specified folder before the move, and the second path that has the specified folder after the move.
-
Specification