IP Library › Granted Patent US 10,673,463
Granted Patent B2
US 10,673,463 · App. 16/170,909 · Granted Jun 2, 2020

Combined blocks of parts of erasure coded data portions

Inventors: Russell Ian Monk (Caldicot, GB); Mark Robert Watkins (Bristol, GB); Peter Thomas Camble (Bristol, GB)
Assignee: Hewlett Packard Enterprise Development LP
H03M13/2906G06F11/1076H03M13/154H03M13/1515
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,673,463
App. No.
16/170,909
Granted
Jun 2, 2020
Kind
B2
Abstract

Examples are disclosed including generation of a first erasure coded data portion based on a first data portion of the data object, generation of a second erasure coded data portion based on a second data portion of the data object, formation of a first combined block by combining a first part of the first erasure coded data portion and a first part of the second erasure coded data portion, formation of a second combined block by combining a second part of the first erasure coded data portion and a second part of the second erasure coded data portion, storage of the first combined block in a first storage location, and storage of the second combined block in a second storage location.

Claims (59)

1. A method of storing a data object, the method comprising:

generating a first erasure coded data portion based on a first data portion of the data object;

generating a second erasure coded data portion based on a second data portion of the data object;

forming a first combined block by combining a first part of the first erasure coded data portion and a first part of the second erasure coded data portion;

forming a second combined block by combining a second part of the first erasure coded data portion and a second part of the second erasure coded data portion;

storing the first combined block in a first storage location; and

storing the second combined block in a second storage location different than the first storage location.

2. The method of claim 1 , comprising generating a third erasure coded data portion based on a third data portion of the data object, and wherein:

forming the first combined block comprises combining the first part of the first erasure coded data portion, the first part of the second erasure coded data portion, and a first part of the third erasure coded data portion; and

forming the second combined block comprises combining the second part of the first erasure coded data portion, the second part of the second erasure coded data portion, and a second part of the third erasure coded data portion.

3. The method of claim 1 , comprising:

forming a third combined block, comprising combining a third part of the first erasure coded data portion and a third part of the second erasure coded data portion; and

storing the third combined block in a third storage location.

4. The method of claim 1 , wherein generating the first erasure coded data portion comprises Reed Solomon coding the first data portion of the data object, and generating the second erasure coded data portion comprises Reed Solomon coding the second data portion of the data object.

5. The method of claim 1 , wherein:

storing the first combined block in the first storage location comprises storing the first combined block in the first storage location in a single storage operation; and

storing the second combined block in the second storage location storing the second combined block in the second storage location in a single storage operation.

6. The method of claim 1 , wherein:

storing the first combined block in the first storage location comprises storing the first combined block in the first storage location as a first single file; and

storing the second combined block in the second storage location storing the second combined block in the second storage location as a second single file.

7. The method of claim 1 , wherein:

generating the first erasure coded data portion comprises compressing, encrypting and erasure coding the first data portion of the data object; and

generating the second erasure coded data portion comprises compressing, encrypting and erasure coding the second data portion of the data object.

8. The method of claim 1 , comprising, in response to a request for the first data portion of the data object, retrieving the first part of the first erasure coded data portion from the first storage location, and the second part of the first erasure coded data portion from the second storage location.

9. The method of claim 8 , comprising:

decoding the first part of the first erasure coded data portion and the second part of the first erasure coded data portion to form a decoded data portion; and

decrypting and decompressing the decoded data portion to form the first data portion of the data object.

10. A method of retrieving at least a portion of a data object, the method comprising:

retrieving at least a first part of a first erasure coded data portion from a first storage location, wherein the first part of the first erasure coded data portion is part of a first combined block stored in the first storage location and comprising the first part of a second erasure coded data portion;

retrieving a second part of the first erasure coded data portion from a second storage location, wherein the second part of the first erasure coded data portion is part of a second combined block stored in the second storage location and comprising the second part of the second erasure coded data portion; and

deriving a first data portion from the first erasure coded data portion, including erasure decoding the first erasure coded data portion.

11. The method of claim 10 , wherein the deriving further comprises:

decrypting and decompressing the first erasure coded data portion to form the first data portion of the data object.

12. The method of claim 10 , comprising:

retrieving a first part of each of a plurality of erasure coded data portions from the first storage location, wherein the first parts of each of the plurality erasure coded data portions are stored in the first storage location as the first combined block;

retrieving a second part of each of the plurality of erasure coded data portions from the second storage location, wherein the second parts of the plurality of erasure coded data portions in the second storage location as the second combined block; and

erasure decoding the erasure coded data portions to form a first data portion of the data object from the first parts and a second data portion of the data object from the second parts.

13. The method of claim 12 , further comprising forming the data object based on at least the first data portion and the second data portion.

14. A non-transitory machine readable storage medium comprising instructions that, when executed by a processor, cause the processor to:

store a first combined block in a first storage location of a first computing device, the first combined block comprising a first part of a first erasure coded data portion and a first part of a second erasure coded data portion, the first erasure coded data portion being based on a first data portion of a data object and the second erasure coded data portion being based on a second data portion of the data object; and

store a second combined block in a second storage location of a second computing device that is physically remote from the first computing device, the second combined block comprising a second part of the first erasure coded data portion and a second part of the second erasure coded data portion.

15. The non-transitory machine readable storage medium of claim 14 , comprising instructions that, when executed by the processor, cause the processor to:

generate the first erasure coded data portion based on the first data portion of the data object; and

generate the second erasure coded data portion based on the second data portion of the data object.

16. The non-transitory machine readable storage medium of claim 14 , comprising instructions that, when executed by the processor, cause the processor to:

store the first combined block in the first storage location in a single storage operation; and

store the second combined block in the second storage location in a single storage operation.

17. The non-transitory machine readable storage medium of claim 14 , comprising instructions that, when executed by the processor, cause the processor to:

store the first combined block in the first storage location as a first single file; and

store the second combined block in the second storage location as a second single file.

18. The non-transitory machine readable storage medium of claim 14 , comprising instructions that, when executed by the processor, cause the processor to:

generate a third erasure coded data portion based on a third data portion of the data object;

form the first combined block, comprising combining the first part of the first erasure coded data portion, the first part of the second erasure coded data portion, and a first part of the third erasure coded data portion, wherein the third erasure coded data portion is based on the third data portion of the data object; and

form the second combined block, comprising combining the second part of the first erasure coded data portion, the second part of the second erasure coded data portion, and a second part of the third erasure coded data portion.

19. The non-transitory machine readable storage medium of claim 14 , comprising instructions that, when executed by the processor, cause the processor to:

store a third combined block in a third storage location, the third combined block comprising a third part of the first erasure coded data portion and a third part of the second erasure coded data portion.

20. The non-transitory machine readable storage medium of claim 14 , comprising instructions that, when executed by the processor, cause the processor to:

generate the first erasure coded data portion by compressing, encrypting and erasure coding the first data portion of the data object; and

generate the second erasure coded data portion by compressing, encrypting and erasure coding the second data portion of the data object.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2020
From: MONK, RUSSELL IAN; WATKINS, MARK ROBERT; CAMBLE, PETER THOMAS
To: HEWLETT-PACKARD LIMITED
Reel/Frame 054629/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2020
From: HEWLETT-PACKARD LIMITED
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 054629/0574 →
Continuity (1)
Related Publication 20200136656A1 · Apr 30, 2020