Patents by Inventor Jeffrey S. Kimmel

Jeffrey S. Kimmel 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: 20150193170
    Abstract: In one embodiment, a layered file system includes a volume layer and an extent store layer configured to provide sequential log-structured layout of data and metadata on solid state drives (SSDs) of one or more storage arrays. The data is organized as variable-length extents of one or more logical units (LUNs). The metadata includes volume metadata mappings from offset ranges of a LUN to extent keys and extent metadata mappings of the extent keys to storage locations of the extents on the SSDs. The extent store layer maintaining the extent metadata mappings determines whether an extent is stored on a storage array, and, in response to determination that the extent is stored on the storage array, returns an extent key for the stored extent to the volume layer to enable global inline de-duplication that obviates writing a duplicate copy of the extent on the storage array.
    Type: Application
    Filed: January 8, 2014
    Publication date: July 9, 2015
    Applicant: NetApp, Inc.
    Inventors: Rajesh Sundaram, Jeffrey S. Kimmel, Blake H. Lewis
  • Patent number: 9071622
    Abstract: A technique is described for improving throughput in a processing system, such as a network storage server. The technique provides multiple levels (e.g., a hierarchy) of parallelism of process execution within a single mutual exclusion domain, in a manner which allows certain operations on metadata to be parallelized as well as certain operations on user data. The specific parallelization scheme used in any given embodiment is based at least partly on the underlying metadata structures used by the processing system. Consequently, a high degree of parallelization possible, which improves the throughput of the processing system.
    Type: Grant
    Filed: December 9, 2013
    Date of Patent: June 30, 2015
    Assignee: NetApp, Inc.
    Inventors: David Grunwald, Jeffrey S. Kimmel
  • Patent number: 9043542
    Abstract: Described is a technique for managing the content of a nonvolatile solid-state memory data cache to improve cache performance while at the same time, and in a complementary manner, providing for automatic wear leveling. A modified circular first-in first-out (FIFO) log/algorithm is generally used to determine cache content replacement. The algorithm is used as the default mechanism for determining cache content to be replaced when the cache is full but is subject to modification in some instances. In particular, data are categorized according to different data classes prior to being written to the cache, based on usage. Once cached, data belonging to certain classes are treated differently than the circular FIFO replacement algorithm would dictate. Further, data belonging to each class are localized to designated regions within the cache.
    Type: Grant
    Filed: November 22, 2013
    Date of Patent: May 26, 2015
    Assignee: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, Randy Pafford, Rajesh Sundaram
  • Patent number: 9043545
    Abstract: Various systems and methods are described for configuring a data storage system. In one embodiment, a plurality of actual capacities of a plurality of storage devices of the data storage system are identified and divided into a plurality of capacity slices. The plurality of capacity slices are combined into a plurality of chunks of capacity slices, each having a combination of characteristics of the underlying physical storage devices. The chunks of capacity slices are then mapped to a plurality of logical storage devices. A group of the plurality of logical storage devices is then organized into a redundant array of logical storage devices.
    Type: Grant
    Filed: January 4, 2013
    Date of Patent: May 26, 2015
    Assignee: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, Tim Emami
  • Patent number: 9043530
    Abstract: Among other things, one or more techniques and/or systems are provided for storing data within a hybrid storage aggregate comprising a lower-latency storage tier and a higher-latency storage tier. In particular, frequently accessed data, randomly accessed data, and/or short lived data may be stored (e.g., read caching and/or write caching) within the lower-latency storage tier. Infrequently accessed data and/or sequentially accessed data may be stored within the higher-latency storage tier. Because the hybrid storage aggregate may comprise a single logical container derived from the higher-latency storage tier and the lower-latency storage tier, additional storage and/or file system functionality may be implemented across the storage tiers. For example, deduplication functionality, caching functionality, backup/restore functionality, and/or other functionality may be provided through a single file system (or other type of arrangement) and/or a cache map implemented within the hybrid storage aggregate.
    Type: Grant
    Filed: April 9, 2012
    Date of Patent: May 26, 2015
    Assignee: NetApp, Inc.
    Inventors: Rajesh Sundaram, Douglas Paul Doucette, David Grunwald, Jeffrey S. Kimmel, Ashish Prakash
  • Publication number: 20150095346
    Abstract: In one embodiment, a technique is provided for distributing data and associated metadata within a distributed storage architecture. A set of hash tables that embody mappings of cluster-wide identifiers associated with storage locations are stored for write data of write requests organized into extents. A hash value is generated from a hash function applied to each extent. The hash value is overloaded and used for multiple purposes within the distributed storage architecture, including (i) a remainder computation on the hash value to select a bucket of a plurality of buckets representative of the extents, (ii) a hash table selector of the hash value to select a hash table from the set of hash tables, and (iii) a hash table index computed from the hash value to select an entry from a plurality of entries of the selected hash table having a cluster-wide identifier identifying a storage location for the extent.
    Type: Application
    Filed: October 2, 2013
    Publication date: April 2, 2015
    Applicant: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, Blake H. Lewis
  • Publication number: 20150095347
    Abstract: In one embodiment, an extent hashing technique is used to efficiently distribute data and associated metadata substantially evenly among nodes of a cluster. The data may be write data associated with a write request issued by a host and received at a node of the cluster. The write data may be organized into one or more extents. A hash function may be applied to the extent to generate a result which may be truncated or trimmed to generate a hash value. A hash space of the hash value may be divided into a plurality of buckets representative of the write data, i.e., the extents, and the associated metadata, i.e., extent metadata. A number of buckets may be assigned to each extent store instance of the nodes to distribute ownership of the buckets, along with their extents and extent metadata, across all of the extent store instances of the nodes.
    Type: Application
    Filed: January 21, 2014
    Publication date: April 2, 2015
    Applicant: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, Blake H. Lewis
  • Patent number: 8996535
    Abstract: In one embodiment, an extent hashing technique is used to efficiently distribute data and associated metadata substantially evenly among nodes of a cluster. The data may be write data associated with a write request issued by a host and received at a node of the cluster. The write data may be organized into one or more extents. A hash function may be applied to the extent to generate a result which may be truncated or trimmed to generate a hash value. A hash space of the hash value may be divided into a plurality of buckets representative of the write data, i.e., the extents, and the associated metadata, i.e., extent metadata. A number of buckets may be assigned to each extent store instance of the nodes to distribute ownership of the buckets, along with their extents and extent metadata, across all of the extent store instances of the nodes.
    Type: Grant
    Filed: January 21, 2014
    Date of Patent: March 31, 2015
    Assignee: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, Blake H. Lewis
  • Patent number: 8924440
    Abstract: An extent-based storage architecture is implemented by a storage server receiving a read request for an extent from a client, wherein the extent includes a group of contiguous blocks and the read request includes a file block number. The storage server retrieves an extent identifier from a first sorted data structure, wherein the storage server uses the received file block number to traverse the first sorted data structure to the extent identifier. The storage server retrieves a reference to the extent from a second sorted data structure, wherein the storage server uses the retrieved extent identifier to traverse the second sorted data structure to the reference, and wherein the second sorted data structure is global across a plurality of volumes. The storage server retrieves the extent from a storage device using the reference and returns the extent to the client.
    Type: Grant
    Filed: August 15, 2013
    Date of Patent: December 30, 2014
    Assignee: NetApp, Inc.
    Inventors: Rickard E. Faith, Subramaniam Perivagaram, Sandeep Yadav, Ashish Prakash, Blake Lewis, Jeffrey S. Kimmel, Stephen Daniel
  • Patent number: 8898388
    Abstract: In one embodiment, non-volatile random access memory (NVRAM) caching and logging delivers low latency acknowledgements of input/output (I/O) requests, such as write requests, while avoiding loss of data. Write data may be stored in a portion of an NVRAM configured as, e.g., a persistent write-back cache, while parameters of the request may be stored in another portion of the NVRAM configured as one or more logs, e.g., NVLogs. The write data may be organized into separate variable length blocks or extents and “written back” out-of-order from the write back cache to storage devices, such as solid state drives (SSDs). The write data may be preserved in the write-back cache until each extent is safely and successfully stored on SSD (i.e., in the event of power loss), or operations associated with the write request are sufficiently logged on NVLog.
    Type: Grant
    Filed: January 23, 2014
    Date of Patent: November 25, 2014
    Assignee: NetApp, Inc.
    Inventor: Jeffrey S. Kimmel
  • Publication number: 20140337565
    Abstract: A storage server receives a write request from a client system including new data and a location to store the new data. The storage server transmits a copy instruction to a storage subsystem to relocate old data at the location and transmits a write instruction to the storage subsystem to overwrite the old data with the new data. The storage subsystem includes fast stable storage in which the copy instruction and the write instruction are stored. After receiving each instruction, the storage subsystem sends an acknowledgement to the storage server. When both instructions have been acknowledged, the storage server sends an acknowledgement to the client system. The storage subsystem performs the instructions asynchronously from the client system's write request.
    Type: Application
    Filed: July 25, 2014
    Publication date: November 13, 2014
    Inventor: Jeffrey S. Kimmel
  • Patent number: 8880787
    Abstract: In one embodiment, an extent store layer of a storage input/output (I/O) stack executing on one or more nodes of a cluster manages efficient logging and checkpointing of metadata. The metadata managed by the extent store layer, i.e., the extent store metadata, resides in a memory (in-core) of each node and is illustratively organized as a key-value extent store embodied as one or more data structures, e.g., a set of hash tables. Changes to the set of hash tables are recorded as a continuous stream of changes to SSD embodied as an extent store layer log. A separate log stream structure (e.g., an in-core buffer) may be associated respectively with each hash table such that changed (i.e., dirtied) slots of the hash table are recorded as entries in the log stream structure. The hash tables are written to SSD using a fuzzy checkpointing technique.
    Type: Grant
    Filed: January 21, 2014
    Date of Patent: November 4, 2014
    Assignee: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, T. Byron Rakitzis
  • Patent number: 8880788
    Abstract: In one embodiment, a flash-optimized, log-structured layer of a file system of a storage input/output (I/O) stack executes on one or more nodes of a cluster. The log-structured layer of the file system provides sequential storage of data and metadata on solid state drives (SSDs) to reduce write amplification, while leveraging variable compression and variable length data features of the storage I/O stack. The data may be organized as an arbitrary number of variable-length extents of one or more host-visible logical units (LUNs). The metadata may include mappings from host-visible logical block address ranges of a LUN to extent keys, as well as mappings of the extent keys to SSD storage locations of the extents. The storage location of an extent on SSD is effectively “virtualized” by its mapped extent key such that relocation of the extent on SSD does not require update to volume layer metadata.
    Type: Grant
    Filed: January 22, 2014
    Date of Patent: November 4, 2014
    Assignee: NetApp, Inc.
    Inventors: Rajesh Sundaram, Stephen Daniel, Jeffrey S. Kimmel, Blake H. Lewis
  • Patent number: 8874842
    Abstract: In one embodiment, use of hashing in a file system metadata arrangement reduces an amount of metadata stored in a memory of a node in a cluster and reduces the amount of metadata needed to process an input/output (I/O) request at the node. Illustratively, cuckoo hashing may be modified and applied to construct the file system metadata arrangement. The file system metadata arrangement may be illustratively configured as a key-value extent store embodied as a data structure, e.g., a cuckoo hash table, wherein a value, such as a hash table index, may be configured as an index and applied to the cuckoo hash table to obtain a key, such as an extent key, configured to reference a location of an extent on one or more storage devices, such as solid state drives.
    Type: Grant
    Filed: January 21, 2014
    Date of Patent: October 28, 2014
    Assignee: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, T. Bryon Rakitzis
  • Patent number: 8832363
    Abstract: In one embodiment, a clustered storage system is configured to reduce parity overhead of Redundant Array of Independent Disks (RAID) groups, as well as to facilitate distribution and servicing of the storage containers among storage systems (nodes) of the cluster. The storage containers may be stored on one or more storage arrays of storage devices, such as solid state drives (SSDs), connected to the nodes of the cluster. The RAID groups may be formed from slices (i.e., portions) of storage spaces of the SSDs instead of the entire storage spaces of the SSDs. That is, each RAID group may be formed “horizontally” across a set of SSDs as slices (i.e., one slice of storage space from each SSD in the set). Accordingly, a plurality of RAID groups may co-exist (i.e., be stacked) on the same set of SSDs.
    Type: Grant
    Filed: January 23, 2014
    Date of Patent: September 9, 2014
    Assignee: NetApp, Inc.
    Inventors: Rajesh Sundaram, Bharat Baddepudi, Jeffrey S. Kimmel
  • Patent number: 8793449
    Abstract: A storage server receives a write request from a client system including new data and a location to store the new data. The storage server transmits a copy instruction to a storage subsystem to relocate old data at the location and transmits a write instruction to the storage subsystem to overwrite the old data with the new data. The storage subsystem includes fast stable storage in which the copy instruction and the write instruction are stored. After receiving each instruction, the storage subsystem sends an acknowledgement to the storage server. When both instructions have been acknowledged, the storage server sends an acknowledgement to the client system. The storage subsystem performs the instructions asynchronously from the client system's write request.
    Type: Grant
    Filed: October 15, 2010
    Date of Patent: July 29, 2014
    Assignee: NetApp, Inc.
    Inventor: Jeffrey S. Kimmel
  • Publication number: 20140181377
    Abstract: Described is a technique for managing the content of a nonvolatile solid-state memory data cache to improve cache performance while at the same time, and in a complementary manner, providing for automatic wear leveling. A modified circular first-in first-out (FIFO) log/algorithm is generally used to determine cache content replacement. The algorithm is used as the default mechanism for determining cache content to be replaced when the cache is full but is subject to modification in some instances. In particular, data are categorized according to different data classes prior to being written to the cache, based on usage. Once cached, data belonging to certain classes are treated differently than the circular FIFO replacement algorithm would dictate. Further, data belonging to each class are localized to designated regions within the cache.
    Type: Application
    Filed: November 22, 2013
    Publication date: June 26, 2014
    Applicant: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, Randy Pafford, Rajesh S. Sundaram
  • Publication number: 20140149515
    Abstract: A technique is described for improving throughput in a processing system, such as a network storage server. The technique provides multiple levels (e.g., a hierarchy) of parallelism of process execution within a single mutual exclusion domain, in a manner which allows certain operations on metadata to be parallelized as well as certain operations on user data. The specific parallelization scheme used in any given embodiment is based at least partly on the underlying metadata structures used by the processing system. Consequently, a high degree of parallelization possible, which improves the throughput of the processing system.
    Type: Application
    Filed: December 9, 2013
    Publication date: May 29, 2014
    Applicant: NetApp, Inc.
    Inventors: David Grunwald, Jeffrey S. Kimmel
  • Publication number: 20140082279
    Abstract: Various systems and methods are described for configuring a data storage system. In one embodiment, a plurality of actual capacities of a plurality of storage devices of the data storage system are identified and divided into a plurality of capacity slices. The plurality of capacity slices are combined into a plurality of chunks of capacity slices, each having a combination of characteristics of the underlying physical storage devices. The chunks of capacity slices are then mapped to a plurality of logical storage devices. A group of the plurality of logical storage devices is then organized into a redundant array of logical storage devices.
    Type: Application
    Filed: January 4, 2013
    Publication date: March 20, 2014
    Applicant: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, Tim Emami
  • Publication number: 20140052946
    Abstract: Techniques for opportunistic data storage are described. In one embodiment, for example, an apparatus may comprise a data storage device and a storage management module, and the storage management module may be operative to receive a request to store a set of data in the data storage device, the request indicating that the set of data is to be stored with opportunistic retention, the storage management module to select, based on allocation information, storage locations of the data storage device for opportunistic storage of the set of data and write the set of data to the selected storage locations. Other embodiments are described and claimed.
    Type: Application
    Filed: August 19, 2013
    Publication date: February 20, 2014
    Inventor: Jeffrey S. Kimmel