SELECTING STORAGE FACILITIES IN A PLURALITY OF DISPERSED STORAGE NETWORKS
A method begins by receiving a data storage request and determining target operational parameters of a set of dispersed storage (DS) units of a dispersed storage network (DSN). The method continues by determining candidate DS units. The method continues by determining a memory optimization factor for each of the DS units on a unit-by-unit basis and optimizing the DS unit memory utilization of one or more selected DS units based on the memory optimization factor. The method continues by finalizing the operational parameters. The method continues by encoding data slices of the data object and sending the encoded data slices with a store command to selected ones of the DS units. The method continues by updating a file directory to include an identity of the selected ones of the DS units and an identity of the set of encoded data slices stored therein.
1 . A method comprises:
receiving a store data object message;
determining target operational parameters of a set of dispersed storage (DS) units of a dispersed storage network (DSN), wherein the DS units store in memory a set of encoded data slices;
determining memory utilization for the DS units;
determining memory utilization optimization for the DS units;
optimizing the DS unit memory utilization;
redetermining operational parameters;
sending error encoded (EC) data slices with a store command to selected ones of the DS units; and
updating a file directory to include an identity of the selected ones of the DS units and an identity of the set of encoded data slices stored therein.
2 . The method of claim 1 further comprises the optimizing of the DS unit memory utilization including transferring one or more previously stored slices of the set of encoded data slices from one or more DS units to other DS units.
3 . The method of claim 2 further comprising the transferring including: deleting previously transferred encoded data slices from the memory of the first DS unit and updating the file directory to indicate that the encoded data slices are now stored in the memory of the other DS units.
4 . The method of claim 1 further comprises the optimizing of the DS unit memory utilization including one or more of:
deleting old slices of the set of encoded data slices;
deleting low priority slices of the set of encoded data slices;
lowering utilized memory to free up memory space;
transferring one or more selected slices to a different storage level;
transferring one or more selected slices to long term or limited storage;
transferring one or more selected slices to higher reliability storage; and
transferring one or more selected slices to less storage.
5 . The method of claim 1 , wherein the file directory comprises a virtual dispersed storage network (DSN) address to physical location table.
6 . The method of claim 1 , wherein the store data object message includes at least one of:
user device ID; user vault lookup, store request command; data object name; data object; data type; data size; a performance requirement; a security indicator; a priority indicator; and metadata input.
7 . The method of claim 1 , wherein the store data object message is received from at least one of:
a user device; another DS processing unit; a DS managing unit; a storage integrity processing unit; and the DS unit.
8 . The method of claim 1 further comprises determining the target operational parameters based on one or more of:
operational parameters; user device ID; user vault lookup; store request command; data object name; data object; data type; data size; a performance requirement; a security indicator; a priority indicator; and metadata input.
9 . The method of claim 1 , wherein the operational parameters include one or more of:
pillar width; read threshold; write threshold; encoding method; slicing method; encryption method; and encryption key(s).
10 . The method of claim 1 further comprises determining the memory utilization of the DS units based on one or more of:
the DS units; a list; a query of a memory utilization agent; and a query of the DS units.
11 . The method of claim 1 , wherein the memory utilization may include one or more of:
memory capacity; available memory; utilized memory; storage costs; rebuild time; location; security rating; security breach history; memory availability of other DS units; and slice names.
12 . The method of claim 1 further comprises performing optimizing in stages by optimizing, redetermining and, when needed, optimizing again.
13 . The method of claim 1 further comprises optimizing as a periodic background task.
14 . The method of claim 1 further comprises optimizing by selecting local DS units.
15 . A method comprises:
receiving a store data object message;
determining target operational parameters of a set of dispersed storage (DS) units of a dispersed storage network (DSN), wherein the DS units store in memory a set of encoded data slices;
determining candidate DS units;
determining a memory optimization factor for each of the DS units on a unit-by-unit basis;
optimizing the DS unit memory utilization of one or more selected DS units based on the memory optimization factor;
finalizing the operational parameters;
encoding data slices of the data object;
sending the encoded data slices with a store command to selected ones of the DS units; and
updating a file directory to include an identity of the selected ones of the DS units and an identity of the set of encoded data slices stored therein.
16 . The method of claim 15 further comprises the optimizing of the DS unit memory utilization including transferring one or more previously stored slices of the set of encoded data slices from one or more DS units to other DS units.
17 . The method of claim 15 further comprises the optimizing of the DS unit memory utilization including recognizing of storage vaults which overutilize one or more DS units.
18 . The method of claim 15 , wherein the vaults which overutilize one or more DS units comprise overlapping vaults.
19 . The method of claim 15 further comprises the optimizing of the DS unit memory utilization including one or more of:
deleting old slices of the set of encoded data slices;
deleting low priority slices of the set of encoded data slices
lowering utilized memory to free up memory space;
transferring one or more selected slices to a different storage level;
transferring one or more selected slices to long term or limited storage;
transferring one or more selected slices to higher reliability storage;
transferring one or more selected slices to local DS units; and
transferring one or more selected slices to less storage.
20 . A computer comprises:
an interface; and
a processing module operable to:
receive a store data object message;
determine target operational parameters of a set of dispersed storage (DS) units of a dispersed storage network (DSN), wherein the DS units store in memory a set of encoded data slices;
determine candidate DS units;
determine a memory optimization factor for each of the DS units on a unit-by-unit basis;
optimize the DS unit memory utilization of one or more selected DS units based on the memory optimization factor;
finalize the operational parameters;
encode data slices of the data object;
send the encoded data slices with a store command to selected ones of the DS units; and
update a file directory to include an identity of the selected ones of the DS units and an identity of the set of encoded data slices stored therein.