IP Library Granted Patent US 10,203,999
Granted Patent B2
US 10,203,999 · App. 15/343,658 · Granted Feb 12, 2019

Spreading load for highly popular content with asynchronous counted writes

Inventors: Kumar Abhijeet (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI); S. Christopher Gladwin (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/0727G06F3/064G06F3/067G06F3/0619G06F3/0644G06F11/00G06F11/073G06F11/0787G06F11/1076G06F11/1088G06F11/1612G06F11/2058G06F17/30578H03M13/1515H04L67/1097G06F3/0601G06F3/0614G06F11/1435G06F11/1456G06F11/1471G06F11/2056G06F17/30575G06F2211/1028
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,203,999
App. No.
15/343,658
Granted
Feb 12, 2019
Kind
B2
Abstract

A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method begins by receiving a store data object request from the user device. The method continues by initiating storage of N instances of the received data object in the storage set. The method continues by issuing a status response to the user device when detecting that M instances have been successfully stored and sending an instance i of the data to the user device when receiving a read instance i of the data object request from the user device.

Claims (29)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a store data object request including a data object for storage and an instance count N from a requesting entity;

initiating storage of N instances of the data object in a storage set;

issuing a status response to the requesting entity when detecting that M instances have been successfully stored; and

sending a selected instance i of the instance count N of instances of the data object to the requesting entity when the selected instance i is available.

2. The method of claim 1 , wherein the initiating storage of N instances includes: dispersed storage error encoding the data object to produce sets of encoded data slices, and for each instance, generating one or more unique sets of slice names, replicating sets of encoded data slices to produce N replicated sets of encoded data slices, and sequentially storing each of the replicated sets of encoded data slices from instance 1 to instance N.

3. The method of claim 1 , wherein the issuing a status response includes: interpreting received write responses to identify a successfully stored instance, generating and sending the status response when a number of successfully stored instances is at least the same as an instance threshold number.

4. The method of claim 1 further comprises issuing the status response when receiving a status request from the requesting entity.

5. The method of claim 4 wherein the status response includes a number M<=N indicating a total number of instances that have been stored thus far.

6. The method of claim 4 further comprises, if a request ID of the requesting entity is no longer known, returning a response indicating that the request ID is unknown.

7. The method of claim 6 wherein the request ID is unknown because it is any of: incorrect or the storage completed.

8. The method of claim 1 , wherein the sending an instance i of the data object to the requesting entity includes: receiving a read instance request, determining whether the instance i has been successfully written, and when successfully written, recovering the instance i and sending the selected instance i to the requesting entity.

9. The method of claim 8 , wherein the recovering includes: retrieving at least a decode threshold number of encoded data slices for each of a plurality of sets of encoded data slices associated with the instance i, and for each set, dispersed storage error decoding the retrieved at least a decode threshold number of encoded data slices to reproduce a data segment.

10. A computing device of a group of computing devices of a dispersed storage network (DSN), the computing device comprises:

an interface;

a local memory; and

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

receive a store data object request including a data object for storage and an instance count N from a requesting entity;

initiate storage of N instances of the data object in a storage set;

issue a status response to the requesting entity when detecting that M instances have been successfully stored; and

send a selected instance i of the instance count N of instances of the data object to the requesting entity when the selected instance i is available.

11. The computing device of claim 10 , wherein the initiating storage of N instances includes: dispersed storage error encoding the data object to produce sets of encoded data slices, and for each instance, generating one or more unique sets of slice names, replicating sets of encoded data slices to produce N replicated sets of encoded data slices, and sequentially storing each of the replicated sets of encoded data slices from instance 1 to instance N.

12. The computing device of claim 10 , wherein the issuing a status response includes: interpreting received write responses to identify a successfully stored instance, generating and sending the status response when a number of successfully stored instances is at least the same as an instance threshold number.

13. The computing device of claim 10 further comprises the processing module functioning to issue the status response when receiving a status request from the requesting entity.

14. The computing device of claim 13 wherein the status response includes a number M<=N indicating a total number of instances that have been stored thus far.

15. The computing device of claim 13 further comprises, if a request ID of the requesting entity is no longer known, returning a response indicating that the request ID is unknown.

16. The computing device of claim 15 wherein the request ID is unknown because it is any of: incorrect or the storage completed.

17. The computing device of claim 10 , wherein the sending an instance i of the data object to the requesting entity includes: receiving a read instance request, determining whether the instance i has been successfully written, and when successfully written, recovering the instance i and sending the selected instance i to the requesting entity.

18. The computing device of claim 17 , wherein the recovering includes: retrieving at least a decode threshold number of encoded data slices for each of a plurality of sets of encoded data slices associated with the instance i, and for each set, dispersed storage error decoding the retrieved at least a decode threshold number of encoded data slices to reproduce a data segment.

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 Nov 4, 2016
From: ABHIJEET, KUMAR; BAPTIST, ANDREW D.; GLADWIN, S. CHRISTOPHER; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040225/0253 →
Continuity (3)
Continuation In Part 15075946 · Mar 21, 2016
Provisional Application 62168114 · May 29, 2015
Related Publication 20170054807A1 · Feb 23, 2017