Patents Assigned to Pure Storage Inc.
  • Patent number: 10432233
    Abstract: Dynamically adjusting an error correction effort level of a storage device, including: receiving, from a storage array controller, an error correction effort level to perform when attempting to read data from the storage device; identifying that an attempt to read the data resulted in an error; and determining whether an amount of error correction effort level required to attempt to correct the error exceeds the error correction effort level to perform when attempting to read data from the storage device.
    Type: Grant
    Filed: July 6, 2018
    Date of Patent: October 1, 2019
    Assignee: Pure Storage Inc.
    Inventors: John Colgrove, Ethan Miller
  • Patent number: 8527544
    Abstract: A system and method for performing garbage collection. A system includes a storage medium, a first table including entries which map a virtual address to locations in the storage medium, and a second table with entries which include a reverse mapping of a physical address in a data storage medium to one or more virtual addresses. A storage controller is configured to perform garbage collection. During garbage collection, the controller is configured to identify one or more entries in the second table which correspond to a segment to be garbage collected. In response to determining the first table includes a valid mapping for a virtual address included in an entry of the one of the one or more entries, the controller is configured to copy data from a first location identified in the entry to a second location in the data storage medium, and reclaim the first storage location.
    Type: Grant
    Filed: December 29, 2011
    Date of Patent: September 3, 2013
    Assignee: Pure Storage Inc.
    Inventors: John Colgrove, John Hayes, Ethan Miller, Cary Sandvig, Joseph S. Hasbani, Feng Wang
  • Patent number: 8497788
    Abstract: Systems and methods for performing compression of data. A data buffer is separated into equal-sized segments of data. A frequency count is performed to determine how often each segment of data appears in the data buffer. Frequently occurring segments are encoded with unique compression codes, while all other infrequently occurring segments are encoded with a common compression code. The compressed data buffer includes the compression codes, which are all of the same bit-length, and the uncompressed segments. The compression codes and the uncompressed segments are stored in the compressed data buffer in the order in which the corresponding segments appear in the original data buffer.
    Type: Grant
    Filed: April 25, 2012
    Date of Patent: July 30, 2013
    Assignee: Pure Storage Inc.
    Inventors: Ethan Miller, John Colgrove, John Hayes
  • Patent number: 8468318
    Abstract: A system and method for scheduling read and write operations among a plurality of solid-state storage devices. A computer system comprises client computers and data storage arrays coupled to one another via a network. A data storage array utilizes solid-state drives and Flash memory cells for data storage. A storage controller within a data storage array comprises an I/O scheduler. The data storage controller is configured to receive requests targeted to the data storage medium, said requests including a first type of operation and a second type of operation. The controller is further configured to schedule requests of the first type for immediate processing by said plurality of storage devices, and queue requests of the second type for later processing by the plurality of storage devices. Operations of the first type may correspond to operations with an expected relatively low latency, and operations of the second type may correspond to operations with an expected relatively high latency.
    Type: Grant
    Filed: September 15, 2010
    Date of Patent: June 18, 2013
    Assignee: Pure Storage Inc.
    Inventors: John Colgrove, John Hayes, Bo Hong, Feng Wang, Ethan Miller, Craig Harmer
  • Patent number: 8463991
    Abstract: A system and method for intra-device data protection in a RAID array. A computer system comprises client computers and data storage arrays coupled to one another via a network. A data storage array utilizes solid-state drives and Flash memory cells for data storage. A storage controller within a data storage array is configured to identify a unit of data stored in the data storage subsystem, wherein said unit of data is stored across at least a first storage device and a second storage device of the plurality of storage devices, each of the first storage device and the second storage device storing intra-device redundancy data corresponding to the unit of data; and change an amount of intra-device redundancy data corresponding to the unit of data on only the first storage device.
    Type: Grant
    Filed: September 28, 2010
    Date of Patent: June 11, 2013
    Assignee: Pure Storage Inc.
    Inventors: John Colgrove, John Hayes, Bo Hong, Ethan Miller