SYSTEMS AND METHODS FOR ADAPTIVE COPY ON WRITE
First Claim
1. A processor-implemented method of determining whether to use Copy-On-Write (COW) or Point-In-Time-Copy (PITC) for storing multiple versions of at least a portion of a file, the computer-implemented method comprising:
- receiving a request to modify at least a portion of a file;
determining, via execution of instructions by a processor, whether to perform a Point-In-Time-Copy operation, the determining whether to perform a Point-In-Time-Copy operation comprising determining whether the request to modify at least a portion of the file corresponds to at least one of a request to delete the file and a request to overwrite the file in its entirety;
if it is determined to perform a Point-In-Time-Copy, performing a Point-In-Time Copy operation on the portion of the file; and
if it is determined not to perform a Point-In-Time-Copy, performing a Copy-On-Write operation on the portion of the file.
12 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a user or client device communicates with a distributed file system comprised of one or more physical nodes. The data on each of the physical nodes store metadata about files and directories within the file system. Some of the embodiments permit a user to take a snapshot of data stored on the file system. The snapshot may include a single file, a single directory, a plurality of files within a directory, a plurality of directories, a path on the file system that includes nested files and subdirectories, or more than one path on the file system that each includes nested files and directories. In some embodiments, systems and methods intelligently choose whether to use copy-on-write or point-in-time copy when saving data in a snapshot version of a file whose current version is being overwritten. In some embodiments, systems and methods allow snapshot users to return from a snapshot directory to the immediate parent directory from which the user entered into the snapshot.
-
Citations
20 Claims
-
1. A processor-implemented method of determining whether to use Copy-On-Write (COW) or Point-In-Time-Copy (PITC) for storing multiple versions of at least a portion of a file, the computer-implemented method comprising:
-
receiving a request to modify at least a portion of a file; determining, via execution of instructions by a processor, whether to perform a Point-In-Time-Copy operation, the determining whether to perform a Point-In-Time-Copy operation comprising determining whether the request to modify at least a portion of the file corresponds to at least one of a request to delete the file and a request to overwrite the file in its entirety; if it is determined to perform a Point-In-Time-Copy, performing a Point-In-Time Copy operation on the portion of the file; and if it is determined not to perform a Point-In-Time-Copy, performing a Copy-On-Write operation on the portion of the file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-readable storage medium having instructions stored thereon for determining, when the instructions are executed, whether to use Copy-On-Write (COW) or Point-In-Time-Copy (PITC) for storing multiple versions of at least a portion of a file, the instructions comprising:
-
receiving a request to modify at least a portion of a file; determining whether to perform a Point-In-Time-Copy operation, the determining whether to perform a Point-In-Time-Copy operation comprising determining whether the request to modify at least a portion of the file corresponds to at least one of a request to delete the file and a request to overwrite the file in its entirety; if it is determined to perform a Point-In-Time-Copy, performing a Point-In-Time Copy operation on the portion of the file; and if it is determined not to perform a Point-In-Time-Copy, performing a Copy-On-Write operation on the portion of the file. - View Dependent Claims (12, 13, 14)
-
-
15. A storage module having instructions stored thereon for determining, when the instructions are executed, whether to use Copy-On-Write (COW) or Point-In-Time-Copy (PITC) for storing multiple versions of at least a portion of a file, the storage module comprising:
-
a computer-readable medium having instructions stored thereon; a processor capable of executing the instructions; and a memory system for storing a copy of at least a portion of a file according to the instructions executed on the processor; wherein the instructions comprise; receiving a request to modify at least a portion of a file; determining whether to perform a Point-In-Time-Copy operation, the determining whether to perform a Point-In-Time-Copy operation comprising determining whether the request to modify at least a portion of the file corresponds to at least one of a request to delete the file and a request to overwrite the file in its entirety; if it is determined to perform a Point-In-Time-Copy, performing a Point-In-Time Copy operation on the portion of the file; and if it is determined not to perform a Point-In-Time-Copy, performing a Copy-On-Write operation on the portion of the file. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification