Method and system for synchronizing a virtual file system at a computing device with a storage device
First Claim
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;
serializing the tree node'"'"'s associated metadata into an object;
generating an object ID from the serialized object by applying a hash algorithm to data in the serialized object, wherein the object ID is uniquely defined by the tree node'"'"'s associated metadata such that two different serialized objects do not share the same object ID, and 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, and the object header further includes a tag for determining how the object was serialized and choosing a corresponding application program interface module for deserializing the object in connection with rebuilding the virtual file system;
storing the object in a respective one of the plurality of blocks within the storage device if the object ID is not found in an object-storage mapping table associated with the virtual file system and discarding the object if the object ID is found in the object-storage mapping table associated with the virtual file system; and
inserting the object ID into 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.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of synchronizing a virtual file system is implemented at a computing device. The virtual file system has a hierarchical tree structure including a plurality of tree nodes, each tree node having associated metadata and corresponding to a respective component of the virtual file system. Upon receipt of a request to generate a revision of a virtual file system in at least one storage device, the computing device serializes each tree node'"'"'s associated metadata into an object, generates an object ID from the serialized object, and stores the object in the storage device if the object ID is not found in an object-storage mapping table associated with the virtual file system. Finally, the computing device inserts the object ID into the object-storage mapping table and stores the object-storage mapping table in the storage device after processing the last tree node.
13 Citations
19 Claims
-
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; serializing the tree node'"'"'s associated metadata into an object; generating an object ID from the serialized object by applying a hash algorithm to data in the serialized object, wherein the object ID is uniquely defined by the tree node'"'"'s associated metadata such that two different serialized objects do not share the same object ID, and 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, and the object header further includes a tag for determining how the object was serialized and choosing a corresponding application program interface module for deserializing the object in connection with rebuilding the virtual file system; storing the object in a respective one of the plurality of blocks within the storage device if the object ID is not found in an object-storage mapping table associated with the virtual file system and discarding the object if the object ID is found in the object-storage mapping table associated with the virtual file system; and inserting the object ID into 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
18. 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; serializing the tree node'"'"'s associated metadata into an object; generating an object ID from the serialized object by applying a hash algorithm to data in the serialized object, wherein the object ID is uniquely defined by the tree node'"'"'s associated metadata such that two different serialized objects do not share the same object ID, and 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, and the object header further includes a tag for determining how the object was serialized and choosing a corresponding application program interface module for deserializing the object in connection with rebuilding the virtual file system; storing the object in a respective one of the plurality of blocks within the storage device if the object ID is not found in an object-storage mapping table associated with the virtual file system and discarding the object if the object ID is found in the object-storage mapping table associated with the virtual file system; and inserting the object ID into 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.
-
-
19. 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; serialize the tree node'"'"'s associated metadata into an object; generate an object ID from the serialized object by applying a hash algorithm to data in the serialized object, wherein the object ID is uniquely defined by the tree node'"'"'s associated metadata such that two different serialized objects do not share the same object ID, and 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, and the object header further includes a tag for determining how the object was serialized and choosing a corresponding application program interface module for deserializing the object in connection with rebuilding the virtual file system; store the object in a respective one of the plurality of blocks within the storage device if the object ID is not found in an object-storage mapping table associated with the virtual file system and discarding the object if the object ID is found in the object-storage mapping table associated with the virtual file system; and insert the object ID into 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.
-
Specification