Mechanism for replicating and maintaining files in a spaced-efficient manner
First Claim
1. A computer-implemented method for replicating a current file, said current file having a current identifier and a plurality of data blocks associated therewith, said method comprising:
- receiving a request to replicate said current file;
in response to said request, creating a new file that is separate and distinct from said current file, said new file having a new identifier associated therewith; and
associating said new file with said plurality of data blocks such that both said current file and said new file are associated with said plurality of data blocks, thereby rendering said new file a replica of said current file.
0 Assignments
0 Petitions
Accused Products
Abstract
A mechanism for replicating and maintaining files in a space-efficient manner is disclosed. In one embodiment, a current file is replicated by associating the data blocks of the current file with both the current file and a new file. The new file and the current files are separate and distinct from each other. Data blocks remain shared until the content of one file is modified. Only the data blocks affected by the modification are duplicated. The two files share the unchanged data blocks, but both files are each associated with additional data blocks that reflect the modification. Reference values are used to track how many files are associated with each data block. In another embodiment, a file descriptor is linked to a filename at the request of a user or application. The present invention avoids needless duplication of the same data blocks among copies of a file.
52 Citations
69 Claims
-
1. A computer-implemented method for replicating a current file, said current file having a current identifier and a plurality of data blocks associated therewith, said method comprising:
-
receiving a request to replicate said current file;
in response to said request, creating a new file that is separate and distinct from said current file, said new file having a new identifier associated therewith; and
associating said new file with said plurality of data blocks such that both said current file and said new file are associated with said plurality of data blocks, thereby rendering said new file a replica of said current file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus for replicating a current file, said current file having a current identifier and a plurality of data blocks associated therewith, said apparatus comprising:
-
a mechanism for receiving a request to replicate said current file;
a mechanism for creating, in response to said request, a new file that is separate and distinct from said current file, said new file having a new identifier associated therewith; and
a mechanism for associating said new file with said plurality of data blocks such that both said current file and said new file are associated with said plurality of data blocks, thereby rendering said new file a replica of said current file. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A computer-readable medium having stored thereon instructions which, when executed by one or more processors, cause the one or more processors to replicate a current file, said current file having a current identifier and a plurality of data blocks associated therewith, said computer-readable medium comprising:
-
instructions for causing one or more processors to receive a request to replicate said current file;
instructions for causing one or more processors to create, in response to said request, a new file that is separate and distinct from said current file, said new file having a new identifier associated therewith; and
instructions for causing one or more processors to associate said new file with said plurality of data blocks such that both said current file and said new file are associated with said plurality of data blocks, thereby rendering said new file a replica of said current file. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
-
-
55. A computer-implemented method for linking a file descriptor to a file name comprising:
-
receiving, from an entity, a request to link said file descriptor to said file name, said file descriptor having a file associated therewith; and
associating said file name with said file in response to said request. - View Dependent Claims (56, 57)
-
-
58. A computer-implemented method for modifying a current file associated with a file name comprising:
-
receiving a request to modify said current file;
creating a new file, wherein said new file is a replica of said current file and wherein said new file is associated with a file descriptor;
modifying said new file in response to said request to modify said current file, wherein said new file is only accessible by an entity that sent said request to modify said new file; and
linking said file descriptor to said file name, such that said new file replaces said current file. - View Dependent Claims (59)
-
-
60. An apparatus for linking a file descriptor to a file name comprising:
-
a mechanism for receiving, from a entity, a request to link said file descriptor to said file name, said file descriptor having a file associated therewith; and
a mechanism for associating said file name with said file in response to said request. - View Dependent Claims (61, 62)
-
-
63. An apparatus for modifying a current file associated with a file name comprising:
-
a mechanism for receiving a request to modify said current file;
a mechanism for creating a new file, wherein said new file is a replica of said current file and wherein said new file is associated with a file descriptor;
a mechanism for modifying said new file in response to said request to modify said current file, wherein said new file is only accessible by an entity that sent said request to modify said new file; and
a mechanism for linking said file descriptor to said file name, such that said new file replaces said current file. - View Dependent Claims (64)
-
-
65. A computer-readable medium having stored thereon instructions which, when executed by one or more processors, cause the one or more processors to link a file descriptor to a file name, said computer-readable medium comprising:
-
instructions for causing one or more processors to receive, from a entity, a request to link said file descriptor to said file name, said file descriptor having a file associated therewith; and
instructions for causing one or more processors to associate said file name with said file in response to said request. - View Dependent Claims (66, 67)
-
-
68. A computer-readable medium having stored thereon instructions which, when executed by one or more processors, cause the one or more processors to modify a current file associated with a file name, said computer-readable medium comprising:
-
instructions for causing one or more processors to receive a request to modify said current file;
instructions for causing one or more processors to create a new file, wherein said new file is a replica of said current file and wherein said new file is associated with a file descriptor;
instructions for causing one or more processors to modify said new file in response to said request to modify said current file, wherein said new file is only accessible by an entity that sent said request to modify said new file; and
instructions for causing one or more processors to link said file descriptor to said file name, such that said new file replaces said current file. - View Dependent Claims (69)
-
Specification