Patents by Inventor Par A. Botes

Par A. Botes 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: 9798477
    Abstract: A plurality of storage nodes cooperating as a storage cluster is provided. Each of the plurality of storage nodes has storage memory. Each storage node of the plurality of storage nodes is configurable to direct erasure coded striping of data of one of an Mode or data segment across the plurality of storage nodes of the storage cluster, with at least one storage node of the plurality of storage nodes having a differing amount of storage capacity of the storage memory from an amount of storage capacity of another storage node in the plurality of storage nodes. A method of storing data in a storage cluster is also provided.
    Type: Grant
    Filed: June 13, 2016
    Date of Patent: October 24, 2017
    Assignee: Pure Storage, Inc.
    Inventors: Par Botes, John Colgrove, John Davis, John Hayes, Robert Lee, Joshua Robinson, Peter Vajgel
  • Publication number: 20170242604
    Abstract: A plurality of storage nodes in a single chassis is provided. The plurality of storage nodes includes a first plurality of storage nodes configured to communicate together as a first storage cluster and a second plurality of storage nodes configured to communicate together as a second storage cluster. Each of the first and second pluralities of storage nodes has nonvolatile solid-state memory for user data storage and each of the first and second pluralities of storage nodes is configured to distribute user data and metadata associated with the user data throughout a respective plurality of storage nodes such that a respective storage cluster maintains ability to read the user data, using erasure coding, despite a loss of one or more of the respective plurality of storage nodes.
    Type: Application
    Filed: May 10, 2017
    Publication date: August 24, 2017
    Inventors: Par Botes, John Colgrove, John Hayes
  • Patent number: 9672125
    Abstract: A plurality of storage nodes in a single chassis is provided. The plurality of storage nodes includes a first plurality of storage nodes configured to communicate together as a first storage cluster and a second plurality of storage nodes configured to communicate together as a second storage cluster. Each of the first and second pluralities of storage nodes has nonvolatile solid-state memory for user data storage and each of the first and second pluralities of storage nodes is configured to distribute user data and metadata associated with the user data throughout a respective plurality of storage nodes such that a respective storage cluster maintains ability to read the user data, using erasure coding, despite a loss of one or more of the respective plurality of storage nodes.
    Type: Grant
    Filed: April 10, 2015
    Date of Patent: June 6, 2017
    Assignee: Pure Storage, Inc.
    Inventors: Par Botes, John Colgrove, John Hayes
  • Publication number: 20170116100
    Abstract: A storage grid is provided. The storage grid includes a first cluster, a second cluster, and a third cluster. Each of the first cluster, the second cluster and the third cluster is configured to store an amount of data ranging from a portion of a copy of the data to a full copy of the data. The first cluster has a full copy of data written to the first cluster and at least a partial copy of data written to the second and third cluster. The second cluster has a full copy of data written to the second cluster, and at least a partial copy of the data written to the first and third cluster. The third cluster has a full copy of data written to the third cluster and at least a partial copy of the data written to the first and second cluster. A method of storing data is also provided.
    Type: Application
    Filed: June 4, 2015
    Publication date: April 27, 2017
    Applicant: Pure Storage, Inc.
    Inventors: John Hayes, Par Botes
  • Patent number: 9563506
    Abstract: A plurality of storage nodes is provided. The plurality of storage nodes is configured to communicate together as a storage cluster. Each of the plurality of storage nodes includes nonvolatile solid-state memory. The plurality of storage nodes is configured to distribute user data and metadata associated with the user data throughout the plurality of storage nodes such that the plurality of storage nodes maintain the ability to read the user data, using erasure coding, despite a loss of one of the plurality of storage nodes. A chassis enclosing the plurality of storage nodes includes power distribution, a high speed communication bus and the ability to install one or more storage nodes which may use the power distribution and communication bus in some embodiments. A method for accessing user data in a plurality of storage nodes having nonvolatile solid-state memory is also provided.
    Type: Grant
    Filed: September 19, 2014
    Date of Patent: February 7, 2017
    Assignee: Pure Storage, Inc.
    Inventors: John Hayes, John Colgrove, Robert Lee, Peter Vajgel, Par Botes
  • Publication number: 20160364562
    Abstract: A method for storage array self-configuration is disclosed. The method includes accessing an authenticated token that comprises encrypted configuration data for a storage array, decrypting the configuration data, and based on the configuration data, executing with configuration executing components of the storage array a configuration of the storage array. The configuration is executed responsive to an authentication of the token.
    Type: Application
    Filed: June 9, 2015
    Publication date: December 15, 2016
    Inventors: John Hayes, Par Botes, John Colgrove
  • Publication number: 20160328162
    Abstract: A plurality of storage nodes communicating as a storage cluster is provided. Each of the plurality of storage nodes includes nonvolatile solid-state memory for user data storage, wherein the plurality of storage nodes is configured as a plurality of logical arrays. At least one storage node of the plurality of storage nodes is designated as able to be removed from one of the plurality of logical arrays and at least one storage node of the plurality of storage nodes is designated as prevented from being removed from one of the plurality of logical arrays.
    Type: Application
    Filed: May 7, 2015
    Publication date: November 10, 2016
    Inventors: John Hayes, Par Botes
  • Publication number: 20160301752
    Abstract: A storage system is provided. The storage system includes a plurality of storage nodes, each of the plurality of storage nodes having a plurality of storage units with storage memory. The system includes a first network coupling the plurality of storage nodes and a second network coupled to at least a subset of the plurality of storage units of each of the plurality of storage nodes such that one of the plurality of storage units of a first one of the plurality of storage nodes can initiate or relay a command to one of the plurality of storage units of a second one of the plurality of storage nodes via the second network without the command passing through the first network.
    Type: Application
    Filed: April 9, 2015
    Publication date: October 13, 2016
    Inventors: Par BOTES, John Hayes, Zhangxi Tan
  • Publication number: 20160299823
    Abstract: A plurality of storage nodes in a single chassis is provided. The plurality of storage nodes includes a first plurality of storage nodes configured to communicate together as a first storage cluster and a second plurality of storage nodes configured to communicate together as a second storage cluster. Each of the first and second pluralities of storage nodes has nonvolatile solid-state memory for user data storage and each of the first and second pluralities of storage nodes is configured to distribute user data and metadata associated with the user data throughout a respective plurality of storage nodes such that a respective storage cluster maintains ability to read the user data, using erasure coding, despite a loss of one or more of the respective plurality of storage nodes.
    Type: Application
    Filed: April 10, 2015
    Publication date: October 13, 2016
    Inventors: Par Botes, John Colgrove, John Hayes
  • Publication number: 20160299707
    Abstract: A plurality of storage nodes cooperating as a storage cluster is provided. Each of the plurality of storage nodes has storage memory. Each storage node of the plurality of storage nodes is configurable to direct erasure coded striping of data of one of an Mode or data segment across the plurality of storage nodes of the storage cluster, with at least one storage node of the plurality of storage nodes having a differing amount of storage capacity of the storage memory from an amount of storage capacity of another storage node in the plurality of storage nodes. A method of storing data in a storage cluster is also provided.
    Type: Application
    Filed: June 13, 2016
    Publication date: October 13, 2016
    Inventors: Par Botes, John Colgrove, John Davis, John Hayes, Robert Lee, Joshua Robinson, Peter Vajgel
  • Publication number: 20160283141
    Abstract: A storage cluster is provided. The storage cluster includes a plurality of storage nodes coupled together as the storage cluster. The plurality of storage nodes is configured to assign data to two or more logical arrays and the plurality of storage nodes is configured to establish data striping across the plurality of storage nodes for user data of each of the two or more logical arrays.
    Type: Application
    Filed: March 27, 2015
    Publication date: September 29, 2016
    Inventors: John Hayes, Par Botes
  • Publication number: 20160275156
    Abstract: A storage system is provided. The storage system includes a plurality of storage nodes coupled together as a storage cluster. Each storage node of the plurality of storage nodes has a processor and one or more storage units having solid-state storage memory. At least one storage node of the plurality of storage nodes has a metadata query engine configured to respond to a query regarding metadata in one or more of the plurality of storage nodes.
    Type: Application
    Filed: March 20, 2015
    Publication date: September 22, 2016
    Inventor: Par Botes
  • Publication number: 20160275142
    Abstract: A method for querying a storage system is provided. The method includes receiving, at one of a plurality of storage nodes of the storage system, a query relating to metadata of the storage system. The method includes determining which authorities have ownership of ranges of user data to which the query pertains and distributing the query or portions of the query to the authorities that have ownership of the data, wherein each of the authorities access the metadata of the storage system associated with the query. The method includes aggregating replies to the query from the authorities that have ownership of the ranges of user data, to form a query reply.
    Type: Application
    Filed: May 3, 2016
    Publication date: September 22, 2016
    Inventor: Par Botes
  • Patent number: 9367243
    Abstract: A plurality of storage nodes in a single chassis is provided. Each of the plurality of storage nodes has a storage capacity with nonvolatile solid-state memory for user data storage. The plurality of storage nodes is configured to support uniform storage capacities and non-uniform storage capacities among the plurality of storage nodes, as a storage cluster. The plurality of storage nodes is configured to distribute the user data and metadata throughout the plurality of storage nodes such that the plurality of storage nodes can read the user data, using erasure coding, despite loss of two of the plurality of storage nodes.
    Type: Grant
    Filed: June 4, 2014
    Date of Patent: June 14, 2016
    Assignee: Pure Storage, Inc.
    Inventors: John Hayes, John Colgrove, Robert Lee, Joshua Robinson, Peter Vajgel, John Davis, Par Botes
  • Publication number: 20160004877
    Abstract: A method for securing data in a storage grid is provided. The method includes generating a storage key from key shares of at least two storage clusters of a storage grid having at least three storage clusters and generating a grid key from the storage key and an external secret. The method includes encrypting data with the grid key to yield once encrypted data and encrypting the once encrypted data with the storage key to yield twice encrypted data. The method includes storing the twice encrypted data in a first storage cluster of the storage grid and storing the twice encrypted data in a second storage cluster of the storage grid, wherein at least one method operation is performed by a processor.
    Type: Application
    Filed: July 3, 2014
    Publication date: January 7, 2016
    Inventors: John Hayes, Par Botes, Ethan Miller
  • Publication number: 20150355984
    Abstract: A storage grid is provided. The storage grid includes a first cluster, a second cluster, and a third cluster. Each of the first cluster, the second cluster and the third cluster is configured to store an amount of data ranging from a portion of a copy of the data to a full copy of the data. The first cluster has a full copy of data written to the first cluster and at least a partial copy of data written to the second and third cluster. The second cluster has a full copy of data written to the second cluster, and at least a partial copy of the data written to the first and third cluster. The third cluster has a full copy of data written to the third cluster and at least a partial copy of the data written to the first and second cluster. A method of storing data is also provided.
    Type: Application
    Filed: May 14, 2015
    Publication date: December 10, 2015
    Inventors: John Hayes, Par Botes
  • Publication number: 20150355969
    Abstract: A plurality of storage nodes is provided. The plurality of storage nodes is configured to communicate together as a storage cluster. Each of the plurality of storage nodes includes nonvolatile solid-state memory. The plurality of storage nodes is configured to distribute user data and metadata associated with the user data throughout the plurality of storage nodes such that the plurality of storage nodes maintain the ability to read the user data, using erasure coding, despite a loss of one of the plurality of storage nodes. A chassis enclosing the plurality of storage nodes includes power distribution, a high speed communication bus and the ability to install one or more storage nodes which may use the power distribution and communication bus in some embodiments. A method for accessing user data in a plurality of storage nodes having nonvolatile solid-state memory is also provided.
    Type: Application
    Filed: September 19, 2014
    Publication date: December 10, 2015
    Inventors: John Hayes, John Colgrove, Robert Lee, Peter Vajgel, Par Botes
  • Publication number: 20150355862
    Abstract: A method for migrating data from a first storage array to a second storage array is provided. The method includes configuring the second storage array to forward requests to the first storage array and configuring a network so that second storage array assumes an identity of the first storage array. The method includes receiving a read request at the second storage array for a first data stored within the first storage array and transferring the first data through the second storage array to a client associated with the read request. The method is performed without reconfiguring the client. A system for migrating data is also provided.
    Type: Application
    Filed: June 4, 2014
    Publication date: December 10, 2015
    Inventors: John Hayes, Par Botes
  • Patent number: 9087012
    Abstract: A storage grid is provided. The storage grid includes a first cluster, a second cluster, and a third cluster. Each of the first cluster, the second cluster and the third cluster is configured to store an amount of data ranging from a portion of a copy of the data to a full copy of the data. The first cluster has a full copy of data written to the first cluster and at least a partial copy of data written to the second and third cluster. The second cluster has a full copy of data written to the second cluster, and at least a partial copy of the data written to the first and third cluster. The third cluster has a full copy of data written to the third cluster and at least a partial copy of the data written to the first and second cluster. A method of storing data is also provided.
    Type: Grant
    Filed: June 4, 2014
    Date of Patent: July 21, 2015
    Assignee: Pure Storage, Inc.
    Inventors: John Hayes, Par Botes
  • Patent number: 8954393
    Abstract: System and method for the opportunistic allocation of copies of data across data storage resources in file systems. Embodiments may opportunistically and transparently trade storage space in a file system for performance. In embodiments, when data is stored to the file system, copies of the data may be opportunistically stored to two or more data storage resources. The data may then be opportunistically accessed from a less active resource if the resource storing a primary copy of the data is busy. The opportunistically stored copies of data remain online in the file system. In hierarchical file systems or tiered storage hierarchies, embodiments may allow higher-level storage tiers to “borrow” performance from lower-level tiers by opportunistically allocating copies of data from a higher-level tier within a lower-level tier. Copies of data stored on a data storage resource may be deleted if storage space is needed on that data storage resource.
    Type: Grant
    Filed: November 24, 2004
    Date of Patent: February 10, 2015
    Assignee: Symantec Operating Corporation
    Inventor: Par Botes