IP Library Granted Patent US 10,133,616
Granted Patent B2
US 10,133,616 · App. 15/590,856 · Granted Nov 20, 2018

Hybrid distributed storage system

Inventors: Frederik De Schrijver (Wenduine, BE); Bastiaan Stougie (Melle, BE); Koen De Keyser (Sint-Denijs-Westrem, BE)
Assignee: Western Digital Technologies, Inc.
G06F11/076G06F11/0727
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,133,616
App. No.
15/590,856
Granted
Nov 20, 2018
Kind
B2
Abstract

There is provided a distributed object storage system that includes several performance optimizations with respect to efficiently storing data objects when coping with a desired concurrent failure tolerance of concurrent failures of storage elements which is greater than two and with respect to optimizing encoding/decoding overhead and the number of input and output operations at the level of the storage elements.

Claims (71)

1. A method of storing a data object on a distributed storage system including a plurality of storage elements, the method comprising:

selecting, by a controller node of the distributed storage system, a fragment storage subset of the plurality of storage elements based on a fragment spreading width, wherein: the fragment spreading width equals a sum of a basic fragment storage element count and a redundant fragment storage element count; the basic fragment storage element count corresponds to a quantity of storage elements of the fragment storage subset that are configured to not be allowed to fail; and the redundant fragment storage element count corresponds to a quantity of storage elements of the fragment storage subset that are configured to be allowed to concurrently fail;

selecting, by the controller node, a replication storage subset of the plurality of storage elements, the replication storage subset including a replication storage count of the storage elements, wherein: the replication storage count is equal to or greater than one; and a sum of the replication storage count and the redundant fragment storage element count is equal to or greater than a defined concurrent failure tolerance;

generating, by the controller node, a fragment collection including a quantity of replication copies of the data object and an encoding multiple of generated fragments multiplied by the fragment spreading width, wherein the quantity of replication copies of the data object is equal to the replication storage count;

storing, on each storage element of the fragment storage subset, a fragment sub-collection comprising at least the encoding multiple of generated fragments; and

storing, on each storage element of the replication storage subset, a replication copy.

2. The method of claim 1 , wherein:

the fragment storage subset includes the replication storage subset; and

the defined concurrent failure tolerance is equal to the redundant fragment storage element count.

3. The method of claim 1 , wherein:

the fragment storage subset and replication storage subset do not overlap; and

the redundant fragment storage element count is equal to the defined concurrent failure tolerance minus the replication storage count.

4. The method of claim 1 , further comprising:

attempting to retrieve at least one replication copy stored on at least one storage element of the replication storage subset; and

in response to the attempt to retrieve the at least one stored replication copy failing, retrieving a basic fragment count of fragments stored on the fragment storage subset, the basic fragment count corresponding to the basic fragment storage element count multiplied by the encoding multiple.

5. The method of claim 1 , further comprising:

retrieving the replication copy from at least one storage element of the replication storage subset; and

generating a retrieved data object using the retrieved replication copy.

6. The method of claim 1 , wherein:

the replication storage count is less than the redundant fragment storage element count and

the redundant fragment storage element count is greater than or equal to three.

7. The method of claim 1 , wherein:

the replication storage count is equal to one; and

the redundant fragment storage element count is greater than or equal to three.

8. A distributed storage system comprising:

a plurality of storage elements configured to store and retrieve a data object; and

a controller node coupled to at least one of the storage elements, the controller node configured to:

select a fragment storage subset of the plurality of storage elements based on a fragment spreading width, wherein: the fragment spreading width equals a sum of a basic fragment storage element count and a redundant fragment storage element count; the basic fragment storage element count corresponds to a quantity of storage elements of the fragment storage subset that are configured to not be allowed to fail; and the redundant fragment storage element count corresponds to a quantity of storage elements of the fragment storage subset that are configured to be allowed to concurrently fail;

select a replication storage subset of the plurality of storage elements, the replication storage subset including a replication storage count of the storage elements, wherein: the replication storage count is equal to or greater than one; and a sum of the replication storage count and the redundant fragment storage element count is equal to or greater than a defined concurrent failure tolerance;

