Accessing snapshots of a time based file system
First Claim
1. A method comprising:
- receiving, by a file system driver stored in a computational device, a request to provide access to a snapshot of a rewritable file system at a selected point in time, wherein a plurality of tokens corresponding to a plurality of data units are stored in the rewritable file system, wherein an ordering relationship is maintained among the plurality of tokens, wherein the ordering relationship is such that a first token corresponding to a first data unit is of a lesser numerical value in comparison to a second token corresponding to a second data unit, and wherein the first data unit is written at an earlier point in time in comparison to the second data unit, wherein the plurality of tokens are stored by;
writing, in a first set of data structures, timestamps in association with the plurality of data units, wherein a timestamp indicates a chronological time at which a data unit is written; and
generating, and writing in a second set of data structures, the plurality of tokens with numerical values in a monotonically increasing order as the plurality of data units are written into the rewritable file system;
determining a token corresponding to the selected point in time based on the ordering relationship;
generating a virtual subdirectory name corresponding to the determined token;
creating a virtual subdirectory with the generated virtual subdirectory name, wherein the virtual subdirectory is a subdirectory of a root directory;
receiving a request to perform operations on the snapshot, wherein the request uses a file system interface to access the snapshot, wherein the file system interface is also used for accessing other files that are not stored by the rewritable file system, wherein no modifications are made within the file system driver to existing file system interfaces that are used by an operating system, and wherein the existing file system interfaces are also used to access other file systems in addition to being used to access the rewritable file system;
interpreting the request and providing access to the snapshot via the virtual subdirectory, wherein at least a pointer from the virtual subdirectory to the snapshot stored in the rewritable file system is used to access the snapshot; and
accessing, the snapshot, via the virtual subdirectory, wherein the virtual subdirectory name has a special prefix, wherein if the virtual subdirectory name has the special prefix the file system driver parses out a corresponding token value and executes an internal mount code to create structures in a mount control block, wherein the corresponding token value is added to the structures in the mount control block, and wherein the virtual subdirectory name is saved in the structures in the mount control block.
1 Assignment
0 Petitions
Accused Products
Abstract
A file system driver stored in a computational device receives a request to provide access to a snapshot of a rewritable file system at a selected point in time, wherein a plurality of tokens corresponding to a plurality of data units are stored in the rewritable file system, and wherein an ordering relationship is maintained among the plurality of tokens. The file system driver determines a token corresponding to the selected point in time based on the ordering relationship. A virtual subdirectory name is generated corresponding to the determined token. A virtual subdirectory is created with the generated virtual subdirectory name, wherein the virtual subdirectory is a subdirectory of a root directory. The snapshot is accessed via the subdirectory.
20 Citations
6 Claims
-
1. A method comprising:
-
receiving, by a file system driver stored in a computational device, a request to provide access to a snapshot of a rewritable file system at a selected point in time, wherein a plurality of tokens corresponding to a plurality of data units are stored in the rewritable file system, wherein an ordering relationship is maintained among the plurality of tokens, wherein the ordering relationship is such that a first token corresponding to a first data unit is of a lesser numerical value in comparison to a second token corresponding to a second data unit, and wherein the first data unit is written at an earlier point in time in comparison to the second data unit, wherein the plurality of tokens are stored by; writing, in a first set of data structures, timestamps in association with the plurality of data units, wherein a timestamp indicates a chronological time at which a data unit is written; and generating, and writing in a second set of data structures, the plurality of tokens with numerical values in a monotonically increasing order as the plurality of data units are written into the rewritable file system; determining a token corresponding to the selected point in time based on the ordering relationship; generating a virtual subdirectory name corresponding to the determined token; creating a virtual subdirectory with the generated virtual subdirectory name, wherein the virtual subdirectory is a subdirectory of a root directory; receiving a request to perform operations on the snapshot, wherein the request uses a file system interface to access the snapshot, wherein the file system interface is also used for accessing other files that are not stored by the rewritable file system, wherein no modifications are made within the file system driver to existing file system interfaces that are used by an operating system, and wherein the existing file system interfaces are also used to access other file systems in addition to being used to access the rewritable file system; interpreting the request and providing access to the snapshot via the virtual subdirectory, wherein at least a pointer from the virtual subdirectory to the snapshot stored in the rewritable file system is used to access the snapshot; and accessing, the snapshot, via the virtual subdirectory, wherein the virtual subdirectory name has a special prefix, wherein if the virtual subdirectory name has the special prefix the file system driver parses out a corresponding token value and executes an internal mount code to create structures in a mount control block, wherein the corresponding token value is added to the structures in the mount control block, and wherein the virtual subdirectory name is saved in the structures in the mount control block. - View Dependent Claims (2)
-
-
3. A system, comprising:
-
a memory; a processor coupled to the memory, wherein the processor performs operations, the operations comprising; receiving, by a file system driver, a request to provide access to a snapshot of a rewritable file system at a selected point in time, wherein a plurality of tokens corresponding to a plurality of data units are stored in the rewritable file system, wherein an ordering relationship is maintained among the plurality of tokens, and wherein the ordering relationship is such that a first token corresponding to a first data unit is of a lesser numerical value in comparison to a second token corresponding to a second data unit, and wherein the first data unit is written at an earlier point in time in comparison to the second data unit, wherein the plurality of tokens are stored by; writing, in a first set of data structures, timestamps in association with the plurality of data units, wherein a timestamp indicates a chronological time at which a data unit is written; and generating, and writing in a second set of data structures, the plurality of tokens with numerical values in a monotonically increasing order as the plurality of data units are written into the rewritable file system; determining a token corresponding to the selected point in time based on the ordering relationship; generating a virtual subdirectory name corresponding to the determined token; creating a virtual subdirectory with the generated virtual subdirectory name, wherein the virtual subdirectory is a subdirectory of a root directory; receiving a request to perform operations on the snapshot, wherein the request uses a file system interface to access the snapshot, wherein the file system interface is also used for accessing other files that are not stored by the rewritable file system, wherein no modifications are made within the file system driver to existing file system interfaces that are used by an operating system, and wherein the existing file system interfaces are also used to access other file systems in addition to being used to access the rewritable file system; interpreting the request and providing access to the snapshot via the virtual subdirectory, wherein at least a pointer from the virtual subdirectory to the snapshot stored in the rewritable file system is used to access the snapshot; and accessing, the snapshot, via the virtual subdirectory, wherein the virtual subdirectory name has a special prefix, wherein if the virtual subdirectory name has the special prefix the file system driver parses out a corresponding token value and executes an internal mount code to create structures in a mount control block, wherein the corresponding token value is added to the structures in the mount control block, and wherein the virtual subdirectory name is saved in the structures in the mount control block. - View Dependent Claims (4)
-
-
5. A computer readable storage device implemented in hardware, wherein code stored in the computer readable storage device when executed by a computational device causes operations, the operations comprising:
-
receiving, by a file system driver, a request to provide access to a snapshot of a rewritable file system at a selected point in time, wherein a plurality of tokens corresponding to a plurality of data units are stored in the rewritable file system, wherein an ordering relationship is maintained among the plurality of tokens, and wherein the ordering relationship is such that a first token corresponding to a first data unit is of a lesser numerical value in comparison to a second token corresponding to a second data unit, and wherein the first data unit is written at an earlier point in time in comparison to the second data unit, wherein the plurality of tokens are stored by; writing, in a first set of data structures, timestamps in association with the plurality of data units, wherein a timestamp indicates a chronological time at which a data unit is written; and generating, and writing in a second set of data structures, the plurality of tokens with numerical values in a monotonically increasing order as the plurality of data units are written into the rewritable file system; determining, by the file system driver, a token corresponding to the selected point in time based on the ordering relationship; generating a virtual subdirectory name corresponding to the determined token; creating a virtual subdirectory with the generated virtual subdirectory name, wherein the virtual subdirectory is a subdirectory of a root directory; receiving a request to perform operations on the snapshot, wherein the request uses a file system interface to access the snapshot, wherein the file system interface is also used for accessing other files that are not stored by the rewritable file system, wherein no modifications are made within the file system driver to existing file system interfaces that are used by an operating system, and wherein the existing file system interfaces are also used to access other file systems in addition to being used to access the rewritable file system; interpreting the request and providing access to the snapshot via the virtual subdirectory, wherein at least a pointer from the virtual subdirectory to the snapshot stored in the rewritable file system is used to access the snapshot; and accessing, the snapshot, via the virtual subdirectory, wherein the virtual subdirectory name has a special prefix, wherein if the virtual subdirectory name has the special prefix the file system driver parses out a corresponding token value and executes an internal mount code to create structures in a mount control block, wherein the corresponding token value is added to the structures in the mount control block, and wherein the virtual subdirectory name is saved in the structures in the mount control block. - View Dependent Claims (6)
-
Specification