Patents by Inventor Steven R. Kleiman

Steven R. Kleiman 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: 7962528
    Abstract: A system and method accelerates update of a metadata search database using PCPI differencing. After first populating the search database, a search agent generates a PCPI and utilizes a PCPI differencing technique to quickly identify changes between inode files of first and second PCPIs. The differences are noted as modified metadata and are written to a log file, which is later read by the search agent to update the search database.
    Type: Grant
    Filed: February 18, 2010
    Date of Patent: June 14, 2011
    Assignee: NetApp, Inc.
    Inventors: Shankar Pasupathy, Vijayan Prabhakaran, Garth Richard Goodson, Steven R. Kleiman
  • Patent number: 7930475
    Abstract: A method for storing data on a plurality of storage devices of a storage system is disclosed. The data is received as data blocks from a plurality of write requests. The data blocks are saved as buffered data for writing to the storage devices in a single write request. An indication is received indicating the available storage blocks on the plurality of storage devices which are available for writing. The buffered data is associated with selected storage blocks of the storage blocks which are available for writing. The buffered data is written to the selected storage blocks in a single write request.
    Type: Grant
    Filed: February 22, 2007
    Date of Patent: April 19, 2011
    Assignee: NetApp, Inc.
    Inventors: Steven R. Kleiman, Rajesh Sundaram, Douglas P. Doucette, Stephen H. Strange, Srinivasan Viswanathan
  • Patent number: 7921257
    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: December 27, 2007
    Date of Patent: April 5, 2011
    Assignee: NetApp, Inc.
    Inventors: Steven R. Kleiman, Robert M. English, Peter F. Corbett
  • Publication number: 20110035548
    Abstract: A hybrid media storage architecture has a log-structured file system configured to control a plurality of different storage media organized as hybrid storage media that cooperate to provide a total storage space of a storage system. The log-structured file system is configured to perform initial placement and migration of data, as well as fine-grain write allocation of the data, among storage space locations of the hybrid storage media to thereby improve the performance characteristics of the media. By defining and implementing heuristics and policies directed to, e.g., types of data, the file system may initially place data on any of the different media and thereafter migrate data between the media at fine granularity and without the need for manual enforcement.
    Type: Application
    Filed: February 11, 2009
    Publication date: February 10, 2011
    Inventors: Jeffrey S. Kimmel, Steven R. Kleiman, Steven C. Miller
  • Patent number: 7882304
    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: Grant
    Filed: October 30, 2007
    Date of Patent: February 1, 2011
    Assignee: NetApp, Inc.
    Inventors: Robert M. English, Steven R. Kleiman
  • Publication number: 20100281207
    Abstract: A flash-based data archive storage system having a large capacity storage array constructed from a plurality of dense flash devices is provided. The flash devices are illustratively multi-level cell (MLC) flash devices that are tightly packaged to provide a low-power, high-performance data archive system having substantially more capacity per cubic inch than more dense tape or disk drives. The flash-based data archive system may be adapted to employ conventional data de-duplication and compression methods to compactly store data. Furthermore, the flash-based archive system has a smaller footprint and consumes less power than the tape and/or disk archive system.
    Type: Application
    Filed: April 5, 2010
    Publication date: November 4, 2010
    Inventors: Steven C. Miller, Don Trimmer, Steven R. Kleiman
  • Patent number: 7818299
    Abstract: A method for backing up a computer file system is disclosed. A first snapshot of the file system is generated at a first time, the first snapshot having first pointers to data blocks of the file system at the first time. A network adapter receives storage operations to write new data to the file system. A second snapshot of the file system is generated at a second time, the second snapshot having second pointers to data blocks of the file system at the second time, the data blocks at the second time including the new data. The first pointers to the second pointers are compared. In response to the second pointers differing from the first pointers, data of the file system which have been changed between the first snapshot and the second snapshot are copied to a backup copy of the file system.
    Type: Grant
    Filed: September 2, 2009
    Date of Patent: October 19, 2010
    Assignee: NetApp, Inc.
    Inventors: Michael L. Federwisch, Shane S. Owara, Stephen L. Manley, Steven R. Kleiman
  • Patent number: 7693864
    Abstract: A system and method accelerates update of a metadata search database using PCPI differencing. After first populating the search database, a search agent generates a PCPI and utilizes a PCPI differencing technique to quickly identify changes between inode files of first and second PCPIs. The differences are noted as modified metadata and are written to a log file, which is later read by the search agent to update the search database.
    Type: Grant
    Filed: January 3, 2006
    Date of Patent: April 6, 2010
    Assignee: NetApp, Inc.
    Inventors: Shankar Pasupathy, Vijayan Prabhakaran, Garth Richard Goodson, Steven R. Kleiman
  • Patent number: 7694302
    Abstract: The invention provides a method and system for scheduling tasks in an MP system, and provides parallel execution of those tasks while implicitly synchronizing access to resources used by that system. Tasks in the system are each assigned to a scheduling domain, thus associating those tasks with a set of resources controlled by that domain. A scheduler operating at each processor implicitly synchronizes those resources controlled by each domain, by scheduling only one task for each domain to execute concurrently in the system. Because each instance of the scheduler selects which task is next run independently of its processor, each domain can migrate from one processor to another; thus, each domain can have a task executing on any processor, so long as no domain has two tasks executing concurrently in the system. Thus, domains are not bound to any particular processor. Hence the method and system are symmetric.
    Type: Grant
    Filed: April 5, 2001
    Date of Patent: April 6, 2010
    Assignee: Network Appliance, Inc.
    Inventors: Vijayan Rajan, Jeffrey Kimmel, Steven R. Kleiman, Joseph Caradonna
  • Patent number: 7647451
    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 24, 2008
    Date of Patent: January 12, 2010
    Assignee: NetApp, Inc.
    Inventors: Peter F. Corbett, Robert M. English, Steven R. Kleiman
  • Patent number: 7603391
    Abstract: A system and method for remote asynchronous replication or mirroring of changes in a source file system snapshot in a destination replica file system using a scan (via a scanner) of the blocks that make up two versions of a snapshot of the source file system, which identifies changed blocks in the respective snapshot files based upon differences in volume block numbers identified in a scan of the logical file block index of each snapshot. Trees of blocks associated with the files are traversed, bypassing unchanged pointers between versions and walking down to identify the changes in the hierarchy of the tree. These changes are transmitted to the destination mirror or replicated snapshot. This technique allows regular files, directories, inodes and any other hierarchical structure to be efficiently scanned to determine differences between versions thereof.
    Type: Grant
    Filed: January 20, 2006
    Date of Patent: October 13, 2009
    Assignee: NetApp, Inc.
    Inventors: Michael L. Federwisch, Shane S. Owara, Stephen L. Manley, Steven R. Kleiman
  • 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
  • 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
  • Publication number: 20080243992
    Abstract: According to one or more embodiments of the present invention, a network cache intercepts data requested by a client from a remote server interconnected with the cache through one or more wide area network (WAN) links (e.g., for Wide Area File Services, or “WAFS”). The network cache stores the data and sends the data to the client. The cache may then intercept a first write request for the data from the client to the remote server, and determine one or more portions of the data in the write request that changed from the data stored at the cache (e.g., according to one or more hashes created based on the data). The network cache then sends a second write request for only the changed portions of the data to the remote server.
    Type: Application
    Filed: March 30, 2007
    Publication date: October 2, 2008
    Inventors: Paul Jardetzky, Steven R. Kleiman, Roger Stager, Don Trimmer, Ling Zheng, Yuval Frandzel
  • 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: 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: 7330904
    Abstract: The invention provides a method and system in which a client/server system uses a NUMA communication link, possibly in combination with a byte serial communication link, to transfer relatively large blocks of data between client and server. The method and system provides for transferring data between the client and server, in which timing for the actual data transfer is decoupled from a request (from the client) or a response (from the server). The method and system also provides for transferring data from either party to the other at mutually agreed locations, such as locations responsive to control information present in either the request or the response. Accordingly, either party can transfer data to the other at a location convenient to both the sender and the recipient, and either party can process data in any order it prefers, without regard for the order in which data is stored at the other party.
    Type: Grant
    Filed: June 7, 2000
    Date of Patent: February 12, 2008
    Assignee: Network Appliance, Inc.
    Inventor: 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