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: 9454332
    Abstract: A storage system provides highly flexible data layouts that can be tailored to various different applications and use cases. The system defines several types of data containers, including “regions”, “logical extents” and “slabs”. Each region includes one or more logical extents. Allocated to each logical extent is at least part of one or more slabs allocated to the region that includes the extent. Each slab is a set of blocks of storage from one or more physical storage devices. The slabs can be defined from a heterogeneous pool of physical storage. The system also maintains multiple “volumes” above the region layer. Each volume includes one or more logical extents from one or more regions. A foreign LUN can be assimilated into the system by defining slabs as separate portions of the foreign LUN. Layouts of the extents within the regions are not visible to any of the volumes.
    Type: Grant
    Filed: September 6, 2013
    Date of Patent: September 27, 2016
    Assignee: NetApp, Inc.
    Inventors: John K. Edwards, Steven R. Kleiman
  • Patent number: 9355103
    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: Grant
    Filed: July 31, 2012
    Date of Patent: May 31, 2016
    Assignee: NetApp, Inc.
    Inventors: Paul Jardetzky, Steven R. Kleiman, Roger Stager, Don Trimmer, Ling Zheng, Yuval Frandzel
  • Patent number: 9280288
    Abstract: The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
    Type: Grant
    Filed: April 29, 2015
    Date of Patent: March 8, 2016
    Assignee: NetApp, Inc.
    Inventors: Michael N. Condict, Steven R. Kleiman
  • Patent number: 9134917
    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: Grant
    Filed: February 11, 2009
    Date of Patent: September 15, 2015
    Assignee: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, Steven R. Kleiman, Steven C. Miller
  • Publication number: 20150248240
    Abstract: The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
    Type: Application
    Filed: April 29, 2015
    Publication date: September 3, 2015
    Inventors: Michael N. Condict, Steven R. Kleiman
  • Publication number: 20150213049
    Abstract: A method of performing a global deduplication may include: collecting a data chunk to be written to a backing storage of a storage system at a staging area in the storage system; generating a data fingerprint of the data chunk; sending the data fingerprint in batch along with other data fingerprints corresponding to data chunks collected at different times to a metadata server system in the storage system; receiving an indication, at the staging area, of whether the data fingerprint is unique in the storage system from the metadata server system; and discarding the data chunk when committing a data object containing the data chunk to the backing storage, when the indication indicates that the data chunk is not unique.
    Type: Application
    Filed: January 30, 2014
    Publication date: July 30, 2015
    Inventors: Steven R. Kleiman, Mark Walter Storer, Minglong Shao, Sethuraman Subbiah, Shankar Pasupathy
  • Patent number: 9043430
    Abstract: The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
    Type: Grant
    Filed: August 12, 2013
    Date of Patent: May 26, 2015
    Assignee: NetApp, Inc.
    Inventors: Michael N. Condict, Steven R. Kleiman
  • Publication number: 20150142942
    Abstract: Technology is disclosed for managing network storage services by service level objectives (SLOs). The method receives multiple service level capability (SLC) templates; creates at least one storage service level (SSL) instance using at least one of the SLC templates; provisions a storage object located in a network storage infrastructure based on the SSL instance; and services storage requests using the storage object.
    Type: Application
    Filed: July 22, 2014
    Publication date: May 21, 2015
    Inventors: Kaladhar Voruganti, Steven R. Kleiman, James Hartwell Holl, II, Gokul Soundararajan, Shailaja Kamila, Subra Mohan
  • Patent number: 8825963
    Abstract: A storage system provides highly flexible data layouts that can be tailored to various different applications and use cases. The system dynamically balances performance with block sharing, based on service level objectives (SLOs). The system defines several types of data containers, including “regions”, “logical extents” and “slabs”. Each region includes one or more logical extents. Allocated to each logical extent is at least part of one or more slabs allocated to the region that includes the extent. Each slab is a set of blocks of storage from one or more physical storage devices. The slabs can be defined from a heterogeneous pool of physical storage. The system also maintains multiple “volumes” above the region layer. Each volume includes one or more logical extents from one or more regions. Layouts of the extents within the regions are not visible to any of the volumes.
    Type: Grant
    Filed: April 15, 2013
    Date of Patent: September 2, 2014
    Assignee: NetApp, Inc.
    Inventors: John K. Edwards, Keith A. Smith, Jiri Schindler, Steven R. Kleiman
  • Patent number: 8799367
    Abstract: The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
    Type: Grant
    Filed: October 30, 2009
    Date of Patent: August 5, 2014
    Assignee: NetApp, Inc.
    Inventors: Michael N. Condict, Steven R. Kleiman
  • Publication number: 20140068184
    Abstract: A storage system provides highly flexible data layouts that can be tailored to various different applications and use cases. The system defines several types of data containers, including “regions”, “logical extents” and “slabs”. Each region includes one or more logical extents. Allocated to each logical extent is at least part of one or more slabs allocated to the region that includes the extent. Each slab is a set of blocks of storage from one or more physical storage devices. The slabs can be defined from a heterogeneous pool of physical storage. The system also maintains multiple “volumes” above the region layer. Each volume includes one or more logical extents from one or more regions. A foreign LUN can be assimilated into the system by defining slabs as separate portions of the foreign LUN. Layouts of the extents within the regions are not visible to any of the volumes.
    Type: Application
    Filed: September 6, 2013
    Publication date: March 6, 2014
    Applicant: NETAPP, INC.
    Inventors: John K. Edwards, Steven R. Kleiman
  • Publication number: 20130332558
    Abstract: The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
    Type: Application
    Filed: August 12, 2013
    Publication date: December 12, 2013
    Applicant: NetApp. Inc.
    Inventors: Michael N. Condict, Steven R. Kleiman
  • Patent number: 8555022
    Abstract: A storage system provides highly flexible data layouts that can be tailored to various different applications and use cases. The system defines several types of data containers, including “regions”, “logical extents” and “slabs”. Each region includes one or more logical extents. Allocated to each logical extent is at least part of one or more slabs allocated to the region that includes the extent. Each slab is a set of blocks of storage from one or more physical storage devices. The slabs can be defined from a heterogeneous pool of physical storage. The system also maintains multiple “volumes” above the region layer. Each volume includes one or more logical extents from one or more regions. A foreign LUN can be assimilated into the system by defining slabs as separate portions of the foreign LUN. Layouts of the extents within the regions are not visible to any of the volumes.
    Type: Grant
    Filed: January 6, 2010
    Date of Patent: October 8, 2013
    Assignee: NetApp, Inc.
    Inventors: John K. Edwards, Steven R. Kleiman
  • Patent number: 8549222
    Abstract: A cache-based storage architecture has primary and secondary storage subsystems that are controlled by first and second data layout engines to provide a high-performance storage system. The primary storage subsystem illustratively comprises non-volatile electronic storage media configured as a cache, while the secondary storage subsystem comprises magnetic storage media configured as a disk array. The data layout engines illustratively implement data layout techniques that improve read and write performance to the primary and secondary storage subsystems. To that end, the data layout engines cooperate to optimize the use of the non-volatile cache as a primary storage stage that efficiently serves random data access operations prior to substantially transposing them into sequential data access operations for permanent (or archival) storage on the disk array.
    Type: Grant
    Filed: February 11, 2009
    Date of Patent: October 1, 2013
    Assignee: NetApp, Inc.
    Inventors: Steven R. Kleiman, Steven C. Miller, Jeffrey S. Kimmel
  • Patent number: 8443153
    Abstract: A storage system provides highly flexible data layouts that can be tailored to various different applications and use cases. The system dynamically balances performance with block sharing, based on service level objectives (SLOs). The system defines several types of data containers, including “regions”, “logical extents” and “slabs”. Each region includes one or more logical extents. Allocated to each logical extent is at least part of one or more slabs allocated to the region that includes the extent. Each slab is a set of blocks of storage from one or more physical storage devices. The slabs can be defined from a heterogeneous pool of physical storage. The system also maintains multiple “volumes” above the region layer. Each volume includes one or more logical extents from one or more regions. Layouts of the extents within the regions are not visible to any of the volumes.
    Type: Grant
    Filed: January 6, 2010
    Date of Patent: May 14, 2013
    Assignee: NetApp, Inc.
    Inventors: John K. Edwards, Keith A. Smith, Jiri Schindler, Steven R. Kleiman
  • Publication number: 20130018942
    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: July 31, 2012
    Publication date: January 17, 2013
    Inventors: Paul Jardetzky, Steven R. Kleiman, Roger Stager, Don Trimmer, Ling Zheng, Yuval Frandzel
  • Patent number: 8234327
    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: Grant
    Filed: March 30, 2007
    Date of Patent: July 31, 2012
    Assignee: NetApp, Inc.
    Inventors: Paul Jardetzky, Steven R. Kleiman, Roger Stager, Don Trimmer, Ling Zheng, Yuval Frandzel
  • Patent number: 8086652
    Abstract: A system and method reclaims unused storage space from a data container, such as a logical unit number (LUN) of a storage system. In particular, a novel technique is provided that allows a storage system to reclaim storage space not used by a client file system for which the storage system maintains storage, without requiring assistance from the client file system to determine storage usage. In other words, storage system may independently reclaim storage space not used by the client file system, without that file system's intervention.
    Type: Grant
    Filed: August 15, 2007
    Date of Patent: December 27, 2011
    Assignee: NetApp, Inc.
    Inventors: Timothy Bisson, Shankar Pasupathy, Garth Richard Goodson, Steven R. Kleiman
  • Patent number: 8032704
    Abstract: A method and apparatus for storing data on a computer data storage system are described. Two or more computers are coupled together to form a cluster of computers. One or more data storage devices are coupled to the two or more computers. One or more volumes of data storage devices are implemented on a plurality of computers of the two or more computers, where each volume is a logical arrangement of the one or more storage devices coupled to a selected computer of the plurality of computers. A data container holds data stored by the data storage system. The data container is striped over a plurality of the one or more volumes of data storage devices, whereby data stored in the data container is striped over a plurality of the volumes of data storage devices.
    Type: Grant
    Filed: July 31, 2009
    Date of Patent: October 4, 2011
    Assignee: NetApp, Inc.
    Inventors: Peter F. Corbett, Robert M. English, Steven R. Kleiman
  • Patent number: 7979633
    Abstract: The invention features a method for controlling storage of data in a plurality of storage devices each including storage blocks, for example, in a RAID array. The method includes receiving a plurality of write requests associated with data, and buffering the write requests. A file system defines a group of storage blocks, responsive to disk topology information. The group includes a plurality of storage blocks in each of the plurality of storage devices. Each data block of the data to be written is associated with a respective one of the storage blocks, for transmitting the association to the plurality of storage devices.
    Type: Grant
    Filed: April 2, 2004
    Date of Patent: July 12, 2011
    Assignee: NetApp, Inc.
    Inventors: Steven R. Kleiman, Rajesh Sundaram, Douglas P. Doucette, Stephen H. Strange, Srinivasan Viswanathan