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: 9454332Abstract: 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: GrantFiled: September 6, 2013Date of Patent: September 27, 2016Assignee: NetApp, Inc.Inventors: John K. Edwards, Steven R. Kleiman
-
Patent number: 9355103Abstract: 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: GrantFiled: July 31, 2012Date of Patent: May 31, 2016Assignee: NetApp, Inc.Inventors: Paul Jardetzky, Steven R. Kleiman, Roger Stager, Don Trimmer, Ling Zheng, Yuval Frandzel
-
Using logical block addresses with generation numbers as data fingerprints for network deduplication
Patent number: 9280288Abstract: 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: GrantFiled: April 29, 2015Date of Patent: March 8, 2016Assignee: NetApp, Inc.Inventors: Michael N. Condict, Steven R. Kleiman -
Patent number: 9134917Abstract: 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: GrantFiled: February 11, 2009Date of Patent: September 15, 2015Assignee: NetApp, Inc.Inventors: Jeffrey S. Kimmel, Steven R. Kleiman, Steven C. Miller
-
USING LOGICAL BLOCK ADDRESSES WITH GENERATION NUMBERS AS DATA FINGERPRINTS FOR NETWORK DEDUPLICATION
Publication number: 20150248240Abstract: 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: ApplicationFiled: April 29, 2015Publication date: September 3, 2015Inventors: Michael N. Condict, Steven R. Kleiman -
Publication number: 20150213049Abstract: 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: ApplicationFiled: January 30, 2014Publication date: July 30, 2015Inventors: Steven R. Kleiman, Mark Walter Storer, Minglong Shao, Sethuraman Subbiah, Shankar Pasupathy
-
Using logical block addresses with generation numbers as data fingerprints for network deduplication
Patent number: 9043430Abstract: 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: GrantFiled: August 12, 2013Date of Patent: May 26, 2015Assignee: NetApp, Inc.Inventors: Michael N. Condict, Steven R. Kleiman -
Publication number: 20150142942Abstract: 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: ApplicationFiled: July 22, 2014Publication date: May 21, 2015Inventors: Kaladhar Voruganti, Steven R. Kleiman, James Hartwell Holl, II, Gokul Soundararajan, Shailaja Kamila, Subra Mohan
-
Patent number: 8825963Abstract: 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: GrantFiled: April 15, 2013Date of Patent: September 2, 2014Assignee: NetApp, Inc.Inventors: John K. Edwards, Keith A. Smith, Jiri Schindler, Steven R. Kleiman
-
Using logical block addresses with generation numbers as data fingerprints for network deduplication
Patent number: 8799367Abstract: 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: GrantFiled: October 30, 2009Date of Patent: August 5, 2014Assignee: NetApp, Inc.Inventors: Michael N. Condict, Steven R. Kleiman -
Publication number: 20140068184Abstract: 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: ApplicationFiled: September 6, 2013Publication date: March 6, 2014Applicant: NETAPP, INC.Inventors: John K. Edwards, Steven R. Kleiman
-
USING LOGICAL BLOCK ADDRESSES WITH GENERATION NUMBERS AS DATA FINGERPRINTS FOR NETWORK DEDUPLICATION
Publication number: 20130332558Abstract: 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: ApplicationFiled: August 12, 2013Publication date: December 12, 2013Applicant: NetApp. Inc.Inventors: Michael N. Condict, Steven R. Kleiman -
Patent number: 8555022Abstract: 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: GrantFiled: January 6, 2010Date of Patent: October 8, 2013Assignee: NetApp, Inc.Inventors: John K. Edwards, Steven R. Kleiman
-
Patent number: 8549222Abstract: 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: GrantFiled: February 11, 2009Date of Patent: October 1, 2013Assignee: NetApp, Inc.Inventors: Steven R. Kleiman, Steven C. Miller, Jeffrey S. Kimmel
-
Patent number: 8443153Abstract: 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: GrantFiled: January 6, 2010Date of Patent: May 14, 2013Assignee: NetApp, Inc.Inventors: John K. Edwards, Keith A. Smith, Jiri Schindler, Steven R. Kleiman
-
Publication number: 20130018942Abstract: 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: ApplicationFiled: July 31, 2012Publication date: January 17, 2013Inventors: Paul Jardetzky, Steven R. Kleiman, Roger Stager, Don Trimmer, Ling Zheng, Yuval Frandzel
-
Patent number: 8234327Abstract: 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: GrantFiled: March 30, 2007Date of Patent: July 31, 2012Assignee: NetApp, Inc.Inventors: Paul Jardetzky, Steven R. Kleiman, Roger Stager, Don Trimmer, Ling Zheng, Yuval Frandzel
-
Patent number: 8086652Abstract: 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: GrantFiled: August 15, 2007Date of Patent: December 27, 2011Assignee: NetApp, Inc.Inventors: Timothy Bisson, Shankar Pasupathy, Garth Richard Goodson, Steven R. Kleiman
-
Patent number: 8032704Abstract: 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: GrantFiled: July 31, 2009Date of Patent: October 4, 2011Assignee: NetApp, Inc.Inventors: Peter F. Corbett, Robert M. English, Steven R. Kleiman
-
Patent number: 7979633Abstract: 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: GrantFiled: April 2, 2004Date of Patent: July 12, 2011Assignee: NetApp, Inc.Inventors: Steven R. Kleiman, Rajesh Sundaram, Douglas P. Doucette, Stephen H. Strange, Srinivasan Viswanathan