Patent classifications
G06F2211/1028
Construction of MBR (minimum bandwidth regenerating) codes and a method to repair the storage nodes
This invention gives a coding method of MBR (Minimum Bandwidth Regenerating) codes. The related method includes the following steps: equally divide the original file of size B into k(k+1)/2 blocks, obtaining the first packets; construct a symmetrical k×k system matrix S with these first packets; generate k ID codes, wherein each ID code contains k elements; obtain the coded packet through operations between one column of the system matrix and the ID code; repeat the above steps with (n−k) different columns of the system matrix separately to get the (n−k) coded packets; construct the (n−k)×k check matrix P with the column number g which is the serial number of the ID codes in the coded packet set P.sub.g; store the rows of the system matrix and coded matrix to n nodes, each node stores one row. The present invention also involves a method to repair the failed nodes of the above coding scheme.
Distributed rebuilding of data in a dispersed storage network
A technique of rebuilding data slices in a dispersed storage network when detecting a plurality of data slices that require rebuilding. A plurality of rebuilding resources capable for use to rebuild the plurality of data slices are determined and based on an attribute associated with the determination, a rebuilding task is apportioned and the apportioned tasks are assigned to the plurality of rebuilding resources to rebuild the data slices. The apportionment of the tasks permit more than one rebuilding resource and associated distributed storage unit to perform the rebuild of the data slices.
Storing data in a dispersed storage network
A method begins by a computing device generating a set of write requests regarding a set of encoded data slices and sending the set of write requests to a set of storage units, where each write request includes an encoded data slice, a corresponding slice name, and a transaction number. The method continues with each of at least some of the storage units generating a write response that includes the transaction number and a list of revision levels corresponding to the slice name. The method continues with the computing device receiving the write responses from the at least some of the storage units, determining a most current revision level based on the lists of revision levels and generating a set of write commit messages, where a write commit message includes the transaction number and a new revision level for the set of encoded data slices.
SYNCHRONOUSLY STORING DATA IN A PLURALITY OF DISPERSED STORAGE NETWORKS
A method begins with a processing module obtaining a data object from a user and identifying a plurality of virtual storage vaults (VSVs) for storage of the data object. The method continues with the processing module determining dispersal error encoding parameters associated with a first virtual storage vault and error encoding the data object in accordance with those dispersal error encoding parameters to produce a corresponding plurality of sets of encoded data slices (EDSs), issuing write slice requests for the EDSs and receiving EDS information from at least some of the plurality of VSVs. When the EDS information indicates that a threshold number of VSVs have successfully stored the plurality of sets of encoded data slices within a synchronization timeframe, the method continues with the processing module issuing a favorable response to the user, or when a threshold number of VSVs have not successfully stored the plurality of sets of encoded data slices initiating a retry process.
DETERMINING WHEN TO USE CONVERGENT ENCRYPTION
A data encryption system receives data to be encrypted prior to being transmitted to a storage unit. The received data is analyzed to determine a secure storage approach based on a risk level associated with the received data. In response to the risk level satisfying a threshold risk level the data encryption system uses a convergent encryption technique to encrypt the received data, but in response to the risk level failing to satisfy the threshold risk level, the data encryption system encrypts the received data using a key based on a random number. The encrypted data is transmitted to a storage unit.
Cache for file-based dispersed storage
A method obtains at least part of a file from a dispersed storage network (DSN) memory, and stores it in a data object cache. When the file is changed, a determination is made about where to store the changed file portions: in the data object cache or in the DSN. The changed file portions, for example a new copy of the part of the file obtained from the DSN, are encoded utilizing an error coding dispersal storage function, and stored in either the data object cache, or in the DSN memory.
METHOD AND APPARATUS FOR REBUILDING REDUNDANT ARRAY OF INDEPENDENT DISKS
Embodiments of the present disclosure relate to a method and apparatus for rebuilding redundant array of independent disks (RAID). The method comprises dividing a RAID group including a disk into a plurality of stripes in response to detecting a failure of the disk, and each stripe includes a disk slice across all disks of the RAID group. The method further comprises mapping the plurality of stripes to other RAID groups respectively and rebuilding data on the plurality of stripes in other RAID groups. Embodiments of the present disclosure rebuild in parallel the stripes of the failed RAID group in other RAID groups, thereby effectively increasing the rebuilding speed for RAID and ensuring reliability of the RAID group.
Resolving write conflicts in a dispersed storage network
A method includes a storage unit receiving a respective write request of a first set of write requests, wherein the first set of write requests functions as a write lock request. The method further includes the storage unit determining whether the storage unit has writing of the data object currently locked. The method further includes the storage unit sending a write lock response regarding the data object. The method further includes the storage unit, when a number of write lock responses indicate a write lock of the data object for the computing device and the number is equal to or exceeds a write lock response threshold, receive respective write requests from each set of a plurality of sets of write requests, wherein the plurality of sets of write requests includes write requests for remaining sets of encoded data slices of the plurality of sets of encoded data slices.
Site-based namespace allocation
A distributed storage network (DSN) can include a DSN memory and a distributed storage (DS) managing unit in communication with the DSN memory. The DSN memory includes DS units physically located at different sites. The DS units store encoded data slices associated with a storage vault having a number of pillars and a read threshold. The number of pillars correspond to a number of encoded data slices generated from a particular segment of data, and the read threshold corresponds to subset of those encoded data slices required to reconstruct the particular segment of data. The DS managing unit assigns storage of particular encoded data slices to particular DS units based, at least in part, on a pillar associated with the encoded data slices and on the physical locations, e.g. the sites, at which the DS units are located.
Retrieving Data in a Storage Network
A method for execution by a dispersed storage and task (DST) client module includes issuing a read threshold number of read slice requests are issued to storage units of the set of storage units. One or more encoded slices of a selected read threshold number of encoded slices are received. When a next encoded data slice of a decode threshold number of encoded data slices is received within a response timeframe, outputting of the next encoded data slice is initiated. When the next encoded data slice is not received within the response timeframe, receiving of another decode threshold number of encoded slices of the set of encoded slices is facilitated. The other decode threshold number of encoded slices are decoded to produce recovered encoded data slices, where the recovered encoded data slices includes at least a recovered next encoded data.
Outputting of the recovered next encoded data slice is initiated.