Back to results
US 10,379,953 B2Granted
Distributed object storage system
AssigneeWestern Digital Technologies, Inc.
InventorsKoen De Keyser, Frederik De Schrijver, Bastiaan Stougie
Life of this patent
Estimating the term…
Abstract
A distributed object storage system has a monitoring agent and/or a maintenance agent configured to determine for each of a plurality of repair tasks the actual concurrent failure tolerance of a corresponding repair data object. The actual concurrent failure tolerance corresponds to the number of storage elements that store sub blocks of the repair data object and are allowed to fail concurrently.
Claims15
A distributed object storage system, comprising:
- a plurality of storage elements configured to store and retrieve a data object, the data object stored as a first number of redundant sub blocks;
- and
- a controller node coupled with the plurality of storage elements, the controller node including:
- a processor;
- a memory;
- a maintenance agent stored in the memory and executable by the processor to execute a repair task;
- a clustering module stored in the memory and executable by the processor to retrieve remaining redundant sub blocks of the data object and determine a number of missing redundant sub blocks of the data object;
- a decoding module stored in the memory and executable by the processor to assemble a repair data object from the remaining redundant sub blocks of the data object;
- an encoding module stored in the memory and executable by the processor to disassemble the repair data object into a second number of redundant sub blocks, the second number of redundant sub blocks being greater than or equal to the number of missing redundant sub blocks of the data object;
- a spreading module stored in the memory and executable by the processor to store the second number of redundant sub blocks to the plurality of storage elements such that a sum of the second number of redundant sub blocks and a number of the remaining redundant sub blocks is greater than or equal to a desired spreading width for the data object;
- and
- a monitoring agent stored in the memory and executable by the processor to:
- determine an actual concurrent failure tolerance of the data object, wherein the actual concurrent failure tolerance corresponds to an actual number of storage elements that store the remaining redundant sub blocks of the data object and are allowed to fail concurrently;
- determine a difference between the actual concurrent failure tolerance of the data object and a desired concurrent failure tolerance of the data object, wherein the desired concurrent failure tolerance corresponds to a maximum number of storage elements that store the first number of redundant sub blocks that are allowed to fail concurrently;
- and
- generate the repair task in response to determining that the difference between the actual concurrent failure tolerance of the data object and the desired concurrent failure tolerance of the data object satisfies a first threshold.
13 more elements
A method, comprising:
- identifying that a data object stored as a first number of redundant sub blocks on a plurality of storage elements in a distributed object storage system is not correctly stored in the distributed object storage system;
- determining an actual concurrent failure tolerance of the data object, wherein the actual concurrent failure tolerance corresponds to an actual number of storage elements that store remaining redundant sub blocks of the data object and are allowed to fail concurrently;
- determining a difference between the actual concurrent failure tolerance of the data object and a desired concurrent failure tolerance of the data object, wherein the desired concurrent failure tolerance corresponds to a maximum number of storage elements that store the first number of redundant sub blocks that are allowed to fail concurrently;
- generating, in response to determining that the difference between the actual concurrent failure tolerance of the data object and the desired concurrent failure tolerance of the data object satisfies a first threshold, a repair task for the data object;
- and
- executing the repair task, including:
- retrieving remaining redundant sub blocks of the data object;
- determining a number of missing redundant sub blocks of the data object;
- assembling a repair data object from the remaining redundant sub blocks of the data object;
- disassembling the repair data object into a second number of redundant sub blocks, the second number of redundant sub blocks being greater than or equal to the number of missing redundant sub blocks of the data object;
- and
- storing the second number of redundant sub blocks to the plurality of storage elements such that a sum of the second number of redundant sub blocks and a number of the remaining redundant sub blocks is greater than or equal to a desired spreading width for the data object.
9 more elements
A distributed object storage system, comprising:
- means for storing and retrieving a data object, the data object stored as a first number of redundant sub blocks;
- a processor;
- a memory;
- means, stored in the memory and executable by the processor, for executing a repair task;
- means, stored in the memory and executable by the processor, for retrieving remaining redundant sub blocks of the data object and determining a number of missing redundant sub blocks of the data object;
- means, stored in the memory and executable by the processor, for assembling a repair data object from the remaining redundant sub blocks of the data object;
- means, stored in the memory and executable by the processor, for disassembling the repair data object into a second number of redundant sub blocks, the second number of redundant sub blocks being greater than or equal to the number of missing redundant sub blocks of the data object;
- means, stored in the memory and executable by the processor, for storing the second number of redundant sub blocks such that a sum of the second number of redundant sub blocks and a number of the remaining redundant sub blocks is greater than or equal to a desired spreading width for the data object;
- means, stored in the memory and executable by the processor, for determining an actual concurrent failure tolerance of the data object, wherein the actual concurrent failure tolerance corresponds to an actual number of storage elements that store the remaining redundant sub blocks of the data object and are allowed to fail concurrently;
- means, stored in the memory and executable by the processor, for determining a difference between the actual concurrent failure tolerance of the data object and a desired concurrent failure tolerance of the data object, wherein the desired concurrent failure tolerance corresponds to a maximum number of storage elements that store the first number of redundant sub blocks that are allowed to fail concurrently;
- and
- means, stored in the memory and executable by the processor, for generating the repair task in response to determining that the difference between the actual concurrent failure tolerance of the data object and the desired concurrent failure tolerance of the data object satisfies a first threshold.
9 more elements
Dependencies are inferred from the claim text.