Patents by Inventor Greg R. Dhuse

Greg R. Dhuse has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10802763
    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 determining a slice name of an encoded data slice to verify, obtaining the encoded data slice and compressing the encoded data slice to produce a compressed encoded data slice, determining a storage set of DS units associated with the slice name, sending compressed encoded data slice partial request messages to the storage set of DS units, and receiving at least a decode threshold number of compressed encoded data slice partial response messages to produce compressed encoded data slice partials. The method continues by determining whether a sum of the compressed encoded data slice partials compares favorably to the compressed encoded data slice and indicating a failed test when the comparison is not favorable and indicating a passed test when the comparison is favorable.
    Type: Grant
    Filed: September 20, 2018
    Date of Patent: October 13, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Jason K. Resch, Greg R. Dhuse
  • Patent number: 10795766
    Abstract: A method for a distributed storage network (DSN) includes retrieving a slice of a chunk for execution of a partial task, identifying a record configuration of the slice, facilitating processing of a partial task on at least one record of the slice, and when the slice includes a partial record, identifying a slice location of another slice that includes a remaining partial record corresponding to the partial record, and when the slice location is favorable, retrieving the other slice from the slice location, and facilitating processing of the partial task on at least one record of the other slice.
    Type: Grant
    Filed: July 26, 2018
    Date of Patent: October 6, 2020
    Assignee: PURE STORAGE, INC.
    Inventor: Greg R. Dhuse
  • Publication number: 20200311047
    Abstract: A method includes generating a first lock requests, each for transmission to a storage unit, where each first lock request indicates a first encoded data slice. First ballots are received, each of the first ballots corresponds to a storage unit, each of the first ballots indicates a first ranking of first requesting entities that includes the DST processing unit. First election result data is generated based on the first ballots. The first election result data indicates a first winner. When the first winner is the DST processing unit, slice access requests are generated in response to the first election result data indicating that the first winner is the DST processing unit, each for transmission to one of the storage units, where each of the slice access requests indicates the first encoded data slice.
    Type: Application
    Filed: June 17, 2020
    Publication date: October 1, 2020
    Inventors: Greg R. Dhuse, Ravi V. Khadiwala, Ethan S. Wozniak
  • Patent number: 10789128
    Abstract: A computing device includes an interface configured to interface and communicate with a dispersed storage network (DSN), a memory that stores operational instructions, and a processing module operably coupled to the interface and memory such that the processing module, when operable within the computing device based on the operational instructions, is configured to perform various operations. Based on a detected storage error, the computing device is configured to determine availability status of encoded data slices (EDSs) within a set of EDSs. When at least a threshold number of EDSs are available, the computing device is configured to initiate a rebuilding function to abate the detected storage error. When less than the threshold number of EDSs are available, the computing device is configured to initiate a slice repair function to at least one storage unit (SU) to abate the detected storage error.
    Type: Grant
    Filed: February 28, 2017
    Date of Patent: September 29, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Greg R. Dhuse, Ilir Iljazi
  • Publication number: 20200304573
    Abstract: A method for execution by a dispersed storage and task (DST) processing unit includes determining a first optimal slice size requirement is determined for a first independent data element (IDE). The first IDE is split into a first plurality of IDEs based on determining the first IDE compares unfavorably to the first optimal slice size requirement. An error coding function is performed on the first plurality of IDEs to produce a set of encoded slices for each of the first plurality of IDEs for transmission to storage units. A subset of additional IDEs are selected to be merged into a merged IDE based on a second optimal slice size requirement, and continuous content of the subset of additional IDEs is concatenated to produce the merged IDE. The error coding function is performed on the merged IDE to produce a second set of encoded slices for transmission to storage units.
    Type: Application
    Filed: September 16, 2019
    Publication date: September 24, 2020
    Inventors: Jason K. Resch, Ram Narayanan, Andrew D. Baptist, Praveen Viraraghavan, Wesley B. Leggette, Ethan S. Wozniak, Manish Motwani, Bart R. Cilfone, Greg R. Dhuse
  • Publication number: 20200304572
    Abstract: A method for execution by a dispersed storage and task (DST) processing unit includes determining a first optimal slice size requirement is determined for a first independent data element (IDE). The first IDE is split into a first plurality of IDEs based on determining the first IDE compares unfavorably to the first optimal slice size requirement. An error coding function is performed on the first plurality of IDEs to produce a set of encoded slices for each of the first plurality of IDEs for transmission to storage units. A subset of additional IDEs are selected to be merged into a merged IDE based on a second optimal slice size requirement, and continuous content of the subset of additional IDEs is concatenated to produce the merged IDE. The error coding function is performed on the merged IDE to produce a second set of encoded slices for transmission to storage units.
    Type: Application
    Filed: March 21, 2019
    Publication date: September 24, 2020
    Inventors: Jason K. Resch, Ram Narayanan, Andrew D. Baptist, Praveen Viraraghavan, Wesley B. Leggette, Ethan S. Wozniak, Manish Motwani, Bart R. Cilfone, Greg R. Dhuse
  • Patent number: 10782921
    Abstract: A method includes sending a read threshold number of access requests to storage units regarding a set of encoded data slices. The method further includes receiving access responses from at least some of the storage units in response to the read threshold number of access requests. The method further includes determining, from the access responses, that writing of the set of encoded data slices to a set of storage units has not been finalized. The method further includes determining whether the computing device can finalize the writing of the set of encoded data slices on behalf of a source that initiated the writing. When the computing device can finalize the writing, the method further includes determining one or more finalization steps for completing the writing and executing the one or more finalization steps to complete the writing of the set of encoded data slices.
    Type: Grant
    Filed: January 25, 2017
    Date of Patent: September 22, 2020
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Greg R. Dhuse, Ravi V. Khadiwala
  • Publication number: 20200285404
    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 includes performing multiple splits in a single operation with a dispersed lockless concurrent index (DLCI) backed by a distributed transaction protocol by determining how many nodes n are required to hold data object entries, adding the n nodes to a distributed transaction, and when a parent node does not require a cascading split, adding it to the distributed transaction, and when the parent node needs to be split, recursively applying the determining and adding steps to the parent node until reaching a node that does not need to be split or is a root node of the DLCI.
    Type: Application
    Filed: March 4, 2019
    Publication date: September 10, 2020
    Inventors: Greg R. Dhuse, Kevin M. Freese, Thomas Dubucq
  • Patent number: 10768833
    Abstract: A method includes dividing dispersed storage error encoding of a data object into a plurality of operations based on at least one of the data object and available computing devices for executing the dispersed storage error encoding. The method further includes allocating the plurality of operations to the available computing devices, where a first encoding operation of the plurality of encoding operations is allocated to a first computing device of the available computing devices. The method further includes coordinating execution of the plurality of operations by the available computing devices to dispersed storage error encode the data object into a plurality of sets of encoded data slices and a corresponding plurality of sets of slice names, and write the plurality of sets of encoded data slices based on the corresponding plurality of sets of slice names to a set of storage units.
    Type: Grant
    Filed: November 21, 2017
    Date of Patent: September 8, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Gary W. Grube, Greg R. Dhuse, Wesley B. Leggette, Jason K. Resch, Andrew D. Baptist, Ilya Volvovski
  • Patent number: 10747616
    Abstract: A method for execution by a storage unit of a dispersed storage network includes updating a rebuilding task list based on detecting at least one storage error associated with storage of encoded data slices in a set of storage units that includes the storage unit. An encoded data slice is rebuilt based on the rebuilding task list and an affinity with the encoded data slice. The rebuilding task list is again updated based on detecting execution of at least one task of the rebuilding task list. The rebuilding task list is further updated based on detecting expiration of an execution time frame between sequential tasks of the rebuilding task list.
    Type: Grant
    Filed: December 15, 2017
    Date of Patent: August 18, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Greg R. Dhuse, Ravi V. Khadiwala, Jason K. Resch, Ilya Volvovski, Wesley B. Leggette, Andrew D. Baptist
  • Publication number: 20200257529
    Abstract: A method for execution by a dispersed storage and task (DST) processing unit includes initializing a composite operation from a plurality of independent operations. An empty transaction context is created by performing an evaluation of the composite operation. A multi-source compare and swap (CASN) transaction is created from resulting expected values determined by evaluating the composite operation in the empty transaction context. The CASN transaction is executed against a dispersed storage network (DSN) memory. When the execution of the CASN transaction is successful, the transaction is committed to the DSN memory. When the execution failed due to at least one conflicting value stored in the DSN memory, a new transaction context pre-populated with the at least one conflicting value is created, and an updated CASN for the composite operation that utilizes the new transaction context is executed.
    Type: Application
    Filed: July 17, 2019
    Publication date: August 13, 2020
    Inventor: Greg R. Dhuse
  • Publication number: 20200257528
    Abstract: A method for execution by a dispersed storage and task (DST) processing unit includes initializing a composite operation from a plurality of independent operations. An empty transaction context is created by performing an evaluation of the composite operation. A multi-source compare and swap (CASN) transaction is created from resulting expected values determined by evaluating the composite operation in the empty transaction context. The CASN transaction is executed against a dispersed storage network (DSN) memory. When the execution of the CASN transaction is successful, the transaction is committed to the DSN memory. When the execution failed due to at least one conflicting value stored in the DSN memory, a new transaction context pre-populated with the at least one conflicting value is created, and an updated CASN for the composite operation that utilizes the new transaction context is executed.
    Type: Application
    Filed: February 13, 2019
    Publication date: August 13, 2020
    Inventor: Greg R. Dhuse
  • Publication number: 20200259898
    Abstract: A method for execution by a computing device includes, for each update operation of a plurality of update operations, creating a new batch update containing the update operation. The update operation is evaluated in an empty transaction context to generate cached values. When it is determined that the new batch overlaps with an existing waiting batch, the new batch is merged with the existing waiting batch, and intermediate are generated based on serially composing the update operations of the merged batches. When it is determined that the new batch overlaps with a running batch, the new batch is added to the existing waiting batches. Otherwise, immediate running of the new batch is authorized. The new batch is run by creating a CASN transaction from its evaluated transaction context that includes the cached values.
    Type: Application
    Filed: February 13, 2019
    Publication date: August 13, 2020
    Inventors: Greg R. Dhuse, Brian S. Farrell
  • Patent number: 10740180
    Abstract: A method begins by a storage unit receiving a read request for a decode threshold number of encoded data slices (EDSs) of a set of EDSs. The method continues with the first storage unit determining whether to service the read request for an EDS stored in the storage unit, and when determining not to service the request, generating, by the storage unit, a read request for a second storage unit, where the second storage unit is in substantially the same geographic location, and stores one or more EDS of the set of EDSs that is not included in the decode threshold number of EDSs. The storage unit then transmits the read request for the second SU, instructing the second SU to service the request.
    Type: Grant
    Filed: August 8, 2017
    Date of Patent: August 11, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Jason K. Resch, Wesley B. Leggette, Greg R. Dhuse, S. Christopher Gladwin
  • Patent number: 10719499
    Abstract: A method includes generating a first lock requests, each for transmission to a storage unit, where each first lock request indicates a first encoded data slice. First ballots are received, each of the first ballots corresponds to a storage unit, each of the first ballots indicates a first ranking of first requesting entities that includes the DST processing unit. First election result data is generated based on the first ballots. The first election result data indicates a first winner. When the first winner is the DST processing unit, slice access requests are generated in response to the first election result data indicating that the first winner is the DST processing unit, each for transmission to one of the storage units, where each of the slice access requests indicates the first encoded data slice.
    Type: Grant
    Filed: June 6, 2016
    Date of Patent: July 21, 2020
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIOb
    Inventors: Greg R. Dhuse, Ravi V. Khadiwala, Ethan S. Wozniak
  • Patent number: 10678638
    Abstract: A method for execution by a dispersed storage and task (DST) execution unit includes receiving a write slice request from a requesting entity, where the write slice request includes a plurality of encoded data slices and a corresponding plurality of slice names. The plurality of slice names are interpreted to produce a slice name range. Whether a write lock conflict exists is determined based on the slice name range. An unfavorable write slice response is issued to the requesting entity when the write lock conflict is determined to exist. When the write lock conflict is determined to not exist, local storage of the plurality of encoded data slices is initiated, a favorable write slice response is issued to the requesting entity, and the processing system indicates that the slice name range is not locked when completing the local storage of the plurality of encoded data slices.
    Type: Grant
    Filed: September 28, 2018
    Date of Patent: June 9, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Zachary J. Mark, Ilya Volvovski, Greg R. Dhuse
  • Patent number: 10678619
    Abstract: A computing device includes an interface configured to interface and communicate with a dispersed storage network (DSN), a memory that stores operational instructions, and a processing module operably coupled to the interface and memory such that the processing module, when operable within the computing device based on the operational instructions, is configured to perform various operations. The computing device detects a state change within the DSN based on at least one signal received via an interface. The computing device obtains a state descriptor, a timestamp, and state parameters. The computing device then generates a log record entry based on aggregation of the state change, the state descriptor, the timestamp, and/or the state parameters. The computing device then facilitates storage of the log record entry within event memory of the DSN.
    Type: Grant
    Filed: September 26, 2017
    Date of Patent: June 9, 2020
    Assignee: Pure Storage, Inc.
    Inventors: Greg R. Dhuse, Yogesh R. Vedpathak
  • Patent number: 10666596
    Abstract: A method for processing partial tasks in a distributed storage network (DSN) includes receiving a partial task request message for a DS execution unit, where the partial task request message includes corresponding partial tasks. The method continues by processing each partial task request message in accordance with the processing parameters to produce task request slice groupings, generating slices, such that each message is directed at a corresponding DS execution unit, and the sending the slice groupings and the task request slice groupings to the selected DS execution units for storage therein. The method continues by retrieving at least a decode threshold number of task response slices of one or more task response slice groupings from the DS execution units, decoding the task response slices, retrieving at least a decode threshold number of partial result slices, and decoding the partial results slices and processing the partial results to produce a result.
    Type: Grant
    Filed: May 9, 2019
    Date of Patent: May 26, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Wesley B. Leggette, Andrew D. Baptist, Greg R. Dhuse, Jason K. Resch, Ilya Volvovski, Manish Motwani, S. Christopher Gladwin, Gary W. Grube, Thomas F. Shirley, Jr.
  • Patent number: 10664360
    Abstract: Systems and methods for rebuilding data in a dispersed storage network (DSN) involve identifying a rebuilding process for a set of DS units requiring additional resources, identifying one or more tasks of the rebuilding process, identifying identified DS units of another set of DS units to support the one or more tasks and assigning the one or more tasks to the identified DS units. The systems and methods further involve receiving one or more rebuilding results and facilitating completion of the one or more tasks utilizing the one or more rebuilding results. The systems and method may further involve partitioning the one or more tasks to produce partial tasks, assigning the partial tasks to identified DS units, receiving rebuilding partial results and facilitating completion of one or more tasks utilizing the one or more rebuilding partial results.
    Type: Grant
    Filed: November 28, 2017
    Date of Patent: May 26, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Wesley B. Leggette, Andrew D. Baptist, Greg R. Dhuse, Jason K. Resch, Gary W. Grube
  • Patent number: 10656998
    Abstract: A method includes a first computing device encrypting a portion of a data matrix based on a set of encryption keys to produce an encrypted data matrix. The method further includes the first computing device sending the encrypted data matrix to a second computing device. The method further includes the second computing device dispersed storage error encoding the data matrix to produce a set of encrypted encoded data slices. The method further includes the second computing device sending the set of encrypted encoded data slices to a set of storage units of the DSN for storage therein.
    Type: Grant
    Filed: October 25, 2018
    Date of Patent: May 19, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Greg R. Dhuse, Jason K. Resch, Trevor J. Vossberg