Balancing memory utilization in a dispersed storage network
First Claim
1. A method for execution by a set of storage units of a dispersed storage network (DSN), the method comprises:
- receiving, by the set of storage units of the DSN, sets of encoded data slices for storage;
storing, by each storage unit of the set of storage units, respective groups of encoded data slices of the sets of encoded data slices, wherein a first storage unit of the set of storage units stores a first group of encoded data slices that includes a first encoded data slice from each of the sets of encoded data slices and a second storage unit of the set of storage units stores a second group of encoded data slices that includes a second encoded data slice from each of the sets of encoded data slices;
utilizing, by the first storage unit, a first load balancing scheme to distributedly store the first group of encoded data slices among a first plurality of memory devices of the first storage unit, wherein the first load balancing scheme functions to distribute the first group of encoded data slices substantially equally among the first plurality of memory devices, and further wherein the data size of one or more encoded data slices of the first of group encoded data slices is substantially larger than at least one other encoded data slice of the first of group encoded data slices;
utilizing, by the second storage unit, the first load balancing scheme to distributedly store the second group of encoded data slices among a second plurality of memory devices of the second storage unit, wherein the data size of one or more encoded data slices of the second of group encoded data slices is substantially larger than at least one other encoded data slice of the second of group encoded data slices;
utilizing, by the first storage unit, a second load balancing scheme to redistribute at least one encoded data slice of the first group of encoded data slices between a pair of memory devices within the first plurality of memory devices when a first available memory imbalance exists, wherein said imbalance comprises a difference of at least a threshold amount of available memory between the pair of memory devices, wherein the second load balancing scheme functions to provide approximately equal available memory capacity between the pair of memory devices;
modifying a DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices to produce a modified DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices;
translating, by the first storage unit, the modified DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices to a first physical address,wherein the first physical address is associated with a memory device from the first plurality of memory devices;
utilizing, by the second storage unit, the second load balancing scheme to redistribute at least one encoded data slice of the second group of encoded data slices between a pair of memory devices within the second plurality of memory devices when a second available memory imbalance exists, wherein said imbalance comprises a difference of at least a threshold amount of available memory between the pair of memory devices within the second plurality of memory devices, wherein the second load balancing scheme functions to provide approximately equal available memory capacity between the pair of memory devices within the second plurality of memory devices;
modifying a DSN memory address for the redistributed at least one encoded data slice of the second group of encoded data slices to produce a modified DSN memory address for the redistributed at least one encoded data slice of the second group of encoded data slices; and
translating, by the second storage unit, the modified DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices to a second physical address, wherein the second physical address is associated with a memory device from the second plurality of memory devices.
5 Assignments
0 Petitions
Accused Products
Abstract
A method begins by a processing module storing a plurality of encoded data slices in a plurality of memory devices of a dispersed storage (DS) unit of a dispersed storage network (DSN) memory using a quantity load balancing function to substantially balance a quantity of encoded data slices stored within each of the plurality of memory devices, wherein data size of at least some of the plurality of encoded data slices is different. The method continues with the processing module determining whether an available memory imbalance exists between a first memory device of the plurality of memory devices and a second memory device of the plurality of memory devices. The method continues with the processing module migrating one or more encoded data slices between the first and second memory devices to reduce the available memory imbalance when the available memory imbalance exists.
-
Citations
16 Claims
-
1. A method for execution by a set of storage units of a dispersed storage network (DSN), the method comprises:
-
receiving, by the set of storage units of the DSN, sets of encoded data slices for storage; storing, by each storage unit of the set of storage units, respective groups of encoded data slices of the sets of encoded data slices, wherein a first storage unit of the set of storage units stores a first group of encoded data slices that includes a first encoded data slice from each of the sets of encoded data slices and a second storage unit of the set of storage units stores a second group of encoded data slices that includes a second encoded data slice from each of the sets of encoded data slices; utilizing, by the first storage unit, a first load balancing scheme to distributedly store the first group of encoded data slices among a first plurality of memory devices of the first storage unit, wherein the first load balancing scheme functions to distribute the first group of encoded data slices substantially equally among the first plurality of memory devices, and further wherein the data size of one or more encoded data slices of the first of group encoded data slices is substantially larger than at least one other encoded data slice of the first of group encoded data slices; utilizing, by the second storage unit, the first load balancing scheme to distributedly store the second group of encoded data slices among a second plurality of memory devices of the second storage unit, wherein the data size of one or more encoded data slices of the second of group encoded data slices is substantially larger than at least one other encoded data slice of the second of group encoded data slices; utilizing, by the first storage unit, a second load balancing scheme to redistribute at least one encoded data slice of the first group of encoded data slices between a pair of memory devices within the first plurality of memory devices when a first available memory imbalance exists, wherein said imbalance comprises a difference of at least a threshold amount of available memory between the pair of memory devices, wherein the second load balancing scheme functions to provide approximately equal available memory capacity between the pair of memory devices; modifying a DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices to produce a modified DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices; translating, by the first storage unit, the modified DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices to a first physical address, wherein the first physical address is associated with a memory device from the first plurality of memory devices; utilizing, by the second storage unit, the second load balancing scheme to redistribute at least one encoded data slice of the second group of encoded data slices between a pair of memory devices within the second plurality of memory devices when a second available memory imbalance exists, wherein said imbalance comprises a difference of at least a threshold amount of available memory between the pair of memory devices within the second plurality of memory devices, wherein the second load balancing scheme functions to provide approximately equal available memory capacity between the pair of memory devices within the second plurality of memory devices; modifying a DSN memory address for the redistributed at least one encoded data slice of the second group of encoded data slices to produce a modified DSN memory address for the redistributed at least one encoded data slice of the second group of encoded data slices; and translating, by the second storage unit, the modified DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices to a second physical address, wherein the second physical address is associated with a memory device from the second plurality of memory devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer readable memory comprises:
-
a first memory that stores operational instructions that, when executed by one or more processors of a first storage unit of a set of storage units of a dispersed storage network (DSN), causes the first storage unit to; receive and store a first group of encoded data slices of sets of encoded data slices, wherein the first group of encoded data slices includes a first encoded data slice from each of the sets of encoded data slices; utilize a first load balancing scheme to distributedly store the first group of encoded data slices among a first plurality of memory devices of the first storage unit, wherein the first load balancing scheme functions to distribute the first group of encoded data slices substantially equally among the first plurality of memory devices, and further wherein the data size of one or more encoded data slices of the first of group encoded data slices is substantially larger than at least one other encoded data slice of the first of group encoded data slices; utilize a second load balancing scheme to redistribute at least one encoded data slice of the first group of encoded data slices between a pair of memory devices within the first plurality of memory devices when a first available memory imbalance exists, wherein said imbalance comprises a difference of at least a threshold amount of available memory between the pair of memory devices, wherein the second load balancing scheme functions to provide approximately equal available memory capacity between the pair of memory devices; modify a DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices to produce a modified DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices;
translate the modified DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices to a first physical address, wherein the first physical address is associated with a memory device from the first plurality of memory devices;a second memory that stores operational instructions that, when executed by one or more processors of a second storage unit of the set of storage units, causes the second storage unit to; receive and store a second group of encoded data slices of the sets of encoded data slices, wherein the second group of encoded data slices includes a second encoded data slice from each of the sets of encoded data slices; utilize the first load balancing scheme to distributedly store the second group of encoded data slices among a second plurality of memory devices of the second storage unit; utilize the second load balancing scheme to redistribute at least one encoded data slice of the second group of encoded data slices between a pair of memory devices within the second plurality of memory devices when a second available memory imbalance exists, wherein said imbalance comprises a difference of at least a threshold amount of available memory between the pair of memory devices within the second plurality of memory devices, wherein the second load balancing scheme functions to provide approximately equal available memory capacity between the pair of memory devices within the second plurality of memory devices; modify the DSN memory address for the redistributed at least one encoded data slice of the second group of encoded data slices to produce a modified DSN memory address for the redistributed at least one encoded data slice of the second group of encoded data slices; and translate the modified DSN memory address for the redistributed at least one encoded data slice of the first group of encoded data slices to a second physical address, wherein the second physical address is associated with a memory device from the second plurality of memory devices. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification