Legal claims defining the scope of protection, as filed with the USPTO.
1. In a local file storage system, a method for synchronizing a local file system (LFS) stored on said local file storage system with a remote file system (RFS) stored on a remote file storage system, said method comprising: synchronizing said LFS with said RFS as of a first time; initiating an event-based synchronization process at or after said first time to maintain synchronization of said LFS and said RFS; receiving remote events from said remote file storage system, each said remote event being indicative of a change made to said RFS after said first time; generating local events on said local file storage system, each said local event being indicative of a change made to said LFS after said first time; processing said remote events and said local events to generate a sequence of file system operations; processing said sequence of file system operations to create a first group of said file system operations to be applied to said LFS and a second group of said file system operations to be applied to said RFS; receiving a termination signal indicating that said event-based synchronization process is to be intentionally stopped; persisting at least one file system operation of said sequence of file system operations in non-volatile memory, said at least one file system operation identifying a first portion of said sequence of file system operations that was processed into one of said first group and said second group and a second portion of said sequence of file system operations that was not processed into one of said first group and said second group, said at least one file system operation including a first file system operation of said second portion of said sequence of file system operations; stopping said step of processing said sequence of file system operations; retrieving said at least one persisted file system operation from said non-volatile memory; regenerating said sequence of file system operations; comparing said at least one persisted file system operation of said sequence to said regenerated sequence of file system operations to match said at least one persisted file system operation with at least one file system operation of said regenerated sequence; and restarting said event-based synchronization process based on said at least one matched operation of said regenerated sequence.
2. The method of claim 1 , further comprising applying a plurality of operations from said first portion of said sequence of file system operations to at least one of said LFS and said RFS after receiving said termination signal and before stopping said step of processing said sequence of file system operations.
3. The method of claim 1 , wherein said step of persisting said at least one file system operation includes persisting a plurality of said file system operations of said sequence.
4. The method of claim 1 , further comprising: receiving a second termination signal following said step of restarting said event-based synchronization process, said second termination signal indicating that said step of processing said sequence of file system operations is to again be stopped; and persisting another file system operation in said non-volatile memory responsive to said second termination signal only if said step of comparing has matched said at least one persisted file system operation with at least one file system operation of said regenerated sequence.
5. The method of claim 1 , further comprising performing a snapshot-based synchronization of said LFS and said RFS if said step of comparing yields no match.
6. The method of claim 1 , wherein: said step of processing said remote events and said local events to generate said sequence of file system operations includes generating said sequence of file system operations based on at least some of said events; and said step of regenerating said sequence of file system operations includes generating said sequence of file system operations again based on the same ones of said events.
7. The method of claim 1 , wherein said step of restarting said event-based synchronization process includes restarting said step of processing said sequence of file system operations at a first operation of said second portion of said sequence of said file system operations that has not yet been processed into one of said first group and said second group based on said at least one file system operation of said sequence of file system operations.
8. The method of claim 7 , wherein: said step of persisting said at least one file system operation to said non-volatile memory includes persisting at least part of said second portion of said sequence of file system operations to said non-volatile memory; and said step of restarting said event-based synchronization process includes retrieving said at least part of said second portion of said sequence of file system operations from said non-volatile memory.
9. A local file storage system for synchronizing a local file system (LFS) stored thereon with a remote file system (RFS) stored on a remote file storage system remotely located from said file storage system, said file storage system comprising: a processor configured to execute code, said code including a set of predefined instructions for causing said processor to perform a corresponding set of operations when executed by said processor; non-volatile memory configured to store data including when said local file storage system is powered down; and a storage synchronizer including a first subset of said set of predefined instructions configured to synchronize said LFS with said RFS as of a first time, a second subset of said set of predefined instructions configured to initiate an event-based synchronization process at or after said first time to maintain synchronization of said LFS and said RFS, a third subset of said set of predefined instructions configured to receive remote events from said remote file storage system, each said remote event being indicative of a change made to said RFS after said first time, a fourth subset of said set of predefined instructions configured to generate local events on said local file storage system, each said local event being indicative of a change made to said LFS after said first time, a fifth subset of said set of predefined instructions configured to process said remote events and said local events to generate a sequence of file system operations, a sixth subset of said set of predefined instructions configured to process said sequence of file system operations to create a first group of said file system operations to be applied to said LFS and a second group of said file system operations to be applied to said RFS, a seventh subset of said set of predefined instructions configured to receive a termination signal indicating that said event-based synchronization process is to be intentionally stopped, an eighth subset of said set of predefined instructions configured to persist restart information in non-volatile memory responsive to said termination signal, and a ninth subset of said set of predefined instructions configured to stop processing said sequence of file system operations; a tenth subset of said set of predefined instructions confiqured to retrieve said at least one persisted operation from said non-volatile memory, to restart said event-based synchronization of said LFS and said RFS process based on said at least one persisted file system operation, to regenerate said sequence of file system operations, to compare said at least one persisted file system operation of said sequence to file system operations of said regenerated sequence to match said at least one persisted file system operation with at least one file system operation of said regenerated sequence, and to restart said event-based synchronization process based on said at least one matched operation of said regenerated sequence; and wherein said eighth subset of said set of predefined instructions is configured to persist at least one file system operation of said sequence in said non-volatile memory; said restart information identifies a first portion of said sequence of file system operations that was processed into one of said first group and said second group and a second portion of said sequence of file system operations that was not processed into one of said first group and said second group; and said at least one persisted file system operation includes a first file system operation of said second portion of said sequence of file system operations.
10. The local file storage system of claim 9 , further comprising an eleventh subset of said set of predefined instructions configured to apply said first plurality of operations from said first portion of said sequence of file system operations to said LFS after receiving said termination signal and before processing of said sequence of file system operations is stopped.
11. The local file storage system of claim 9 , wherein said eighth subset of said set of predefined instructions is configured to persist a plurality of said file system operations of said sequence.
12. The local file storage system of claim 9 , wherein: said seventh subset of said set of predefined instructions is additionally configured to receive a second termination signal following restart of said event-based synchronization process, said second termination signal indicating that processing of said sequence of file system operations is to again be stopped; and said eighth subset of said set of predefined instructions is additionally configured to persist new restart information in said non-volatile memory responsive to said second termination signal only if said at least one persisted file system operation has been matched with at least one file system operation of said regenerated sequence.
13. The local file storage system of claim 9 , wherein said storage synchronizer additionally includes an eleventh subset of said set of predefined instructions configured to perform a snapshot-based synchronization of said LFS and said RFS if said comparison yields no match.
14. The local file storage system of claim 9 , further comprising: one or more events databases storing said remote events and said local events; and wherein said fifth subset of said set of predefined instructions is additionally configured to generate said sequence of file system operations based on at least some of said remote events and said local events; and regenerate said sequence of file system operations again based on the same ones of said events.
15. The local file storage system of claim 9 , wherein: said eighth subset of said set of predefined instructions is configured to persist at least part of said second portion of said sequence of file system operations to said non-volatile memory as said restart information; and said tenth subset of said set of predefined instructions is additionally configured to retrieve said at least part of said second portion of said sequence of file system operations from said non-volatile memory as part of restarting said event-based synchronization process.
16. A non-transitory, electronically-readable storage medium having code embodied thereon for causing an electronic device to synchronize a local file system (LFS) stored on a local file storage system with a remote file system (RFS) stored on a remote file storage system, said code operative to cause said electronic device to: synchronize said LFS with said RFS as of a first time; initiate an event-based synchronization process at or after said first time to maintain synchronization of said LFS and said RFS; receive remote events from said remote file storage system, each said remote event being indicative of a change made to said RFS after said first time; generate local events on said local file storage system, each said local event being indicative of a change made to said LFS after said first time; process said remote events and said local events to generate a sequence of file system operations; process said sequence of file system operations to create a first group of said file system operations be applied to said LFS and a second group of said file system operations to be applied to said RFS; receive a termination signal indicating that said event-based synchronization process is to be intentionally stopped; persist at least one file system operation of said sequence of file system operations in non-volatile memory, said at least one file system operation identifying a first portion of said sequence of file system operations that was processed into one of said first group and said second group and a second portion of said sequence of file system operations that was not processed into one of said first group and said second group, said at least one file system operation including a first file system operation of said second portion of said sequence of file system operations ; stop processing said sequence of file system operations; retrieve said at least one persisted file system operation from said non-volatile memory; regenerate said sequence of file system operations; compare said at least one persisted file system operation of said sequence to said regenerated sequence of file system operations to match said at least one persisted file system operation with at least one file system operation of said regenerated sequence; and restart said event-based synchronization process based on said at least one matched operation of said regenerated sequence.
Unknown
May 24, 2022
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.