generate a fragment collection including a quantity of replication copies of the data object and an encoding multiple of generated fragments multiplied by the fragment spreading width, wherein the quantity of replication copies of the data object is equal to the replication storage count;

store, on each storage element of the fragment storage subset, a fragment sub-collection comprising at least the encoding multiple of generated fragments; and

store, on each storage element of the replication storage subset, a replication copy.

9. The distributed storage system of claim 8 , wherein:

the fragment storage subset includes the replication storage subset; and

the defined concurrent failure tolerance is equal to the redundant fragment storage element count.

10. The distributed storage system of claim 8 , wherein:

the fragment storage subset and replication storage subset do not overlap; and

the redundant fragment storage element count is equal to the defined concurrent failure tolerance minus the replication storage count.

11. The distributed storage system of claim 8 , wherein the controller node is further configured to:

attempt to retrieve at least one replication copy stored on at least one storage element of the replication storage subset; and

in response to the attempt to retrieve the at least one stored replication copy failing, retrieve a basic fragment count of fragments stored on the fragment storage subset, the basic fragment count corresponding to the basic fragment storage element count multiplied by the encoding multiple.

12. The distributed storage system of claim 8 , wherein the controller node is further configured to:

retrieve the replication copy from at least one storage element of the replication storage subset; and

generate a retrieved data object using the retrieved replication copy.

13. The distributed storage system of claim 8 , wherein:

the replication storage count is less than the redundant fragment storage element count; and

the redundant fragment storage element count is greater than or equal to three.

14. The distributed storage system of claim 8 , wherein:

the replication storage count is equal to one; and

the redundant fragment storage element count is greater than or equal to three.

15. A system comprising:

means for selecting a fragment storage subset of a plurality of storage elements based on a fragment spreading width, wherein: the fragment spreading width equals a sum of a basic fragment storage element count and a redundant fragment storage element count; the basic fragment storage element count corresponds to a quantity of storage elements of the fragment storage subset that are configured to not be allowed to fail; and the redundant fragment storage element count corresponds to a quantity of storage elements of the fragment storage subset that are configured to be allowed to concurrently fail;

means for selecting a replication storage subset of the plurality of storage elements, the replication storage subset including a replication storage count of the storage elements, wherein: the replication storage count is equal to or greater than one; and a sum of the replication storage count and the redundant fragment storage element count is equal to or greater than a defined concurrent failure tolerance;

means for generating a fragment collection including a quantity of replication copies of a data object and an encoding multiple of generated fragments multiplied by the fragment spreading width, wherein the quantity of replication copies of the data object is equal to the replication storage count;

means for storing, on each storage element of the fragment storage subset, a fragment sub-collection comprising at least the encoding multiple of generated fragments; and

means for storing, on each storage element of the replication storage subset, a replication copy.

16. The system of claim 15 , wherein:

the fragment storage subset includes the replication storage subset; and

the defined concurrent failure tolerance is equal to the redundant fragment storage element count.

17. The system of claim 15 , wherein:

the fragment storage subset and replication storage subset do not overlap; and

the redundant fragment storage element count is equal to the defined concurrent failure tolerance minus the replication storage count.

18. The system of claim 15 , further comprising:

means for attempting to retrieve at least one replication copy stored on at least one storage element of the replication storage subset; and

means for, in response to the attempt to retrieve the at least one stored replication copy failing, retrieving a basic fragment count of fragments stored on the fragment storage subset, the basic fragment count corresponding to the basic fragment storage element count multiplied by the encoding multiple.

19. The system of claim 15 , further comprising:

means for retrieving the replication copy from at least one storage element of the replication storage subset; and

means for generating a retrieved data object using the retrieved replication copy.

20. The system of claim 15 , wherein:

the replication storage count is less than the redundant fragment storage element count; and

the redundant fragment storage element count is greater than or equal to three.

Assignments (6)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2018
From: AMPLIDATA NV
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046739/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2017
From: DE SCHRIJVER, FREDERIK; STOUGIE, BASTIAAN; DE KEYSER, KOEN
To: AMPLIDATA N.V.
Reel/Frame 042356/0082 →
Continuity (2)
Continuation 14712570 · May 14, 2015
Related Publication 20170242739A1 · Aug 24, 2017