Patents by Inventor Peter E. Kirkpatrick

Peter E. Kirkpatrick 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).

  • Publication number: 20200183827
    Abstract: A system including embedded storage devices is described. A method of system operation includes determining, by a processing device of a storage system controller operatively coupled via a network to embedded storage devices, that data is to be stored in a first storage portion of a first storage device of the embedded storage devices. The method also includes buffering the data in a second storage portion of a second embedded storage device of the embedded storage devices.
    Type: Application
    Filed: January 3, 2020
    Publication date: June 11, 2020
    Inventors: Roland Dreier, Ronald Karr, Peter E. Kirkpatrick
  • Patent number: 10678433
    Abstract: In one implementation, a method includes receiving a request to add a new system resource to a client network. The method further includes establishing a first connection between the new system resource and the client network. The method further includes establishing a second connection between the new system resource and an existing system resource. The method further includes transferring, by a system controller, a system controller role from the existing system resource to the new system resource.
    Type: Grant
    Filed: April 27, 2018
    Date of Patent: June 9, 2020
    Assignee: PURE STORAGE, INC.
    Inventor: Peter E. Kirkpatrick
  • Publication number: 20200150891
    Abstract: A method including receiving, by a storage device, a write request, the write request associated with an amount of data sized in dependence upon information describing a layout of memory in the storage device. The method may also include writing, by the storage device, the data to a memory unit, the data written to a location within the memory unit in dependence upon the information.
    Type: Application
    Filed: January 17, 2020
    Publication date: May 14, 2020
    Inventors: John Colgrove, Peter E. Kirkpatrick
  • Publication number: 20200117361
    Abstract: A system and method of uniform sampling in an append-only database to determine temporal distribution of data.
    Type: Application
    Filed: December 13, 2019
    Publication date: April 16, 2020
    Inventors: Huihui Cheng, Gunjan Dang, Michael Goldsby, Yanwei Jiang, Aswin Karumbunathan, Peter E. Kirkpatrick, Naveen Neelakantam, Neil Buda Vachharajani, Junming Zhu
  • Patent number: 10613974
    Abstract: A system may include embedded storage devices, each including an addressable non-volatile random-access memory (NVRAM) portion and storage system controllers operatively coupled to the embedded storage devices via a full-duplex switched network. The storage system controllers may be configured to instruct a first embedded storage device of the plurality of embedded storage devices to: receive first data to be stored in a first NVRAM portion of the embedded storage device, store the first data in the first NVRAM portion of the first embedded storage device, and send second data to a second NVRAM portion of a second embedded storage device directly via the full-duplex switched network.
    Type: Grant
    Filed: April 28, 2017
    Date of Patent: April 7, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Roland Dreier, Ronald Karr, Peter E. Kirkpatrick
  • Publication number: 20200081648
    Abstract: A storage system includes solid-state storage devices and a storage controller operatively coupled to the solid-state storage devices, the storage controller including a processing device, the processing device to receive, from a solid-state storage device of the solid-state storage devices, an indication of an occurrence of triggering event associated with data stored at a first data block of the solid-state storage device. In response to receiving the indication of the occurrence of the triggering event, a second data block of the solid-state storage device is identified for storage of the data. A command in transmitted to the solid-state storage device that includes address information associated with the second data block of the solid-state storage device for storage of the data, wherein the command causes the solid-state storage device to program the data to the second data block.
    Type: Application
    Filed: April 19, 2019
    Publication date: March 12, 2020
    Inventors: Andrew R. Bernat, Peter E. Kirkpatrick, Gordon James Coleman, Wei Tang, Ronald Karr
  • Publication number: 20200073559
    Abstract: In one implementation, a method includes maintaining a list of available erase block portions across a plurality of flash devices of a flash storage system, and wherein erase blocks are categorized by the flash storage system as available for use, in use, or unusable. The method further includes receiving data from a plurality of sources, wherein the data is associated with processing a dataset, the dataset comprising multiple file systems and associated metadata. The method further includes determining a plurality of subsets of the data such that each subset is capable of being written in parallel with the remaining subsets, mapping each subset of the plurality of subsets to an available allocation unit, and writing the plurality of subsets in parallel.
    Type: Application
    Filed: September 10, 2019
    Publication date: March 5, 2020
    Inventors: Peter E. Kirkpatrick, Ronald Karr
  • Patent number: 10564882
    Abstract: A method including receiving, by a storage device, a write request, the write request associated with an amount of data sized in dependence upon information describing a layout of memory in the storage device. The method may also include writing, by the storage device, the data to a memory unit, the data written to a location within the memory unit in dependence upon the information.
    Type: Grant
    Filed: January 30, 2019
    Date of Patent: February 18, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: John Colgrove, Peter E. Kirkpatrick
  • Patent number: 10545861
    Abstract: A system may include embedded storage devices, each including: a first solid state drive (SSD) storage portion and a second non-volatile random-access memory (NVRAM) portion. The NVRAM portion includes a random access memory (RAM) device, a processing device, and an energy source, where the first SSD portion and the second NVRAM portion are separately addressable. The system further includes a storage system controller, operatively coupled to the embedded storage devices via a network. The storage system controller may be to: determine that data is to be stored in the first SSD storage portion of a first embedded storage device of the plurality of embedded storage devices; and buffer the data in the second NVRAM portion of a second embedded storage device of the plurality of embedded storage devices.
    Type: Grant
    Filed: April 28, 2017
    Date of Patent: January 28, 2020
    Assignee: PURE STORAGE, INC.
    Inventors: Roland Dreier, Ronald Karr, Peter E. Kirkpatrick
  • Publication number: 20190391872
    Abstract: In one implementation, a method comprises storing verification data and erasure codes separately in a plurality of storage devices. The method further comprises determining, by a processing device, whether data to be written to the plurality of storage devices is lost or corrupted using the verification data and the erasure codes.
    Type: Application
    Filed: August 28, 2019
    Publication date: December 26, 2019
    Inventors: Peter E. Kirkpatrick, Ronald Karr
  • Patent number: 10452290
    Abstract: In one implementation, a method includes maintaining a list of available allocation units across a plurality of flash devices of a flash storage system, wherein the flash devices map erase blocks as directly addressable storage, and wherein erase blocks are categorized by the flash storage system as available for use, in use, or unusable, and wherein at least a portion of an erase block can be assigned as an allocation unit. The method further includes receiving data from a plurality of sources, wherein the data is associated with processing a dataset, the dataset comprising multiple file systems and associated metadata. The method further includes determining a plurality of subsets of the data such that each subset is capable of being written in parallel with the remaining subsets, mapping each subset of the plurality of subsets to an available allocation unit, and writing the plurality of subsets in parallel.
    Type: Grant
    Filed: July 31, 2017
    Date of Patent: October 22, 2019
    Assignee: Pure Storage, Inc.
    Inventors: Peter E. Kirkpatrick, Ronald Karr
  • Patent number: 10402266
    Abstract: In one implementation, storage system includes embedded storage devices, where each embedded storage device includes a direct-mapped solid state drive (SSD) storage portion and storage system controllers. The storage system controllers may be operatively coupled to the embedded storage devices via a bus. The storage system controllers may receive data to be written to the plurality embedded storage devices, select a plurality of available allocation units from the direct-mapped SSD storage portions of the plurality of embedded storage devices, respectively, and calculate a verification signature corresponding to the data. The storage system controllers may also write the data and the verification signature to a first subset of the plurality of available allocation units, calculate an erasure code corresponding to the data and the verification signature, and write the erasure code to a second subset of allocation units.
    Type: Grant
    Filed: July 31, 2017
    Date of Patent: September 3, 2019
    Assignee: Pure Storage, Inc.
    Inventors: Peter E. Kirkpatrick, Ronald Karr
  • Patent number: 10310740
    Abstract: Aligning memory access operations to a geometry of a storage device, including: receiving, by a storage array controller, information describing the layout of memory in the storage device; determining, by the storage array controller, a write size in dependence upon the layout of memory in the storage device; and sending, by the storage array controller, a write request addressed to a location within the memory unit in dependence upon the layout of memory in the storage device.
    Type: Grant
    Filed: June 23, 2015
    Date of Patent: June 4, 2019
    Assignee: Pure Storage, Inc.
    Inventors: John Colgrove, Peter E. Kirkpatrick
  • Publication number: 20190163390
    Abstract: A method including receiving, by a storage device, a write request, the write request associated with an amount of data sized in dependence upon information describing a layout of memory in the storage device. The method may also include writing, by the storage device, the data to a memory unit, the data written to a location within the memory unit in dependence upon the information.
    Type: Application
    Filed: January 30, 2019
    Publication date: May 30, 2019
    Inventors: John Colgrove, Peter E. Kirkpatrick
  • Publication number: 20190108877
    Abstract: A method for page writes for triple or higher level cell flash memory is provided. The method includes receiving data in a storage system, from a client that is agnostic of page write requirements for triple or higher level cell flash memory, wherein the page write requirements specify an amount of data and a sequence of writing data for a set of pages to assure read data coherency for the set of pages. The method includes accumulating the received data, in random-access memory (RAM) in the storage system to satisfy the page write requirements for the triple or higher level cell flash memory in the storage system. The method includes writing at least a portion of the accumulated data in accordance with the page write requirements, from the RAM to the triple level cell, or the higher level cell, flash memory in the storage system as an atomic write.
    Type: Application
    Filed: November 26, 2018
    Publication date: April 11, 2019
    Inventors: Hari Kannan, Peter E. Kirkpatrick
  • Publication number: 20190065093
    Abstract: A method of automatic load rebalancing includes determining that a new storage device was added to a storage array comprising a plurality of storage devices, wherein the new storage device is distinct from the plurality of storage devices. The method further includes, in response to the determining, identifying a first shard on a first storage device of the plurality of storage devices, wherein the first storage device has a fullness metric that is equal to or exceeds a fullness threshold. The method further includes moving, by a processing device of a storage array controller of the storage array, the first shard from the first storage device to the new storage device.
    Type: Application
    Filed: October 25, 2018
    Publication date: February 28, 2019
    Inventors: Ronald Karr, Peter E. Kirkpatrick, Andrew R. Bernat, Tsu-Hao Chang, Phil Hord, Benjamin Scholbrock, Radek Aster
  • Patent number: 10216447
    Abstract: Exposing a geometry of a storage device, including: sending, by the storage device, information describing the layout of memory in the storage device; receiving, by the storage device, a write request, the write request associated with an amount of data sized in dependence upon the layout of memory in the storage device; and writing, by the storage device, the data to a memory unit, the data written to a location within the memory unit in dependence upon the layout of memory in the storage device.
    Type: Grant
    Filed: December 23, 2016
    Date of Patent: February 26, 2019
    Assignee: PURE STORAGE, INC.
    Inventors: John Colgrove, Peter E. Kirkpatrick
  • Patent number: 10141050
    Abstract: A method for page writes for triple or higher level cell flash memory is provided. The method includes receiving data in a storage system, from a client that is agnostic of page write requirements for triple or higher level cell flash memory, wherein the page write requirements specify an amount of data and a sequence of writing data for a set of pages to assure read data coherency for the set of pages. The method includes accumulating the received data, in random-access memory (RAM) in the storage system to satisfy the page write requirements for the triple or higher level cell flash memory in the storage system. The method includes writing at least a portion of the accumulated data in accordance with the page write requirements, from the RAM to the triple level cell, or the higher level cell, flash memory in the storage system as an atomic write.
    Type: Grant
    Filed: April 27, 2017
    Date of Patent: November 27, 2018
    Assignee: Pure Storage, Inc.
    Inventors: Hari Kannan, Peter E. Kirkpatrick
  • Publication number: 20180285024
    Abstract: A method includes receiving, by a storage drive and from a storage controller, a modified first submission queue command including a first logical unit identifier. The first submission queue command includes a first host identifier to identify a first host controller was previously received by the storage controller from the first host controller. The first submission queue command was modified by the storage controller to replace the first host identifier with the first logical unit identifier. The method also includes responsive to receiving the modified first submission queue command, identifying, by the storage drive, a first logical unit of storage based on the first logical unit identifier of the modified submission queue command. The method includes granting, by the storage drive, a reservation for access to the storage drive on behalf of the first host controller by associating the reservation for the first logical unit with a second logical unit of storage.
    Type: Application
    Filed: June 6, 2018
    Publication date: October 4, 2018
    Inventors: Gordon James Coleman, Roland Dreier, Peter E. Kirkpatrick
  • Publication number: 20180219675
    Abstract: A method of operating a solid-state storage drive is provided. The method includes encrypting, in the solid-state storage drive, first data by a first key, and writing the encrypted first data into solid-state storage memory of the solid-state storage drive. The method includes encrypting, in the solid-state storage drive, second data by a second key, and writing the encrypted second data into the solid-state storage memory of the solid-state storage drive, wherein at least one of the first key or the second key is supplied from a source external to the solid-state storage drive.
    Type: Application
    Filed: January 31, 2017
    Publication date: August 2, 2018
    Inventors: John Colgrove, Peter E. Kirkpatrick, Robert Lee, Ethan L. Miller