Efficient Storage of a Data Object in a Storage Network
Methods and apparatus for efficient storage of a data object in a storage network. A method for execution by one or more processing modules of a storage network begins by receiving a store data request including a data object and a data identifier, and generating a source name for the data object. The method continues by determining whether the data object is already stored in memory of the storage network. In response to determining that the data object is already stored in the memory of the storage network, the method further includes identifying location information for the data object, storing the location information using the source name, and updating metadata for the data object to indicate that an additional copy of the data object is stored in the memory of the storage network.
1 . A method for execution by one or more processing modules of a storage network, the method comprising:
receiving a store data request including a data object and a data identifier;
generating a source name for the data object;
determining whether the data object is already stored in memory of the storage network; and
in response to determining that the data object is already stored in the memory of the storage network:
identifying location information for the data object;
storing the location information using the source name; and
updating metadata for the data object to indicate that an additional copy of the data object is stored in the memory of the storage network.
2 . The method of claim 1 , further comprising:
in response to determining that the data object is not already stored in the memory of the storage network:
storing the data object in the memory of the storage network using the source name; and
establishing metadata for the data object, the metadata indicating that one copy of the data object is stored in the memory of the storage network.
3 . The method of claim 1 , further comprising:
receiving a request to delete the data object; and
updating the metadata to indicate that one less copy of the data object is stored in the memory of the storage network.
4 . The method of claim 3 , wherein the request to delete the data object includes a second data identifier, the method further comprising:
regenerating a corresponding source name for the data object based on the second data identifier;
determining that the corresponding source name corresponds to a link-object; and
deleting the link-object.
5 . The method of claim 1 , further comprising:
receiving a request to delete the data object;
regenerating a corresponding source name for the data object;
retrieving the metadata for the data object;
determining, based on the metadata, that one copy of the data object is currently stored in the memory of the storage network; and
deleting the data object and the metadata for the data object from the memory of the storage network.
6 . The method of claim 1 , wherein updating metadata for the data object to indicate that an additional copy of the data object is stored in the memory of the storage network includes:
retrieving the metadata;
incrementing a copy count of the metadata by one to produce updated metadata; and
storing the updated metadata in the memory of the storage network.
7 . The method of claim 6 , wherein storing the updated metadata in the memory of the storage network includes:
encoding the updated metadata to produce a set of encoded data slices; and
facilitating storage of the set of encoded data slices in the memory of the storage network.
8 . The method of claim 1 , wherein determining whether the data object is already stored in memory of the storage network includes:
generating a data tag for the data object; and
comparing the data tag to a list of data tags for stored data objects.
9 . A computing device, comprising:
at least one interface;
memory that stores operational instructions; and
a processing module operably coupled to the memory, wherein the processing module is configured to execute the operational instructions to:
receive, via the at least one interface, a store data request including a data object and a data identifier;
generate a source name for the data object;
determine whether the data object is already stored in memory of a storage network; and
in response to determining that the data object is already stored in the memory of the storage network:
identify location information for the data object;
store the location information using the source name; and
update metadata for the data object to indicate that an additional copy of the data object is stored in the memory of the storage network.
10 . The computing device of claim 9 , wherein the processing module is further configured to execute the operational instructions to:
in response to determining that the data object is not already stored in the memory of the storage network:
store the data object in the memory of the storage network using the source name; and
establish metadata for the data object, the metadata indicating that one copy of the data object is stored in the memory of the storage network.
11 . The computing device of claim 9 , wherein the processing module is further configured to execute the operational instructions to:
receive, via the at least one interface, a request to delete the data object; and
update the metadata to indicate that one less copy of the data object is stored in the memory of the storage network.
12 . The computing device of claim 11 , wherein the request to delete the data object includes a second data identifier, and wherein the processing module is further configured to execute the operational instructions to:
regenerate a corresponding source name for the data object based on the second data identifier;
determine that the corresponding source name corresponds to a link-object; and
delete the link-object.
13 . The computing device of claim 9 , wherein the processing module is further configured to execute the operational instructions to:
receive, via the at least one interface, a request to delete the data object;
regenerate a corresponding source name for the data object;
retrieve the metadata for the data object;
determine, based on the metadata, that one copy of the data object is currently stored in the memory of the storage network; and
delete the data object and the metadata for the data object from the memory of the storage network.
14 . The computing device of claim 9 , wherein updating metadata for the data object to indicate that an additional copy of the data object is stored in the memory of the storage network includes:
retrieving the metadata;
incrementing a copy count of the metadata by one to produce updated metadata; and
storing the updated metadata in the memory of the storage network.
15 . The computing device of claim 14 , wherein storing the updated metadata in the memory of the storage network includes:
encoding the updated metadata to produce a set of encoded data slices; and
facilitating, via the at least one interface, storage of the set of encoded data slices in the memory of the storage network.
16 . The computing device of claim 9 , wherein determining whether the data object is already stored in memory of the storage network includes:
generating a data tag for the data object; and
comparing the data tag to a list of data tags for stored data objects.
17 . A computer readable storage medium, comprising:
at least one memory section that stores operational instructions that, when executed by one or more processing modules of a computing device of a storage network, cause the computing device to:
receive a store data request including a data object and a data identifier;
generate a source name for the data object;
determine whether the data object is already stored in memory of the storage network; and
in response to determining that the data object is already stored in the memory of the storage network:
identify location information for the data object;
store the location information using the source name; and
update metadata for the data object to indicate that an additional copy of the data object is stored in the memory of the storage network.
18 . The computer readable storage medium of claim 17 , wherein the operational instructions further cause the computing device to:
in response to determining that the data object is not already stored in the memory of the storage network:
store the data object in the memory of the storage network using the source name; and
establish metadata for the data object, the metadata indicating that one copy of the data object is stored in the memory of the storage network.
19 . The computer readable storage medium of claim 17 , wherein the operational instructions further cause the computing device to:
receive a request to delete the data object; and
update the metadata to indicate that one less copy of the data object is stored in the memory of the storage network.
20 . The computer readable storage medium of claim 19 , wherein the request to delete the data object includes a second data identifier, and wherein the operational instructions further cause the computing device to:
regenerate a corresponding source name for the data object based on the second data identifier;
determine that the corresponding source name corresponds to a link-object; and
delete the link-object.