Source: https://patents.google.com/patent/US10389845B2/en
Timestamp: 2019-11-19 01:45:06
Document Index: 536237747

Matched Legal Cases: ['§ 120', 'Application No. 14', '§ 119', 'Application No. 61', 'Application No. 14', '§ 120', 'Application No. 12', '§ 119', 'Application No. 61']

US10389845B2 - Determining how to service requests based on several indicators - Google Patents
Determining how to service requests based on several indicators Download PDF
US10389845B2
US10389845B2 US15/688,162 US201715688162A US10389845B2 US 10389845 B2 US10389845 B2 US 10389845B2 US 201715688162 A US201715688162 A US 201715688162A US 10389845 B2 US10389845 B2 US 10389845B2
US15/688,162
US20170359438A1 (en
2013-02-26 Priority to US201361769588P priority
2014-01-13 Priority to US14/153,319 priority patent/US9774678B2/en
2017-08-28 Priority to US15/688,162 priority patent/US10389845B2/en
2017-08-28 Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: RESCH, JASON K.
2017-08-28 Application filed by Pure Storage Inc filed Critical Pure Storage Inc
2017-12-14 Publication of US20170359438A1 publication Critical patent/US20170359438A1/en
2019-06-07 Priority claimed from US16/434,947 external-priority patent/US20190297169A1/en
2019-08-20 Publication of US10389845B2 publication Critical patent/US10389845B2/en
A method for execution by a dispersed storage (DST) processing module includes receiving a data request. An estimated performance level is determined for each of a set of data access approaches, and one data access approach is selected. A data response that includes direction information is issued to the requesting entity when the selected approach includes directing the requesting entity to access an alternate DS processing module. The data object is recovered and a data response is issued to the requesting entity when the selected approach includes accessing the set of DS units directly. A redirect request is issued to the alternate DS processing module when the selected approach includes redirecting the data request, and the alternate DS processing module obtains and issues the data object. A data response is issued to the requesting entity when the alternate DS processing module issues the data object via a redirect response.
The present U.S. Utility Patent Application claims priority pursuant to 35 U.S.C. § 120 as a continuation-in-part of U.S. Utility Application No. 14/153,319, entitled “TEMPORARILY STORING DATA IN A DISPERSED STORAGE NETWORK”, filed Jan. 13, 2014, which claims priority pursuant to 35 U.S.C. § 119(e) to U.S. Provisional Application No. 61/769,588, entitled “CONFIRMING INTEGRITY OF DATA IN A DISPERSED STORAGE NETWORK”, filed Feb. 26, 2013, both of which are hereby incorporated herein by reference in their entirety and made part of the present U.S. Utility Patent Application for all purposes.
U.S. Utility Application No. 14/153,319 also claims priority pursuant to 35 U.S.C. § 120 as a continuation-in-part of U.S. Utility Application No. 12/838,407, entitled “DISTRIBUTED STORAGE REVISION ROLLBACKS”, filed Jul. 16, 2010, issued as U.S. Pat. No. 9,015,431 on Apr. 21, 2015, which claims priority pursuant to 35 U.S.C. § 119(e) to U.S. Provisional Application No. 61/256,226, entitled “DISTRIBUTED STORAGE NETWORK DATA REVISION CONTROL”, filed Oct. 29, 2009, both of which are hereby incorporated herein by reference in their entirety and made part of the present U.S. Utility Patent Application for all purposes.
FIG. 10 is a logic diagram of an example of a method of determining how to service requests in accordance with the present invention; and
FIG. 11 is a logic diagram of an example of a method of determining how to service requests in accordance with the present invention.
FIG. 3 is a schematic block diagram of an example of dispersed storage error encoding of data. When a computing device 12 or 16 has data to store it disperse storage error encodes the data in accordance with a dispersed storage error encoding process based on dispersed storage error encoding parameters. Here, the computing device stores data object 40, which can include a file (e.g., text, video, audio, etc.), or other data arrangement. The dispersed storage error encoding parameters include an encoding function (e.g., information dispersal algorithm (IDA), Reed-Solomon, Cauchy Reed-Solomon, systematic encoding, non-systematic encoding, on-line codes, etc.), a data segmenting protocol (e.g., data segment size, fixed, variable, etc.), and per data segment encoding values. The per data segment encoding values include a total, or pillar width, number (T) of encoded data slices per encoding of a data segment i.e., in a set of encoded data slices); a decode threshold number (D) of encoded data slices of a set of encoded data slices that are needed to recover the data segment; a read threshold number (R)of encoded data slices to indicate a number of encoded data slices per set to be read from storage for decoding of the data segment; and/or a write threshold number (W) to indicate a number of encoded data slices per set that must be accurately stored before the encoded data segment is deemed to have been properly stored. The dispersed storage error encoding parameters may further include slicing information (e.g., the number of encoded data slices that will be created for each data segment) and/or slice security information (e.g., per encoded data slice encryption, compression, integrity checksum, etc.).
FIG. 9 is a schematic block diagram of another embodiment of a dispersed storage network that includes a user device 910, a dispersed storage (DS) processing module 920, one or more alternate DS processing modules 930, and a DS unit set 940. DS unit set includes a set of DS units 1-n. Each DS unit of the set of DS units may be implemented utilizing one or more of a storage node, a dispersed storage unit, a distributed storage and task (DST) execution unit, a storage server, a storage unit such as storage unit 36 of FIG. 1, a storage module, a memory device, a memory, a user device, a computing device such as computing device 12 or 16 of FIG. 1, a DST processing unit, and a DST processing module. Alternatively, or in addition, at least one of a server, a computer, a DS unit, a user device, a computing device such as computing device 12 or 16 of FIG. 1, or a DST processing unit may be utilized to implement the DS processing module and/or the alternate DS processing module. The DS processing module and/or the alternate DS processing module can include local cache memory for temporary storage of one or more data objects and one or more sets of encoded data slices. The user device can be implemented by utilizing computing device 12 or 16 of FIG. 1 and/or another device associated with a requesting entity that communicates elements of the dispersed storage network. While not depicted in FIG. 9, the user device 910, DS processing module 920, alternate DS processing module 930, and/or the DS unit set 940 can communicate by transmitting and/or receive requests and responses via network 24 of FIG. 1. The system functions to determine how to service requests and access data stored in one or more of the DS unit set, the DS processing module, and the alternate DS processing module.
A first DS processing unit, such as computing device 16 and/or DS processing module 920, that receives an access request can make a determination of whether to service that request directly or to redirect to a second DS processing unit, such another computing device 16 and/or alternate DS processing module 930, that is known to already have the requested object in its local cache. To produce the best performance level, the first DS processing module can estimate how long it will take to recover the requested object (based on the object size, proximity, and latency to DS units that store its slices, and/or other similar parameters). The first DS processing unit can then determine what the expected latency will be for the client to handle a redirection (based on latency to the requestor, and the latency between the requestor and the second DS processing unit). Finally, the first DS processing unit can evaluate the latency between it and the second DS processing unit. To service the request, the first DS processing unit has three choices: service the request by accessing the object itself from the DS units, service the request by retrieving the object from the second DS processing unit, and third, redirecting the requestor to the second DS processing unit. As an example, consider a case where the requestor is in Asia, both DS processing units are in North America, and the DS units are in Europe. In this case, it may be best for the first DS processing unit to retrieve the object from the second DS processing unit. In another case, where the second processing unit is remote and the DS units are local, it may be fastest to service the request directly, and in a final case, where the second processing unit and requestor are local (and/or if the object is very large), it may be best to redirect the client to the second processing unit.
The user device 910 can issue a data request to the DS processing module 920 with regards to a data object. The data request can include, for example, a read, write, and/or delete request. The data request can include a data identifier of the data object and at least one of a write request, a read request, and/or a delete request. When the data object does not exist in local memory of the DS processing module, the DS processing module can select a data access approach where the data access approach includes one of accessing the DS unit set 940, redirecting to the alternate DS processing module 930, and/or directing the user device to access the alternate DS processing module 930 directly. The selecting can include estimating a performance level of each of the data access approaches and selecting the one of the data access approaches based on a comparison of estimated performance levels of each of the data access approaches. For example, the DS processing module can select to redirect to the alternate DS processing module when the data object is stored in the memory of the alternate DS processing module and is not stored in the memory of the DS processing module.
When the selected data access approach includes the accessing the DS unit set 940 directly, the DS processing module can issue one or more sets of slice access requests to the DS unit set, receive slice access responses from the DS unit set, decode the encoded data slices of the received slice access responses using a dispersed storage error coding function to recover the data object, and issue a data response to the user device that includes the recovered data object. When the selected data access approach includes the redirecting to the alternate DS processing module 930, the DS processing module can issue a redirect request to the alternate DS processing module that includes the data access request. The alternate DS processing module can obtain the data object from one of the local memory of the alternate DS processing module, and/or by retrieving encoded and decoding data slices from the DS unit set. The alternate DS processing module can output the data object to the user device by one of issuing a redirect response to the DS processing module that includes the data object and issuing an alternate data response to the user device that includes the data object. When the redirect response is issued to the DS processing module 920, the DS processing module can issue the data response to the user device that includes the data object.
When the selected data access approach includes the directing user device to access the alternate DS processing module 930 directly, the DS processing module 920 can issue a data response to the user device 910 that includes direction information, such as identifying information of the alternate DS processing module. The direction information can include one or more of identity of the alternate DS processing module and an indicator to access the alternate DS processing module directly. The user device can issue an alternate data access request to the alternate DS processing module 930 based on the direction information. The alternate DS processing module can obtain the data object, for example, from local cache memory or by retrieving the slices from the set of DS units. The alternate DS processing module can then issue an alternate data access response to the user device that includes the data object.
In various embodiments, the DS processing module 920 and the alternate DS processing module 930 can behave interchangeably. For example, in addition to responding to redirect requests or alternate data requests, the alternate DS processing module 930 perform some or all functions of the DS processing module 920, and can receive its own data requests from the same or a different requesting entity for data objects, can determine the estimated performance levels, and can select its own data access approach. The data access approach selected by the alternate DS processing module 930 can include utilizing the DS processing module 920 as its own alternate DS processing module, for example, where the alternate DS processing module can redirect requests to the DS processing module 920 or send direction information that indicates DS processing module 920 to the requesting entity. Thus, in such embodiments, the DS processing module 920 can similarly perform some or all functions of the alternate DS processing module 930 and can issue an alternate data responses to the requesting entity in response to receiving the alternate data access requests from the alternate DS processing module and/or can obtain data objects from its own local memory or the set of DS units in response to receiving a redirect request for issue via a redirect response back to the alternate DS processing module or an alternate data response to the requesting entity.
In various embodiments, a processing system of a dispersed storage (DS) processing module includes at least one processor and a memory that stores operational instructions, that when executed by the at least one processor cause the processing system to receive a data request for a data object from a requesting entity. An estimated performance level is determined for each of a set of data access approaches. One data access approach is selected from the set of data access approaches based on the estimated performance levels. The selected one data access approach is directing the requesting entity to access an alternate DS processing module directly, accessing a set of DS units directly, or redirecting the data request to the alternate DS processing module. A first data response that includes direction information is issued to the requesting entity when the selected one data access approach is the directing the requesting entity to access the alternate DS processing module directly. The requesting entity issues an alternate data access request to the alternate DS processing module based on the direction information, and the alternate DS processing module issues a first alternate data response to the requesting entity that includes the data object in response to receiving the alternate data access request. The data object is recovered from the set of DS units and a second data response is issued to the requesting entity that includes the data object when the selected one data access approach is the accessing the set of DS units directly. A redirect request is issued to the alternate DS processing module when the selected one data access approach is the redirecting the data request to the alternate DS processing module. In response to receiving the redirect request, the data object is obtained by the alternate DS processing from a local memory of the alternate DS processing module or the set of DS units. The alternate DS processing module issues the data object via a redirect response to the DS processing module or a second alternate data response to the requesting entity. A third data response is issued to the requesting entity that includes the data object when the selected one data access approach is the redirecting the data request to the alternate DS processing module and when the alternate DS processing module issues the data object via the redirect response.
In various embodiments, the data request includes one or more of a read request indicator, a data object identifier, or a requesting entity identifier. In various embodiments, determining an estimated performance level is based on at least one of: of initiating a query, performing a test, calculating estimated performance levels, or receiving an error message. In various embodiments, the selected one data access approach corresponds to an estimated performance level associated with a lowest latency.
In various embodiments, the direction information includes an identifier corresponding to the alternate DS processing module. In various embodiments, in response to the alternate data access request, the alternate DS processing module obtains the data object from a local memory of the alternate DS processing module. In various embodiments, recovering the data object from set of DS units includes issuing a set of slice access requests to the set of DS units, receiving slice access responses, and decoding a plurality of slices included in the slice access responses. In various embodiments, the redirect request includes the data request.
In various embodiments, the alternate DS processing module obtains the data object from the set of DS units set in response to determining that the data object is not stored in the local memory of the alternate DS processing module. In various embodiments, the alternate DS processing module selects to issue the data object via the one of: the redirect response to the DS processing module or the second alternate data response based on the estimated performance levels.
FIG. 10 is a flowchart illustrating an example of determining how to service requests. The method begins at step 1002, where requesting entity (e.g., a user device) issues a data request to a dispersed storage (DS) processing module for a data object. The data request includes one or more of a read request indicator, a data object identifier, and a requesting entity identifier. The method continues at step 1004, where the DS processing module determines an estimated performance level for each of a variety of data access approaches, such as a fixed set of data access approach options. The determining can be based on one or more of initiating a query, performing a test, calculating estimated performance levels, and/or receiving an error message. The method continues at step 1006, where the DS processing module selects a data access approach of the variety of data access approaches based on the estimated performance levels. In some embodiments, the DS processing module can select a data access approach associated with a most favorable estimated performance level compared to estimated performance levels of other data access approaches. For example, the performance level can be based on latency, and the DS processing module can select the data access approach with a performance level associated with the lowest latency. Based on the selected data access approach, the method branches to step 1008, step 1014, or step 1018, corresponding to the DS processing module selecting to direct the requesting entity to access an alternate DS processing module directly, to access directly from the DS unit set, or to redirect the request to the alternate DS processing module, respectively.
When the selected data access approach is direct the requesting entity to access an alternate DS processing module directly, the method continues at step 1008, where the DS processing module issues a data response to the requesting entity that includes direction information. The direction information can include an identity information such as an identifier corresponding to the alternate DS processing module. The method continues at step 1010, where the requesting entity issues an alternate data access request to the alternate DS processing module based on the direction information. The method continues at step 1012 where the alternate DS processing module issues an alternate data response to the requesting entity that includes the data object. The issuing includes obtaining a data object from a local memory of the alternate DS processing module, and/or recovering the data object by retrieving encoded data slices from a DS unit set (e.g., request, receive, and decode slices).
When the selected data access approach is to access the DS unit set directly, the method continues at step 1014, where the DS processing module recovers the data object from the DS unit set. Recovering the data object from the DS unit set can include issuing a set of slice access requests to the DS unit set, receiving slice access responses, and decoding the slices included in the slice access responses. The method continues at step 1016, where the DS processing module issues a data response to the requesting entity that includes the data object.
When the selected data access approach is to redirect to the alternate DS processing module, the method continues at step 1018, where DS processing module issues a redirect request to the alternate DS processing module. The redirect request can include the data access request. The method continues at step 1020, where the alternate DS processing module obtains the data object from local memory of the alternate DS processing module or the DS unit set. For example, the alternate DS processing module can determine that the data object is not stored in its local cache memory, and then retrieve the encoded data slices from the DS unit set. The method continues at step 1022, where the alternate DS processing module issues a redirect response to the DS processing module and/or the alternate data response to the requesting entity, where the data object is included in the redirect response and the alternate data response. The alternate DS processing module can select whether to send the data object to the DS processing module or the requesting entity based on the estimated performance levels, a predetermination, a request, and/or a security requirement. When the alternate DS processing module issues the redirect response to the DS processing module, the method continues at the step 1024, where the DS processing module issues the data response to the requesting entity that includes the data object from the redirect response.
FIG. 11 is a flowchart illustrating a method for determining how to service requests for use in association with one or more functions and features described in conjunction with FIGS. 1-9, for execution by a dispersed storage (DS) processing module that includes a processor or via another processing system of a dispersed storage network that includes at least one processor and memory that stores instruction that configure the processor or processors to perform the steps described below. For example, steps of method of FIG. 11 can be executed by DS processing module 920 and/or alternate DS processing module 930. Step 1102 includes receiving a data request for a data object from a requesting entity. Step 1104 includes determining an estimated performance level for each of a set of data access approaches. Step 1106 includes selecting one data access approach from the set of data access approaches based on the estimated performance levels, where the selected one data access approach includes directing the requesting entity to access an alternate DS processing module directly, accessing a set of DS units directly, or redirecting the data request to the alternate DS processing module.
Step 1108 includes issuing a first data response to the requesting entity that includes direction information when the selected one data access approach includes directing the requesting entity to access the alternate DS processing module directly, where the requesting entity issues an alternate data access request to the alternate DS processing module based on the direction information, and where the alternate DS processing module issues a first alternate data response to the requesting entity that includes the data object in response to receiving the alternate data access request. Step 1110 includes recovering the data object from the set of DS units and issuing a second data response to the requesting entity that includes the data object when the selected one data access approach includes accessing the set of DS units directly. Step 1112 includes issuing a redirect request to the alternate DS processing module when the selected one data access approach includes redirecting the data request to the alternate DS processing module, where, in response to receiving the redirect request, the data object is obtained by the alternate DS processing module from a local memory of the alternate DS processing module or the set of DS units, and where the alternate DS processing module issues the data object via a redirect response to the DS processing module or a second alternate data response to the requesting entity. Step 1114 includes issuing a third data response to the requesting entity that includes the data object when the selected one data access approach is redirecting the data request to the alternate DS processing module and when alternate DS processing module issues the data object via the redirect response.
In various embodiments, a non-transitory computer readable storage medium includes at least one memory section that stores operational instructions that, when executed by a processing system of a dispersed storage network (DSN) that includes a processor and a memory, causes the processing system to receive a data request for a data object from a requesting entity. An estimated performance level is determined for each of a set of data access approaches. One data access approach is selected from the set of data access approaches based on the estimated performance levels. The selected one data access approach is directing the requesting entity to access an alternate DS processing module directly, accessing a set of DS units directly, or redirecting the data request to the alternate DS processing module. A first data response that includes direction information is issued to the requesting entity when the selected one data access approach is the directing the requesting entity to access the alternate DS processing module directly. The requesting entity issues an alternate data access request to the alternate DS processing module based on the direction information, and the alternate DS processing module issues a first alternate data response to the requesting entity that includes the data object in response to receiving the alternate data access request. The data object is recovered from the set of DS units and a second data response is issued to the requesting entity that includes the data object when the selected one data access approach is the accessing the set of DS units directly. A redirect request is issued to the alternate DS processing module when the selected one data access approach is the redirecting the data request to the alternate DS processing module. The data object is obtained by the alternate DS processing module in response to receiving the redirect request a local memory of the alternate DS processing module or the set of DS units. The alternate DS processing module issues the data object via a redirect response to the DS processing module or a second alternate data response to the requesting entity. A third data response is issued to the requesting entity that includes the data object when the selected one data access approach is the redirecting the data request to the alternate DS processing module and when the alternate DS processing module issues the data object via the redirect response.
1. A method for execution by a dispersed storage (DS) processing module that includes a processor, the method comprises:
receiving a data request for a data object from a requesting entity;
determining an estimated performance level for each of a set of data access approaches;
selecting one data access approach from the set of data access approaches based on the estimated performance levels, wherein the selected one data access approach includes one of: directing the requesting entity to access an alternate DS processing module directly, accessing a set of DS units directly, or redirecting the data request to the alternate DS processing module;
issuing a first data response to the requesting entity that includes direction information when the selected one data access approach includes the directing the requesting entity to access the alternate DS processing module directly, wherein the requesting entity issues an alternate data access request to the alternate DS processing module based on the direction information, and wherein the alternate DS processing module issues a first alternate data response to the requesting entity that includes the data object in response to receiving the alternate data access request;
recovering the data object from the set of DS units and issuing a second data response to the requesting entity that includes the data object when the selected one data access approach includes the accessing the set of DS units directly, wherein recovering the data object from the set of DS units includes issuing a set of slice access requests to the set of DS units, receiving slice access responses, and decoding a plurality of slices included in the slice access responses;
issuing a redirect request to the alternate DS processing module when the selected one data access approach includes the redirecting the data request to the alternate DS processing module, wherein, in response to receiving the redirect request, the data object is obtained by the alternate DS processing module from one of: a local memory of the alternate DS processing module or the set of DS units, and wherein the alternate DS processing module issues the data object via one of: a redirect response to the DS processing module or a second alternate data response to the requesting entity; and
issuing a third data response to the requesting entity that includes the data object when the selected one data access approach is the redirecting the data request to the alternate DS processing module and when the alternate DS processing module issues the data object via the redirect response.
2. The method of claim 1, wherein the data request includes one or more of a read request indicator, a data object identifier, or a requesting entity identifier.
3. The method of claim 1, wherein determining an estimated performance level is based on at least one of: of initiating a query, performing a test, calculating estimated performance levels, or receiving an error message.
4. The method of claim 1, wherein the selected one data access approach corresponds to an estimated performance level associated with a lowest latency.
5. The method of claim 1, wherein the direction information includes an identifier corresponding to the alternate DS processing module.
6. The method of claim 1, wherein, in response to the alternate data access request, the alternate DS processing module obtains the data object from a local memory of the alternate DS processing module.
7. The method of claim 1, wherein the redirect request includes the data request.
8. The method of claim 1, wherein the alternate DS processing module obtains the data object from the set of DS units set in response to determining that the data object is not stored in the local memory of the alternate DS processing module.
9. The method of claim 1, wherein the alternate DS processing module selects to issue the data object via the one of: the redirect response to the DS processing module or the second alternate data response based on the estimated performance levels.
10. A processing system of a dispersed storage (DS) processing module comprises:
receive a data request for a data object from a requesting entity;
determine an estimated performance level for each of a set of data access approaches;
select one data access approach from the set of data access approaches based on the estimated performance levels, wherein the selected one data access approach includes one of: directing the requesting entity to access an alternate DS processing module directly, accessing a set of DS units directly, or redirecting the data request to the alternate DS processing module;
issue a first data response to the requesting entity that includes direction information when the selected one data access approach includes the directing the requesting entity to access the alternate DS processing module directly, wherein the requesting entity issues an alternate data access request to the alternate DS processing module based on the direction information, and wherein the alternate DS processing module issues a first alternate data response to the requesting entity that includes the data object in response to receiving the alternate data access request;
recover the data object from the set of DS units and issue a second data response to the requesting entity that includes the data object when the selected one data access approach includes the accessing the set of DS units directly, wherein recovering the data object from the set of DS units includes issuing a set of slice access requests to the set of DS units, receiving slice access responses, and decoding a plurality of slices included in the slice access responses;
issue a redirect request to the alternate DS processing module when the selected one data access approach includes the redirecting the data request to the alternate DS processing module, wherein, in response to receiving the redirect request, the data object is obtained by the alternate DS processing module from one of: a local memory of the alternate DS processing module or the set of DS units, and wherein the alternate DS processing module issues the data object via one of: a redirect response to the DS processing module or a second alternate data response to the requesting entity; and
issue a third data response to the requesting entity that includes the data object when the selected one data access approach is the redirecting the data request to the alternate DS processing module and when the alternate DS processing module issues the data object via the redirect response.
11. The processing system of claim 10, wherein determining an estimated performance level is based on at least one of: of initiating a query, performing a test, calculating estimated performance levels, or receiving an error message.
12. The processing system of claim 10, wherein the selected one data access approach corresponds to an estimated performance level associated with a lowest latency.
13. The processing system of claim 10, wherein the direction information includes an identifier corresponding to the alternate DS processing module.
14. The processing system of claim 10, wherein, in response to the alternate data access request, the alternate DS processing module obtains the data object from a local memory of the alternate DS processing module.
15. The processing system of claim 10, wherein the redirect request includes the data request.
16. The processing system of claim 10, wherein the alternate DS processing module obtains the data object from the set of DS units in response to determining that the data object is not stored in the local memory of the alternate DS processing module.
17. The processing system of claim 10, wherein the alternate DS processing module selects to issue the data object via the one of: the redirect response to the DS processing module or the second alternate data response based on the estimated performance levels.
issue a redirect request to the alternate DS processing module when the selected one data access approach includes the redirecting the data request to the alternate DS processing module, wherein, in response to receiving the redirect request, the data object is obtained by the alternate DS processing module from one of: a local memory of the alternate DS processing module or the set of DS units, and wherein the alternate DS processing module issues the data object via one of: a redirect response or a second alternate data response to the requesting entity; and
US15/688,162 2009-10-29 2017-08-28 Determining how to service requests based on several indicators Active US10389845B2 (en)
US201361769588P true 2013-02-26 2013-02-26
US15/688,162 US10389845B2 (en) 2009-10-29 2017-08-28 Determining how to service requests based on several indicators
US16/434,947 US20190297169A1 (en) 2009-10-29 2019-06-07 Determining how to service requests based on several indicators
US15/802,633 Continuation-In-Part US20180054486A1 (en) 2009-10-29 2017-11-03 Speculative Requests
US15/823,171 Continuation-In-Part US20180103100A1 (en) 2009-10-29 2017-11-27 Streaming all-or-nothing encoding with random offset support
US16/434,947 Continuation US20190297169A1 (en) 2009-10-29 2019-06-07 Determining how to service requests based on several indicators
US20170359438A1 US20170359438A1 (en) 2017-12-14
US10389845B2 true US10389845B2 (en) 2019-08-20
ID=60574257
US15/688,162 Active US10389845B2 (en) 2009-10-29 2017-08-28 Determining how to service requests based on several indicators
US (1) US10389845B2 (en)
US20120254562A1 (en) * 2011-03-31 2012-10-04 Morrison Michael J Memory system including variable write command scheduling
2017-08-28 US US15/688,162 patent/US10389845B2/en active Active
US20170359438A1 (en) 2017-12-14
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:RESCH, JASON K.;REEL/FRAME:043423/0812