US11650958B2ActiveUtilityA1

System and method for event-based synchronization of remote and local file systems

70
Assignee: EGNYTE INCPriority: Aug 3, 2012Filed: Jan 28, 2021Granted: May 16, 2023
Est. expiryAug 3, 2032(~6.1 yrs left)· nominal 20-yr term from priority
G06F 16/178G06F 16/11
70
PatentIndex Score
0
Cited by
40
References
20
Claims

Abstract

A method for synchronizing a file system (FS) and a remote file system (RFS) includes monitoring the FS for FS events, generating FS event records, receiving RFS event records of RFS events, generating file system operations (FSOs) based on the FS and RFS event records, and communicating the FSOs to the FS and RFS to synchronize them. A method for generating the FSOs includes accessing a plurality of FS and/or RFS event records, processing the accessed records to generate processed event records, generating the FSOs based on the processed event records, and outputting the FSOs to cause synchronization of the FS and RFS. Systems are also described. The invention facilitates event-based, steady-state synchronization of local and remote file systems.

Claims

exact text as granted — not AI-modified
We claim: 
     
       1. In a primary file storage system, a method for generating file system operations for synchronizing a primary file system (PFS) stored on said primary file storage system with a secondary file system (SFS) that is stored on a secondary file storage system, said method comprising:
 receiving secondary event records, said secondary event records each being indicative of a particular change being made to said SFS; 
 generating primary event records responsive to changes being made to said PFS, said primary event records each being indicative of a particular change being made to said PFS; 
 processing said secondary event records and said primary event records to generate a set of processed event records; 
 generating a set of file system operations based at least in part on said set of processed event records, a first subset of said set of file system operations to be applied to said PFS for altering said PFS and a second subset of said set of file system operations to be applied to said SFS for altering said SFS; and 
 providing said second subset of said set of file system operations to said secondary file storage system. 
 
     
     
       2. The method of  claim 1 , wherein said step of processing said secondary event records and said primary event records includes processing said secondary event records and said primary event records to generate said set of processed event records including a combination of processed ones of said secondary event records and processed ones of said primary event records. 
     
     
       3. The method of  claim 2 , wherein said step of processing said secondary event records and said primary event records includes:
 first, processing said secondary event records and processing said primary event records, said secondary event records being processed independently from said primary event records; and 
 second, jointly processing said secondary event records and said primary event records. 
 
     
     
       4. The method of  claim 1 , wherein said step of processing said secondary event records and said primary event records to generate a set of processed event records includes:
 identifying ones of said secondary event records and said primary event records according to a type of said event records; and 
 modifying at least some of said identified event records having said type. 
 
     
     
       5. The method of  claim 4 , wherein said step of processing said secondary event records and said primary event records to generate a set of processed event records includes:
 identifying event records associated with rename events, each rename event being indicative of a path modification to a file system object; 
 accessing a first event record associated with a first rename event; and 
 modifying a path associated with a second event record based on said first rename event. 
 
     
     
       6. The method of  claim 5 , wherein said step of processing said secondary event records and said primary event records to generate a set of processed event records further includes modifying a timestamp of said second event record. 
     
     
       7. The method of  claim 5 , wherein said rename event is indicative of said file system object being renamed. 
     
     
       8. The method of  claim 5 , wherein said rename event is indicative of said file system object being moved. 
     
     
       9. The method of  claim 1 , wherein said step of processing said secondary event records and said primary event records to generate a set of processed event records includes:
 accessing a first secondary event record; 
 accessing a first primary event record; and 
 deleting said first secondary event record and said first primary event record if said first secondary event record and said first primary event record both indicate that the same event occurred to a common file system object on each of said RFS and said PFS. 
 
     
     
       10. The method of  claim 1 , wherein said step of processing said secondary event records and said primary event records to generate a set of processed event records includes:
 accessing a first secondary event record associated with a first secondary event; 
 accessing a first primary event record associated with a first primary event; and 
 resolving a conflict between said first secondary event and said first primary event; and wherein 
 said first secondary event and said first primary event are associated with a common file system object that is common to both said PFS and said SFS. 
 
     
     
       11. The method of  claim 10 , wherein said step of generating a set of file system operations includes using a lookup table to determine at least one operation to take for resolving said conflict. 
     
     
       12. The method of  claim 10 , wherein said step of resolving a conflict between said first secondary event and said first primary event includes:
 determining that the combination of events associated with said first secondary event record and said first primary event record was in error and should not have occurred; and 
 executing a different file system synchronization process in response to said error. 
 
     
     
       13. The method of  claim 1 , wherein said step of receiving said secondary event records includes:
 receiving a first one of said secondary event records via a first communication from said secondary file storage system; and 
 receiving a second one of said secondary event records via a second communication from said secondary file storage system, said second communication being separate from said first communication. 
 
     
     
       14. A primary file storage system configured to generate file system operations for synchronizing a primary file system (PFS) stored thereon with a secondary file system (RFS) stored on a secondary file storage system, said primary file storage system comprising:
 memory storing data and code, said data including a plurality of event records including secondary event records indicative of a particular change being made to said RFS and primary event records indicative of a particular change being made to said PFS; 
 a hardware processor electrically coupled to receive and execute said code, said code including a set of predefined instructions for causing said hardware processor to perform a corresponding set of operations upon being executed by said hardware processor; 
 a network adapter electrically connected to establish a connection between said primary file storage system and said secondary file storage system; and 
 an event processor including
 a first subset of said set of predefined instructions configured to receive said secondary event records via said connection, 
 a second subset of said set of predefined instructions configured to generate said primary event records responsive to changes being made to said PFS, 
 a third subset of said set of predefined instructions configured to process said secondary event records and said primary event records to generate a set of processed event records, 
 a fourth subset of said set of predefined instructions configured to generate a set of file system operations based at least in part on said set of processed event records, a first subset of said set of file system operations to be applied to said PFS for altering said PFS and a second subset of said set of file system operations to be applied to said SFS for altering said SFS, and 
 a fifth subset of said set of predefined instructions configured to provide said second subset of said set of file system operations to said secondary file storage system via said connection. 
 
 
     
     
       15. The system of  claim 14 , wherein said set of processed event records includes a combination of processed ones of said secondary event records and processed ones of said primary event records. 
     
     
       16. The system of  claim 15 , wherein said third subset of said set of predefined instructions is additionally configured to:
 first, process said secondary event records and process said primary event records, said secondary event records being processed independently from said primary event records; and 
 second, jointly process said secondary event records and said primary event records. 
 
     
     
       17. The system of  claim 14 , wherein said third subset of said set of predefined instructions is additionally configured to:
 identify ones of said secondary event records and said primary event records according to a type of said event records; and 
 modify at least some of said identified event records having said type. 
 
     
     
       18. The system of  claim 17 , wherein said third subset of said set of predefined instructions is additionally configured to:
 identify event records associated with rename events, each rename event being indicative of a path modification to a file system object; 
 access a first event record associated with a first rename event; and 
 modify a path associated with a second event record based on said first rename event. 
 
     
     
       19. The system of  claim 18 , wherein said third subset of said set of predefined instructions is additionally configured to modify a timestamp of said second event record. 
     
     
       20. The system of  claim 18 , wherein said rename event is indicative of said file system object being renamed.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.