Patents by Inventor Michael Zappe

Michael Zappe 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: 20090222596
    Abstract: An apparatus, system, and method are disclosed for coordinating storage requests in a multi-processor/multi-thread environment. A append/invalidate module generates a first append data storage command from a first storage request and a second append data storage command from a second storage request. The storage requests overwrite existing data with first and second data including where the first and second data have at least a portion of overlapping data. The second storage request is received after the first storage request. The append/invalidate module updates an index by marking data being overwritten as invalid. A restructure module updates the index based on the first data and updates the index based on the second data. The updated index is organized to indicate that the second data is more current than the first data regardless of processing order. The modules prevent access to the index until the modules have completed updating the index.
    Type: Application
    Filed: April 6, 2008
    Publication date: September 3, 2009
    Inventors: David Flynn, Michael Zappe, Jonathan Thatcher
  • Publication number: 20090150605
    Abstract: An apparatus, system, and method are disclosed for converting a storage request to an append data storage command. A storage request receiver module receives a storage request from a requesting device. The storage request is to store a data segment onto a data storage device. The storage request includes source parameters for the data segment. The source parameters include a virtual address. A translation module translates the storage request to storage commands. At least one storage command includes an append data storage command that directs the data storage device to store data of the data segment and the one or more source parameters with the data, including a virtual address, at one or more append points. A mapping module maps source parameters of the data segment to locations where the data storage device appended the data packets of the data segment and source parameters.
    Type: Application
    Filed: April 6, 2008
    Publication date: June 11, 2009
    Inventors: David Flynn, Michael Zappe, John Strasser, Jonathan Thatcher
  • Publication number: 20090150641
    Abstract: An apparatus, system, and method are disclosed for efficiently mapping virtual and physical addresses. A forward mapping module uses a forward map to identify physical addresses of data of a data segment from a virtual address. The data segment is identified in a storage request. The virtual addresses include discrete addresses within a virtual address space where the virtual addresses sparsely populate the virtual address space. A reverse mapping module uses a reverse map to determine a virtual address of a data segment from a physical address. The reverse map maps the data storage device into erase regions such that a portion of the reverse map spans an erase region of the data storage device erased together during a storage space recovery operation. A storage space recovery module uses the reverse map to identify valid data in an erase region prior to an operation to recover the erase region.
    Type: Application
    Filed: April 6, 2008
    Publication date: June 11, 2009
    Inventors: David Flynn, Michael Zappe, John Strasser, David Atkisson, Jonathan Thatcher
  • Publication number: 20090132760
    Abstract: An apparatus, system, and method are disclosed for solid-state storage as cache for high-capacity, non-volatile storage. The apparatus, system, and method are provided with a plurality of modules including a cache front-end module and a cache back-end module. The cache front-end module manages data transfers associated with a storage request. The data transfers between a requesting device and solid-state storage function as cache for one or more HCNV storage devices, and the data transfers may include one or more of data, metadata, and metadata indexes. The solid-state storage may include an array of non-volatile, solid-state data storage elements. The cache back-end module manages data transfers between the solid-state storage and the one or more HCNV storage devices.
    Type: Application
    Filed: December 6, 2007
    Publication date: May 21, 2009
    Inventors: David Flynn, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20090125671
    Abstract: An apparatus, system, and method are disclosed for storage space recovery after reaching a read count limit. A read module reads data in a storage division of solid-state storage. A read counter module then increments a read counter corresponding to the storage division. A read counter limit module determines if the read count exceeds a maximum read threshold, and if so, a storage division selection module selects the corresponding storage division for recovery. A data recovery module reads valid data packets from the selected storage division, stores the valid data packets in another storage division of the solid-state storage, and updates a logical index with a new physical address of the valid data.
    Type: Application
    Filed: November 18, 2008
    Publication date: May 14, 2009
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, John Walker, Michael Zappe, Stephan Uphoff, Joshua Aune, Kevin Vigor
  • Publication number: 20080313364
    Abstract: An apparatus, system, and method are disclosed for sharing a device between multiple hosts. The apparatus, system, and method include an RDMA setup module and an RDMA execution module. The RDMA setup module prepares a solid-state storage controller for an RDMA operation to transfer data of a file or of an object between the solid-state storage controller and a requesting device in response to a storage request. The storage request may be substantially free of the data, and the solid-state storage controller may control a solid-state storage via a storage input/output (“I/O”) bus. The solid-state controller controls storage of data in the solid-state storage, and the requesting device is connected to the solid-state controller through a computer network. The RDMA execution module executes the RDMA operation to transfer the data between the requesting device and the solid-state storage controller.
    Type: Application
    Filed: December 6, 2007
    Publication date: December 18, 2008
    Inventors: David Flynn, David Atkisson, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20080256292
    Abstract: An apparatus, system, and method are disclosed for a shared, front-end, distributed redundant array of independent drives (“RAID”). A multiple storage request receiver module receives at least two storage requests from at least two clients to store file or object data in one or more storage devices of a storage device set. The storage requests are concurrent and have at least a portion of the data in common. The storage device set includes autonomous storage devices forming a RAID group. Each storage device is capable of independently receiving storage requests from a client over a network. A striping module calculates a stripe pattern and writes N data segments per stripe to N storage devices. A parity-mirror module writes a set of N data segments to parity-mirror storage devices. A sequencer module ensures completion of a first storage request prior to executing a second storage request.
    Type: Application
    Filed: December 6, 2007
    Publication date: October 16, 2008
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Publication number: 20080256183
    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: December 6, 2007
    Publication date: October 16, 2008
    Inventors: David Flynn, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20080229079
    Abstract: An apparatus, system, and method are disclosed for efficiently managing commands in a solid-state storage device that includes a solid-state storage arranged in two or more banks. Each bank is separately accessible and includes two or more solid-state storage elements accessed in parallel by a storage input/output bus. The solid-state storage includes solid-state, non-volatile memory. The solid-state storage device includes a bank interleave that directs one or more commands to two or more queues, where the one or more commands are separated by command type into the queues. Each bank includes a set of queues in the bank interleave controller. Each set of queues includes a queue for each command type. The bank interleave controller coordinates among the banks execution of the commands stored in the queues, where a command of a first type executes on one bank while a command of a second type executes on a second bank.
    Type: Application
    Filed: December 6, 2007
    Publication date: September 18, 2008
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20080183953
    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 6, 2007
    Publication date: July 31, 2008
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, John Walker, Michael Zappe
  • Publication number: 20080168304
    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: Application
    Filed: December 6, 2007
    Publication date: July 10, 2008
    Inventors: David Flynn, David Atkisson, Jonathan Thatcher, Michael Zappe
  • Publication number: 20080140910
    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: December 6, 2007
    Publication date: June 12, 2008
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Publication number: 20080141043
    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: December 6, 2007
    Publication date: June 12, 2008
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20080140932
    Abstract: An apparatus and system are disclosed for an in-server storage area network (“SAN”). A first storage controller is included within a first server. The first storage controller controls at least one storage device. The first server includes a network interface shared by the first server and the first storage controller. A storage communication module is included that facilitates communication between the first storage controller and at least one device external to the first server, where the communication between the first storage controller and the external device is independent from the first server. An in-server SAN module is included that services a storage request using at least one of a network protocol and a bus protocol. The in-server SAN module services the storage request independent from the first server, the service request received from a client.
    Type: Application
    Filed: December 6, 2007
    Publication date: June 12, 2008
    Inventors: David Flynn, David Atkisson, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20080140724
    Abstract: An apparatus, system, and method are disclosed for servicing object requests within a storage controller. An object request receiver module is included that receives an object request from a requesting device. The object request is received by the storage controller and directed at a data segment of an object managed by the storage controller. The storage controller stores the data segment in a data storage device coupled to the storage controller. A parsing module is included that parses at least one command from the object request. A command execution module is included that executes the at least one command parsed from the object request. An object index module is included that creates an object entry in an object index in response to the storage controller storing the data segment of the object.
    Type: Application
    Filed: December 6, 2007
    Publication date: June 12, 2008
    Inventors: David Flynn, David Atkisson, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20080140909
    Abstract: An apparatus, system, and method are disclosed for managing data with an empty data segment directive at the requesting device. The apparatus, system, and method include a token directive generation module and a token directive transmission module. The token directive generation module generates a storage request with a token directive. The token directive includes a request to store on the storage device a data segment token. The token directive substitutes for a series of repeated, identical characters or a series of repeated, identical character strings to be stored as a data segment. The token directive includes at least a data segment identifier and a data segment length. The data segment token and the token directive are substantially free from data of the data segment. The token directive transmission module transmits the token directive to the storage device.
    Type: Application
    Filed: December 6, 2007
    Publication date: June 12, 2008
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe