Patents by Inventor David Flynn

David Flynn 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: 20130124791
    Abstract: An apparatus, system, and method are disclosed for storage space recovery in solid-state storage. A sequential storage module sequentially writes data packets in a storage division. The storage division includes a portion of a solid-state storage. The data packets are derived from an object. The data packets are sequentially stored by order of processing. A storage division selection module selects a storage division for recovery. A data recovery module reads valid data packets from the storage division selected for recovery, queues the valid data packets with other data packets to be written sequentially, and updates an index with a new physical address of the valid data. The index includes a mapping of physical addresses of data packets to object identifiers. A storage division recovery module marks the storage division selected for recovery as available for sequentially writing data packets in response to completing copying valid data from the storage division.
    Type: Application
    Filed: December 28, 2012
    Publication date: May 16, 2013
    Applicant: Fusion-io, Inc
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, John Walker, Michael Zappe
  • Patent number: 8443259
    Abstract: An apparatus, system, and method are disclosed for storing information in a storage device that includes multi-level memory cells. The method involves storing data that is written to the storage device in the LSBs of the multi-level memory cells, and storing audit data in the MSBs of the multi-level memory cells. The audit data can be read separately from the data and used to determine whether or not there has been any unintended drift between states in the multi-level cells. The audit data may be used to correct data when the errors in the data are too numerous to be corrected using error correction code (ECC). The audit data may also be used to monitor the general health of the storage device. The monitoring process may run as a background process on the storage device. The storage device may transition the multi-level memory cells to operate as single-level memory cells.
    Type: Grant
    Filed: June 22, 2012
    Date of Patent: May 14, 2013
    Assignee: Fusion-io, Inc.
    Inventors: Jonathan Thatcher, David Flynn, Ethan Barnes, John Strasser, Robert Wood, Michael Zappe
  • Patent number: 8443134
    Abstract: Apparatuses, systems, and methods are disclosed for implementing a cache policy. A method may include determining a risk of data loss on a cache device. The cache device may comprise a non-volatile storage device configured to perform cache functions for a backing store. The cache device may implement a cache policy. A method may include determining that a risk of data loss on the cache devices exceeds a threshold risk level. A method may include implementing a modified cache policy for the cache device in response to the risk of data loss exceeding the threshold risk level. The modified cache policy may reduce the risk of data loss below the threshold level.
    Type: Grant
    Filed: September 17, 2010
    Date of Patent: May 14, 2013
    Assignee: Fusion-io, Inc.
    Inventor: David Flynn
  • Patent number: 8417774
    Abstract: An apparatus, system, and method are disclosed for a baseboard management controller (BMC) which includes an FPGA with a monitor module for monitoring the operations parameters of a host computer device. In addition, the BMC has a host connector that connects the BMC to the system bus of the host computing device, allowing the BMC access to the computing elements on the host. The host connector has reconfigurable pins with connection configuration controlled by the FPGA. In addition, the BMC has a server with a processor and associated non-volatile memory on board. The operating system provides services to the host computing device and its constituent components, as well as allowing advanced networking and interconnectivity with other BMCs in a management network.
    Type: Grant
    Filed: December 6, 2007
    Date of Patent: April 9, 2013
    Assignee: Fusion-IO, Inc.
    Inventors: David Flynn, John Strasser, Jonathan Thatcher
  • Patent number: 8412904
    Abstract: Apparatus, systems, and methods are disclosed for managing concurrent storage requests. A multiple storage request receiver module is configured to recognize at least two storage requests from clients for data in storage devices of a storage device set. The at least two concurrent storage requests address a common portion of data. A sequencer module is configured to determine a first storage request and a second storage request from the concurrent storage requests by way of selection criteria. The sequencer module is configured to ensure completion of the first storage request prior to executing the second storage request by receiving an acknowledgment from each of the storage devices of the storage device set that received portions of the first storage request. The portions may be sent to the storage devices to execute the first storage request.
    Type: Grant
    Filed: March 29, 2011
    Date of Patent: April 2, 2013
    Assignee: Fusion-Io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Patent number: 8412979
    Abstract: An apparatus, system, and method are disclosed for data storage with progressive redundant array of independent drives (“RAID”). A storage request receiver module, a striping module, a parity-mirror module, and a parity progression module are included. The storage request receiver module receives a request to store data of a file or of an object. The striping module calculates a stripe pattern for the data. The stripe pattern includes one or more stripes, and each stripe includes a set of N data segments. The striping module writes the N data segments to N storage devices. Each data segment is written to a separate storage device within a set of storage devices assigned to the stripe. The parity-mirror module writes a set of N data segments to one or more parity-mirror storage devices within the set of storage devices. The parity progression module calculates a parity data segment on each parity-mirror device in response to a storage consolidation operation, and stores the parity data segments.
    Type: Grant
    Filed: July 13, 2011
    Date of Patent: April 2, 2013
    Assignee: Fusion-IO, Inc.
    Inventors: David Flynn, David Atkisson, Jonathan Thatcher, Michael Zappe
  • Patent number: 8412978
    Abstract: An apparatus, system, and method are disclosed for managing data storage. The method includes determining that an error correcting code (ECC) block comprises uncorrectable errors. The ECC block is stored across a plurality of memory devices. The method includes iteratively substituting replacement data, within data of the ECC block, for individual memory devices of the plurality of memory devices to form substitute ECC blocks until one of the substitute ECC blocks is correctable using the error correcting code for the ECC block. The method includes providing corrected data from the correctable one of the substitute ECC blocks.
    Type: Grant
    Filed: May 8, 2012
    Date of Patent: April 2, 2013
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Publication number: 20130073821
    Abstract: A virtual storage layer (VSL) presents logical address space of a non-volatile storage device. The VSL maintains logical interfaces to the non-volatile storage device, which may include arbitrary, any-to-any mappings between logical identifiers and storage resources. Data may be stored on the non-volatile storage device in a contextual format, which includes persistent metadata that defines the logical interface of the data. The VSL may modify the logical interface of data that is stored in the contextual format. The modified logical interface may be inconsistent with the existing contextual format of the data on the non-volatile storage media. The VSL may provide access to the data in the inconsistent contextual format through the modified logical interface. The contextual format of the data may be updated to be consistent with the modified logical interface in a write out-of-place storage operation.
    Type: Application
    Filed: March 19, 2012
    Publication date: March 21, 2013
    Applicant: FUSION-IO, INC.
    Inventors: David Flynn, Robert Wipfel, David Nellans, John Strasser
  • Patent number: 8402201
    Abstract: An apparatus, system, and method are disclosed for storage space recovery in solid-state storage. A sequential storage module sequentially writes data packets in a storage division. The storage division includes a portion of a solid-state storage. The data packets are derived from an object. The data packets are sequentially stored by order of processing. A storage division selection module selects a storage division for recovery. A data recovery module reads valid data packets from the storage division selected for recovery, queues the valid data packets with other data packets to be written sequentially, and updates an index with a new physical address of the valid data. The index includes a mapping of physical addresses of data packets to object identifiers. A storage division recovery module marks the storage division selected for recovery as available for sequentially writing data packets in response to completing copying valid data from the storage division.
    Type: Grant
    Filed: December 6, 2007
    Date of Patent: March 19, 2013
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, John Walker, Michael Zappe
  • Publication number: 20130067294
    Abstract: An apparatus, system, and method are disclosed for a front-end, distributed redundant array of independent drives (“RAID”). A storage request receiver module receives a storage request to store object or file data in a set of autonomous storage devices forming a RAID group. The storage devices independently receive storage requests from a client over a network, and one or more of the storage devices are designated as parity-mirror storage devices for a stripe. The striping association module calculates a stripe pattern for the data. Each stripe includes N data segments, each associated with N storage devices. The parity-mirror association module associates a set of the N data segments with one or more parity-mirror storage devices. The storage request transmitter module transmits storage requests to each storage device. Each storage request is sufficient to store onto the storage device the associated data segments. The storage requests are substantially free of data.
    Type: Application
    Filed: June 4, 2012
    Publication date: March 14, 2013
    Applicant: Fusion-io, Inc.
    Inventors: David Flynn, John Strasser, Jonathan Thatcher, Michael Zappe
  • Patent number: 8392798
    Abstract: An apparatus, system, and method are disclosed for validating that correct data is read from a storage device. A hash generation module generates a hash value from a logical address of a read request for a data storage device. A read data module reads, from the data storage device, data identified by the read request and a stored hash value stored with the data. The stored hash value was generated from a logical address for data written to the data storage device. A hash check module verifies that the generated hash value matches the stored hash value read from the data storage device.
    Type: Grant
    Filed: April 9, 2012
    Date of Patent: March 5, 2013
    Assignee: Fusion-IO, Inc.
    Inventors: David Flynn, Jonathan Thatcher, John Strasser
  • Publication number: 20130024642
    Abstract: An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.
    Type: Application
    Filed: September 7, 2012
    Publication date: January 24, 2013
    Applicant: FUSION-IO, INC.
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Publication number: 20130019072
    Abstract: An adaptive logical storage element comprises a plurality of solid-state storage elements accessible in parallel. The logical storage element includes logical storage units, which may include logical page, logical storage divisions (erase blocks), and so on. Each logical storage unit comprises a plurality of physical storage units. A logical storage unit may include one or more physical storage units that are out-of-service (OOS). The OOS status of logical storage units is tracked by OOS metadata. When data is stored on the logical storage element, padding data is provided to physical storage units that are OOS, and valid and/or parity data is provided to in-service physical storage units. A write data pipeline accesses the OOS metadata to insert padding data, and a read data pipeline accesses the OOS metadata to strip padding data.
    Type: Application
    Filed: January 19, 2012
    Publication date: January 17, 2013
    Applicant: FUSION-IO, INC.
    Inventors: John Strasser, David Flynn, Bill Inskeep
  • Publication number: 20120331206
    Abstract: An apparatus, system, and method are disclosed for managing data with an empty data segment directive at the storage device. The apparatus, system, and method for managing data include a write request receiver module and a data segment token storage module. The write request receiver module receives a storage request from a requesting device. The storage request includes a request to store a data segment in a storage device. The data segment includes a series of repeated, identical characters or a series of repeated, identical character strings. The data segment token storage module stores a data segment token in the storage device. The data segment token includes at least a data segment identifier and a data segment length. The data segment token is substantially free of data from the data segment.
    Type: Application
    Filed: August 3, 2012
    Publication date: December 27, 2012
    Applicant: Fusion-io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Publication number: 20120324311
    Abstract: An apparatus, system, and method are disclosed for managing data in a solid-state storage device. A solid-state storage and solid-state controller are included. The solid-state storage controller includes a write data pipeline and a read data pipeline The write data pipeline includes a packetizer and an ECC generator. The packetizer receives a data segment and creates one or more data packets sized for the solid-state storage. The ECC generator generates one or more error-correcting codes (“ECC”) for the data packets received from the packetizer. The read data pipeline includes an ECC correction module, a depacketizer, and an alignment module. The ECC correction module reads a data packet from solid-state storage, determines if a data error exists using corresponding ECC and corrects errors. The depacketizer checks and removes one or more packet headers. The alignment module removes unwanted data, and re-formats the data as data segments of an object.
    Type: Application
    Filed: August 30, 2012
    Publication date: December 20, 2012
    Applicant: FUSION-IO, INC.
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20120297258
    Abstract: An apparatus, system, and method are disclosed for bad block remapping. A bad block identifier module identifies one or more data blocks on a solid-state storage element as bad blocks. A log update module writes at least a location of each bad block identified by the bad block identifier module into each of two or more redundant bad block logs. A bad block mapping module accesses at least one bad block log during a start-up operation to create in memory a bad block map. The bad block map includes a mapping between the bad block locations in the bad block log and a corresponding location of a replacement block for each bad block location. Data is stored in each replacement block instead of the corresponding bad block. The bad block mapping module creates the bad block map using one of a replacement block location and a bad block mapping algorithm.
    Type: Application
    Filed: August 2, 2012
    Publication date: November 22, 2012
    Applicant: Fusion-io, Inc.
    Inventors: David Flynn, John Strasser, Jonathan Thatcher, David Atkisson, Michael Zappe, Joshua Aune, Kevin Vigor
  • Patent number: 8316277
    Abstract: An apparatus, system, and method are disclosed for ensuring data validity in a data storage process. A data receiver module receives a storage block and existing parity information. An ECC generation module generates error correcting code (“ECC”) check bits for the data of the storage block in response to receiving the storage block and the existing parity information. The ECC check bits for the storage block are generated using a block code, a convolutional code, etc. A pre-storage consistency module uses the data of the storage block, the existing parity information, and the ECC check bits to determine if the data of the storage block, the existing parity information, and the ECC check bits are consistent. A data storage module stores the data of the storage block and the ECC check bits the data storage device without storing the existing parity information.
    Type: Grant
    Filed: April 5, 2008
    Date of Patent: November 20, 2012
    Assignee: Fusion-IO, Inc.
    Inventors: David Flynn, Jonathan Thatcher, John Strasser
  • Patent number: 8315092
    Abstract: An apparatus, system, and method are disclosed for determining a read voltage threshold for solid-state storage media. A data set read module reads a data set from storage cells of solid-state storage media. The data set is originally stored in the storage cells with a known bias. A deviation module determines that a read bias for the data set deviates from the known bias. A direction module determines a direction of deviation for the data set. The direction of deviation is based on a difference between the read bias of the data set and the known bias. An adjustment module adjusts a read voltage threshold for the storage cells of the solid-state storage media based on the direction of deviation.
    Type: Grant
    Filed: January 27, 2011
    Date of Patent: November 20, 2012
    Assignee: Fusion-IO, Inc.
    Inventors: John Strasser, David Flynn, Jeremy Fillingim, Robert Wood
  • Patent number: 8307258
    Abstract: An apparatus, system, and method are disclosed for reconfiguring an array of solid-state storage elements protected using parity data. The storage element error module determines that one or more storage elements are unavailable to store data (“unavailable storage elements”). The storage element resides in an array with N number of storage elements storing a first ECC chunk and P number of storage elements storing first parity data. The reconfigure data read module reads data from storage elements other than the unavailable storage elements. The data regeneration module uses the first parity data to regenerate missing data from the first ECC chunk. The data reconfiguration module creates a second ECC chunk. The new configuration storage module stores a portion of the second ECC chunk and associated second parity data on (N+P)?Z number of storage elements, wherein 1?Z?P.
    Type: Grant
    Filed: May 18, 2009
    Date of Patent: November 6, 2012
    Assignee: Fusion-10, Inc
    Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Patent number: D677004
    Type: Grant
    Filed: November 17, 2011
    Date of Patent: February 26, 2013
    Assignee: ELC Management LLC
    Inventors: David Flynn Cole, Phillip Ing