US2013297658A1PendingUtilityA1

Method and system for synchronizing a virtual file system at a computing device with a storage device

Assignee: BEIJING INNOVATION WORKS TECHNOLOGY COMPANY LTDPriority: Aug 28, 2009Filed: Jul 10, 2013Published: Nov 7, 2013
Est. expiryAug 28, 2029(~3.1 yrs left)· nominal 20-yr term from priority
G06F 16/188G06F 17/30283G06F 16/27
56
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method of resolving conflicts between revisions to a distributed virtual file system is implemented at a computing device that is communicatively connected to a plurality of storage devices. The virtual file system at the computing device has a first revision of the virtual file system. Upon receipt of a request to synchronize the first revision of the virtual file system with the storage devices, the computing device retrieves one or more blocks from the storage devices, which are associated with a second revision of the virtual file system. The computing device then merges a first component of the first revision with a corresponding component of the second revision if a first predefined condition is met or identifies a second component of the first revision as being conflicted with a corresponding component of the second revision if a second predefined set of conditions is met.

Claims

exact text as granted — not AI-modified
1 . A computer-implemented method, comprising:
 at a computing device:
 receiving a request to convert a revision of a virtual file system at the computing device into a plurality of blocks within at least one storage device; 
 identifying a hierarchical tree structure associated with the revision of the virtual file system, wherein the hierarchical tree structure includes a plurality of tree nodes, each tree node having associated metadata and corresponding to a respective component of the revision of the virtual file system; 
 converting the hierarchical tree structure and associated metadata into the plurality of blocks within the one storage device in a top-down manner, further including: 
 for each tree node:
 converting the tree node's associated metadata into an object in a serial manner; 
 generating a unique object ID from the object based at least in part on the metadata; 
 storing the object in a respective one of the plurality of blocks within the storage device if the object ID has no matching entry in an object-storage mapping table associated with the virtual file system; and 
 generating a new entry including the object ID in the object-storage mapping table; and 
 
 storing the object-storage mapping table in a respective one of the plurality of blocks within the storage device. 
   
     
     
         2 . The computer-implemented method of  claim 1 , wherein at least one of the tree nodes includes a directory node that corresponds to a directory of the virtual file system. 
     
     
         3 . The computer-implemented method of  claim 2 , wherein the metadata associated with the directory node includes a directory node identifier, a reference to another directory node, and one or more directory attributes. 
     
     
         4 . The computer-implemented method of  claim 1 , wherein the object is comprised of an object header and an object body, the object header including the object ID and the object body including the serialized metadata. 
     
     
         5 . The computer-implemented method of  claim 4 , wherein the object header further includes a tag for determining how the object was constructed in the serial manner and identifying a corresponding application program interface module for deserializing the object in connection with rebuilding the virtual file system. 
     
     
         6 . The computer-implemented method of  claim 1 , wherein the object ID is generated by applying a hash algorithm to data in the serialized object. 
     
     
         7 . The computer-implemented method of  claim 1 , wherein at least one of the tree nodes includes a file node that corresponds to a file of the virtual file system and the file includes a plurality of content blocks, the method further comprising:
 for each content block:
 generating a unique block ID from the content block; 
 determining whether the block ID has a matching entry in a content block-storage mapping table that includes identifiers of content blocks associated with the virtual file system; 
 if no matching entry is found in the content block-storage mapping table:
 storing the content block in a respective one of the plurality of blocks within the storage device; and 
 generating a new entry including the block ID in the content block-storage mapping table; 
 
 if at least one matching entry is found in the content block-storage mapping table:
 having the file reference a content block that has the same block ID found in the content block-storage mapping table; and 
 
   storing the content block-storage mapping table in a respective one of the plurality of blocks within the storage device.   
     
     
         8 . The computer-implemented method of  claim 7 , wherein the referenced content block is associated with an earlier revision of the same file. 
     
     
         9 . The computer-implemented method of  claim 7 , wherein the referenced content block is associated with a different file of the virtual file system. 
     
     
         10 . The computer-implemented method of  claim 1 , wherein the computing device is one selected from the group consisting of a desktop computer, a laptop computer, a tablet computer, and a mobile telephone. 
     
     
         11 . The computer-implemented method of  claim 1 , wherein the computing device has a local file system and the local file system includes directories and files associated with the virtual file system. 
     
     
         12 . A computing device in association with a distributed storage system that includes a plurality of storage devices, comprising:
 one or more processors;   memory; and   one or more programs stored in the memory for execution by the one or more processors, the one or more programs comprising instructions for:
 receiving a request to convert a revision of a virtual file system at the computing device into a plurality of blocks within at least one storage device; 
 identifying a hierarchical tree structure associated with the revision of the virtual file system, wherein the hierarchical tree structure includes a plurality of tree nodes, each tree node having associated metadata and corresponding to a respective component of the revision of the virtual file system; 
 converting the hierarchical tree structure and associated metadata into the plurality of blocks within the one storage device in a top-down manner, further including: 
 for each tree node:
 converting the tree node's associated metadata into an object in a serial manner; 
 generating a unique object ID from the object based at least in part on the metadata; 
 storing the object in a respective one of the plurality of blocks within the storage device if the object ID has no matching entry in an object-storage mapping table associated with the virtual file system; and 
 generating a new entry including the object ID in the object-storage mapping table; and 
 
 storing the object-storage mapping table in a respective one of the plurality of blocks within the storage device. 
   
     
     
         13 . The computing device of  claim 12 , wherein at least one of the tree nodes includes a directory node that corresponds to a directory of the virtual file system. 
     
     
         14 . The computing device of  claim 12 , wherein the object is comprised of an object header and an object body, the object header including the object ID and the object body including the serialized metadata. 
     
     
         15 . The computing device of  claim 12 , wherein the object ID is generated by applying a hash algorithm to data in the serialized object. 
     
     
         16 . The computing device of  claim 12 , wherein the computing device is one selected from the group consisting of a desktop computer, a laptop computer, a tablet computer, and a mobile telephone. 
     
     
         17 . A non-transitory computer readable storage medium storing one or more programs configured for execution by a computing device having one or more processors and memory storing one or more programs for execution by the one or more processors in association with a distributed storage system that includes a plurality of storage devices, the one or more programs comprising instructions to:
 receive a request to convert a revision of a virtual file system at the computing device into a plurality of blocks within at least one storage device;   identify a hierarchical tree structure associated with the revision of the virtual file system, wherein the hierarchical tree structure includes a plurality of tree nodes, each tree node having associated metadata and corresponding to a respective component of the revision of the virtual file system;   convert the hierarchical tree structure and associated metadata into the plurality of blocks within the one storage device in a top-down manner, further including:   for each tree node:
 convert the tree node's associated metadata into an object in a serial manner; 
 generate a unique object ID from the object based at least in part on the metadata; 
 store the object in a respective one of the plurality of blocks within the storage device if the object ID has no matching entry in an object-storage mapping table associated with the virtual file system; and 
 generate a new entry including the object ID in the object-storage mapping table; and 
   store the object-storage mapping table in a respective one of the plurality of blocks within the storage device.   
     
     
         18 . The non-transitory computer readable storage medium of  claim 17 , wherein at least one of the tree nodes includes a directory node that corresponds to a directory of the virtual file system. 
     
     
         19 . The non-transitory computer readable storage medium of  claim 17 , wherein the object is comprised of an object header and an object body, the object header including the object ID and the object body including the serialized metadata. 
     
     
         20 . The non-transitory computer readable storage medium of  claim 17 , wherein the object ID is generated by applying a hash algorithm to data in the serialized object.

Join the waitlist — get patent alerts

Track US2013297658A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.