Patents by Inventor Robert M. English

Robert M. English 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: 7613815
    Abstract: Custom logging allows users deploying a proxy cache to customize information logged by the proxy cache. Users may choose to log a certain set of fields in any suitable order within log files. Each log file contains headers that define the set of fields logged, thereby making the log file self-contained for analysis tools. Proxy cache customers use log files for several purposes including monitoring and billing. The invention provides a single structure that controls whether a field is selected for logging or not, and its position within the log file. Changes to the format can be made while the proxy cache is running, causing a new header to be written to the log file and enabling administrators to alter the log format on the fly.
    Type: Grant
    Filed: October 16, 2001
    Date of Patent: November 3, 2009
    Assignee: NETAPP, Inc.
    Inventors: Ashish Prakash, Robert M. English
  • Patent number: 7577692
    Abstract: The present invention provides a system and method for reserving space to guarantee file writability in a file system supporting PCPIs. An administrator of a storage system implants a set of space reservation policies to ensure that clients of the storage system do not receive an out of space error in response to overwriting a section of a particular file.
    Type: Grant
    Filed: April 25, 2003
    Date of Patent: August 18, 2009
    Assignee: NetApp, Inc.
    Inventors: Peter F. Corbett, Cheryl Thompson, Robert M. English, Jeffrey L. Heller
  • Patent number: 7509525
    Abstract: A method for storing data for correction of multiple data storage failures in a storage array is presented. The storage array is organized as a plurality of sub-arrays, each sub-array including a set of data storage devices and a plurality of local parity storage blocks, each of the plurality of local storage blocks storing parity information for a corresponding sub-array. A plurality of diagonal parity sets is computed, one diagonal parity set for each sub-array. A global diagonal parity is computed by logically combining together a plurality of the diagonal parity sets. The global diagonal parity is stored in a plurality of global diagonal parity storage blocks.
    Type: Grant
    Filed: June 2, 2006
    Date of Patent: March 24, 2009
    Assignee: Network Appliance, Inc.
    Inventors: Steven R. Kleiman, Robert M. English, Peter F. Corbett
  • Publication number: 20090034377
    Abstract: An improved system and method enhances performance of updates to sequential block storage of a storage system. A disk-based sort procedure is provided to establish locality among updates (write data) held in a disk-based log, thereby enabling the write data to be efficiently written to home locations on a home location array. As the write data is received, a log manager of the storage system temporarily stores the data efficiently on the disk-based log. As more write data arrives, the log manager sorts the data in the log in accordance with the sort procedure, thus increasing the locality of data when stored on the home location array. When the log approaches capacity, the log manager writes the sorted data to their home locations on the array with high locality and performance.
    Type: Application
    Filed: October 30, 2007
    Publication date: February 5, 2009
    Inventors: Robert M. English, Steven R. Kleiman
  • Publication number: 20080270706
    Abstract: A data storage system pre-fetches data blocks from a mass storage device, then determines whether reallocation of the pre-fetched blocks would improve access to them. If access would be improved, the pre-fetched blocks are written to different areas of the mass storage device. Several different implementations of such data storage systems are described.
    Type: Application
    Filed: April 27, 2007
    Publication date: October 30, 2008
    Inventors: Robert L. Fair, Robert M. English
  • Publication number: 20080270690
    Abstract: A system and method enhances performance of updates to sequential block storage of a storage system. According to an aspect of the invention, a disk array of the storage system is utilized to extend write buffers of the system, thereby rendering a portion of the disk array a disk-based log. To that end, one portion of the disk array is organized into a home location array having a set of sequential home locations for disk blocks. Another portion of the disk array is organized into the disk-based log having a set of log buffers configured to store versions of disk blocks that have yet to be returned to their home locations in the home location array. In addition, non-volatile memory of the storage system is organized as an index configured to provide efficient mappings of disk blocks not yet returned to their home locations.
    Type: Application
    Filed: April 27, 2007
    Publication date: October 30, 2008
    Inventor: Robert M. English
  • Patent number: 7437652
    Abstract: A method for correcting double failures in a storage array has the following steps. A storage array is organized as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device. Row parity is computed for each row of each sub-array. The row parity of a particular sub-array is stored on a row parity storage device of the particular sub-array. A diagonal parity is computed across the concatenated sub-arrays. A double storage device failure is corrected using both the sub-array row parity and the diagonal parity.
    Type: Grant
    Filed: April 12, 2006
    Date of Patent: October 14, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Robert M. English, Peter F. Corbett, Steven R. Kleiman
  • Patent number: 7409625
    Abstract: A method for enabling recovery from concurrent failure of a plurality of storage devices in a storage array is disclosed. The method stores data on a first plurality of storage devices of the storage array. The first plurality of storage devices may have a number of storage devices equal to a prime number greater then three. Row parity is stored on one or more storage devices of the storage array. A diagonal parity set is computed for the plurality of storage devices. The diagonal parity set is stored on an additional diagonal parity device, the diagonal parity device separate from the first plurality of storage devices.
    Type: Grant
    Filed: February 23, 2007
    Date of Patent: August 5, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Peter F. Corbett, Steven R. Kleiman, Robert M. English
  • Patent number: 7409497
    Abstract: A system and method efficiently guarantees data consistency to clients for one or more data containers stored on a plurality of volumes configured as a striped volume set (SVS) and served by a plurality of nodes connected as a cluster. Data consistency guarantees of data containers stored on the SVS is generally provided by delegating to data volumes (DVs) sufficient authority to autonomously service input/output (I/O) requests directed to the containers using attributes, such as timestamps, of the containers. Specifically, a DV is only allowed to service I/O requests, e.g., read and write operations, to a data container, such as a file, if it has a valid ticket book for the file. A DV requests and is granted the ticket book from a container attribute volume (CAV) on a per-file basis.
    Type: Grant
    Filed: October 28, 2005
    Date of Patent: August 5, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Michael Kazar, Robert M. English, Richard P. Jernigan, IV
  • Patent number: 7409494
    Abstract: A file system layout apportions an underlying physical volume into one or more virtual volumes (vvols) of a storage system. The underlying physical volume is an aggregate comprising one or more groups of disks, such as RAID groups, of the storage system. The aggregate has its own physical volume block number (pvbn) space and maintains metadata, such as block allocation structures, within that pvbn space. Each vvol has its own virtual volume block number (vvbn) space and maintains metadata, such as block allocation structures, within that vvbn space. Notably, the block allocation structures of a vvol are sized to the vvol, and not to the underlying aggregate, to thereby allow operations that manage data served by the storage system (e.g., snapshot operations) to efficiently work over the vvols. The file system layout extends the file system layout of a conventional write anywhere file layout system implementation, yet maintains performance properties of the conventional implementation.
    Type: Grant
    Filed: April 30, 2004
    Date of Patent: August 5, 2008
    Assignee: Network Appliance, Inc.
    Inventors: John K. Edwards, Blake H. Lewis, Robert M. English, Eric Hamilton, Peter F. Corbett
  • Patent number: 7373640
    Abstract: The present invention provides a technique for converting a multi-threaded application configured to execute on a uniprocessor (UP) system to one that executes on a multiprocessor (MP) system. Unlike previous approaches, a novel scheduling technique is employed so that different UP-coded user-level threads (“sthreads”) can execute concurrently in the MP system without having to rewrite their original code. To that end, the UP-coded sthreads are organized into different concurrency groups, each of which defines a set of one or more sthreads not permitted to execute concurrently. By grouping the UP-coded sthreads in this manner, different concurrency groups can be scheduled to execute their UP-coded sthreads at substantially the same time without incorporating traditional synchronization mechanisms into the sthreads' original UP code.
    Type: Grant
    Filed: July 31, 2003
    Date of Patent: May 13, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Robert M. English, Zdenko Kukavica, Konstantinos Roussos
  • Patent number: 7366837
    Abstract: A technique places content, such as data, of one or more data containers on volumes of a striped volume set (SVS). The placement of data across the volumes of the SVS allows specification of a deterministic pattern of fixed length. That is, the pattern determines a placement of data of a data container that is striped among the volumes of the SVS. The placement pattern is such that the stripes are distributed exactly or nearly equally among the volumes and that, within any local span of a small multiple of the number of volumes, the stripes are distributed nearly equally among the volumes. The placement pattern is also substantially similar for a plurality of SVSs having different numbers of volumes.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: April 29, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Peter F. Corbett, Robert M. English, Steven R. Kleiman
  • Patent number: 7356731
    Abstract: A uniform and symmetric, double failure-correcting technique protects against two or fewer disk failures in a disk array of a storage system. A RAID system of the storage system generates two disks worth of “redundant” information for storage in the array, wherein the redundant information (e.g., parity) is illustratively derived from computations along both diagonal parity sets (“diagonals”) and row parity sets (“rows”). Specifically, the RAID system computes row parity along rows of the array and diagonal parity along diagonals of the array. However, the contents of the redundant (parity) information disks interact such that neither disk contains purely (solely) diagonal or row redundancy information; the redundant information is generated using diagonal parity results in row parity computations (and vice versa).
    Type: Grant
    Filed: January 16, 2007
    Date of Patent: April 8, 2008
    Assignee: Network Applicance, Inc.
    Inventors: Peter F. Corbett, Robert M. English, Steven R. Kleiman
  • Patent number: 7328305
    Abstract: A dynamic parity distribution system and technique distributes parity across disks of an array. The dynamic parity distribution system includes a storage operating system that integrates a file system with a RAID system. In response to a request to store (write) data on the array, the file system determines which disks contain free blocks in a next allocated stripe of the array. There may be multiple blocks within the stripe that do not contain file system data (i.e., unallocated data blocks) and that could potentially store parity. One or more of those unallocated data blocks can be assigned to store parity, arbitrarily. According to the dynamic parity distribution technique, the file system determines which blocks hold parity each time there is a write request to the stripe. The technique alternately allows the RAID system to assign a block to contain parity when each stripe is written.
    Type: Grant
    Filed: November 3, 2003
    Date of Patent: February 5, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Steven R. Kleiman, Robert M. English, Peter F. Corbett
  • Patent number: 7321962
    Abstract: A method for transferring data of a hybrid virtual volume of a computer data storage system from a source to a destination is disclosed. The method first translates intermingled virtual and physical volume block numbers of the hybrid virtual volume into a data stream having only virtual volume block numbers. The method then sends the data stream to a destination computer.
    Type: Grant
    Filed: February 7, 2007
    Date of Patent: January 22, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Robert L. Fair, Ashish Prakash, Eric Hamilton, John K. Edwards, Robert M. English
  • Patent number: 7263629
    Abstract: A uniform and symmetric, double failure-correcting technique protects against two or fewer disk failures in a disk array of a storage system. A RAID system of the storage system generates two disks worth of “redundant” information for storage in the array, wherein the redundant information (e.g., parity) is illustratively derived from computations along both diagonal parity sets (“diagonals”) and row parity sets (“rows”). Specifically, the RAID system computes row parity along rows of the array and diagonal parity along diagonals of the array. However, the contents of the redundant (parity) information disks interact such that neither disk contains purely (solely) diagonal or row redundancy information; the redundant information is generated using diagonal parity results in row parity computations (and vice versa).
    Type: Grant
    Filed: November 24, 2003
    Date of Patent: August 28, 2007
    Assignee: Network Appliance, Inc.
    Inventors: Peter F. Corbett, Robert M. English, Steven R. Kleiman
  • Patent number: 7257676
    Abstract: A semi-static distribution technique distributes parity across disks of an array. According to the technique, parity is distributed (assigned) across the disks of the array in a manner that maintains a fixed pattern of parity blocks among the stripes of the disks. When one or more disks are added to the array, the semi-static technique redistributes parity in a way that does not require recalculation of parity or moving of any data blocks. Notably, the parity information is not actually moved; the technique merely involves a change in the assignment (or reservation) for some of the parity blocks of each pre-existing disk to the newly added disk.
    Type: Grant
    Filed: December 5, 2006
    Date of Patent: August 14, 2007
    Assignee: Network Appliance, Inc.
    Inventors: Peter F. Corbett, Steven R. Kleiman, Robert M. English
  • Patent number: 7243207
    Abstract: A technique converts a stream of virtual volume block numbers (vvbns) into a hybrid virtual volume (vvol) file system containing both physical volume block numbers (pvbns) and vvbns. The stream of vvbns is illustratively embodied as a file system data stream of a vvol that is transferred by a source to a destination in accordance with image transfer operations, such as volume copying and synchronous or asynchronous mirroring. Transfer of the vvol involves converting a file system on the source vvol into the file system data stream (i.e., a “pure” vvol stream), where all blocks of the vvol are represented by vvbns. The file system data stream is then transferred to the destination, where the vvbns of the pure vvol stream blocks are converted to pvbns of a hybrid stream.
    Type: Grant
    Filed: September 27, 2004
    Date of Patent: July 10, 2007
    Assignee: Network Appliance, Inc.
    Inventors: Ashish Prakash, Robert L. Fair, John K. Edwards, Eric Hamilton, Robert M. English
  • Patent number: 7203892
    Abstract: A “row-diagonal” (R-D) parity technique reduces overhead of computing diagonal parity for a storage array adapted to enable efficient recovery from the concurrent failure of two storage devices in the array. The diagonal parity is computed along diagonal parity sets that collectively span all data disks and a row parity disk of the array. The parity for all of the diagonal parity sets except one is stored on the diagonal parity disk. The R-D parity technique provides a uniform stripe depth and an optimal amount of parity information.
    Type: Grant
    Filed: December 16, 2005
    Date of Patent: April 10, 2007
    Assignee: Network Appliance, Inc.
    Inventors: Peter F. Corbett, Steven R. Kleiman, Robert M. English
  • Patent number: 7197490
    Abstract: A system and method for lazy-copy sub-volume load balancing a networked attached storage pool is provided. The system and method create a qtree on a destination file server and performs a lazy-copy of the data from the source qtree to the sparse volume qtree.
    Type: Grant
    Filed: February 10, 2003
    Date of Patent: March 27, 2007
    Assignee: Network Appliance, Inc.
    Inventor: Robert M. English