IP Library Granted Patent US 10,007,575
Granted Patent B2
US 10,007,575 · App. 15/237,773 · Granted Jun 26, 2018

Alternative multiple memory format storage in a storage network

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,007,575
App. No.
15/237,773
Granted
Jun 26, 2018
Kind
B2
Abstract

A method includes determining whether to request retrieval of the data segment from at least one of redundant array of independent discs (RAID) memory and dispersed storage network (DSN) memory. The method further includes, when the computing device determines to request retrieval from the RAID memory, sending a read request to the RAID memory. When the retrieval of the data segment from the RAID memory was unsuccessful, the method further includes generating a set of read requests regarding a set of encoded data slices corresponding to the data segment. The method further includes sending the set of read requests to a set of storage units of the DSN memory. The method further includes receiving at least a decode threshold number of encoded data slices from at least some storage units. The method further includes decoding the at least the decode threshold number of encoded data slices to recover the data segment.

Claims (75)

1. A method comprises:

for a data retrieval request regarding a data segment of a data object, determining, by a computing device of a storage network, whether to request retrieval of the data segment from at least one of redundant array of independent disk (RAID) memory of the storage network and dispersed storage network (DSN) memory of the storage network;

when the computing device determines to request retrieval from the RAID memory, sending, by the computing device, a read request to the RAID memory regarding the data segment;

determining, by the computing device, whether the retrieval of the data segment from the RAID memory was successful;

when the retrieval of the data segment from the RAID memory was unsuccessful:

generating, by the computing device, a set of read requests regarding a set of encoded data slices corresponding to the data segment;

sending, by the computing device, the set of read requests to a set of storage units of the DSN memory;

receiving, by the computing device, at least a decode threshold number of encoded data slices of the set of encoded data slices from at least some storage units of the set of storage units; and

decoding, by the computing device, the at least the decode threshold number of encoded data slices to recover the data segment.

2. The method of claim 1 further comprises:

when the retrieval of the data segment from the RAID memory was successful:

retrieving a data stripe from the RAID memory; and

recovering the data segment from the data stripe.

3. The method of claim 1 further comprises:

when the computing device determines to request retrieval from the DSN memory:

generating, by the computing device, the set of read requests regarding a set of encoded data slices corresponding to the data segment;

sending, by the computing device, the set of read requests to the set of storage units;

determining, by the computing device, whether the retrieval of the data segment from the DSN memory was successful;

when the retrieval of the data segment from the DSN memory was successful, sending, by the computing device, the read request to the RAID memory.

4. The method of claim 1 further comprises:

when the retrieval of the data segment from the RAID memory was unsuccessful because the data segment is not currently stored in RAID, determining whether memory space is available in the RAID memory;

determining, by the computing device, whether to further store the data segment in the RAID memory; and

when the memory space is available in the RAID memory and when the computing device determines to further store the data segment in the RAID memory:

creating, by the computing device, a data stripe based on the recovered data segment; and

writing, by the computing device, the data stripe to the RAID memory.

5. The method of claim 1 further comprises:

when the retrieval of the data segment from the RAID memory was successful:

retrieving a data stripe from the RAID memory;

recovering the data segment from the data stripe;

determining, by the computing device, whether the further store the data segment in the DSN memory; and

when the computing device determines to store the data segment in the DSN memory:

dispersed storage error encoding, by the computing device, the data segment to produce the set of encoded data slices; and

writing, by the computing device, the set of encoded data slices to the set of storage units.

6. The method of claim 1 , wherein the determining whether the retrieval of the data segment from the RAID memory was successful comprises one or more of:

determining the RAID memory is available; and

determining whether the data segment was retrieved from the RAID memory within a given time period.

7. A computing device comprises:

an interface;

memory; and

a processing module operably coupled to the interface and the memory, wherein the processing module is operably coupled to:

for a data retrieval request regarding a data segment of a data object, determine whether to request retrieval of the data segment from at least one of redundant array of independent disk (RAID) memory of a storage network and dispersed storage network (DSN) memory of the storage network;

when the computing device determines to request retrieval from the RAID memory, send a read request to the RAID memory regarding the data segment;

determine whether the retrieval of the data segment from the RAID memory was successful;

when the retrieval of the data segment from the RAID memory was unsuccessful:

generate a set of read requests regarding a set of encoded data slices corresponding to the data segment;

send, via the interface, the set of read requests to a set of storage units of the DSN memory;

receive, via the interface, at least a decode threshold number of encoded data slices of the set of encoded data slices from at least some storage units of the set of storage units; and

decode the at least the decode threshold number of encoded data slices to recover the data segment.

8. The computing device of claim 7 , wherein the processing module is further operable to:

when the retrieval of the data segment from the RAID memory was successful:

retrieve a data stripe from the RAID memory; and

recover the data segment from the data stripe.

9. The computing device of claim 7 , wherein the processing module is further operable to:

when the computing device determines to request retrieval from the DSN memory:

generate the set of read requests regarding a set of encoded data slices corresponding to the data segment;

send, via the interface, the set of read requests to the set of storage units;

determine whether the retrieval of the data segment from the DSN memory was successful;

when the retrieval of the data segment from the DSN memory was successful, send, via the interface, the read request to the RAID memory.

10. The computing device of claim 7 , wherein the processing module is further operable to:

when the retrieval of the data segment from the RAID memory was unsuccessful because the data segment is not currently stored in RAID, determine whether memory space is available in the RAID memory;

determine whether further store the data segment in the RAID memory; and

when the memory space is available in the RAID memory and when the computing device determines to further store the data segment in the RAID memory:

create a data stripe based on the recovered data segment; and

write, via the interface, the data stripe to the RAID memory.

11. The computing device of claim 7 , wherein the processing module is further operable to:

when the retrieval of the data segment from the RAID memory was successful:

retrieve a data stripe from the RAID memory;

recover the data segment from the data stripe;

determine whether to further store the data segment in the DSN memory; and

when the computing device determines to store the data segment in the DSN memory:

dispersed storage error encode the data segment to produce the set of encoded data slices; and

write, via the interface, the set of encoded data slices to the set of storage units.

12. The computing device of claim 7 , wherein the processing module is further operable to determine whether the retrieval of the data segment from the RAID memory was successful by one or more of:

determining the RAID memory is available; and

determining whether the data segment was retrieved from the RAID memory within a given time period.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2016
From: DHUSE, GREG R.; GRUBE, GARY W.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039452/0480 →