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: 20160070644
    Abstract: An offset range striping technique increases concurrency of operation execution directed to metadata managed by a volume layer of a storage input/output (I/O) stack, while reducing contention among resources of one or more nodes of a cluster. A logical unit (LUN) may be apportioned into multiple volumes, each of which may be partitioned into multiple regions, wherein each region is represented by a dense tree. The technique increases concurrency of operation execution (e.g., modifications to the metadata at the offset ranges), while reducing contention among the resources (e.g., CPUs and NVLogs) by distributing the offset range operations among the regions and mapping the regions to services and NVLogs. Such increased concurrency and reduction of contention may be achieved by implementation of the technique to (i) apportion each region into disjoint chunks (i.e.
    Type: Application
    Filed: September 10, 2014
    Publication date: March 10, 2016
    Inventors: Janice D'Sa, Anshul Pundir, Srinath Krishnamachari, Ling Zheng, Jeffrey S. Kimmel
  • Publication number: 20160065670
    Abstract: Data consistency and availability can be provided at the granularity of logical storage objects in storage solutions that use storage virtualization in clustered storage environments. To ensure consistency of data across different storage elements, synchronization is performed across the different storage elements. Changes to data are synchronized across storage elements in different clusters by propagating the changes from a primary logical storage object to a secondary logical storage object. To satisfy the strictest RPOs while maintaining performance, change requests are intercepted prior to being sent to a filesystem that hosts the primary logical storage object and propagated to a different managing storage element associated with the secondary logical storage object.
    Type: Application
    Filed: August 29, 2014
    Publication date: March 3, 2016
    Inventors: Jeffrey S. Kimmel, Susan M. Coatney, Yuedong Mu, Santosh Rao
  • Patent number: 9268653
    Abstract: In one embodiment, a cluster uses an extent store layer and a set of hash tables having a plurality of slots embodying extent metadata that describe write data of one or more write requests organized into one or more extents. One or more non-volatile logs (NVLogs) are maintained in the cluster. The one or more NVLogs include an extent store layer log maintained by the extent store layer. The extent store layer log records changes to the set of hash tables as a plurality of log stream structures, where each log stream structure is associated with a hash table. One or more storage devices of the cluster are organized as a plurality of log streams, where each log stream is associated with a corresponding log stream structure of the extent store layer log.
    Type: Grant
    Filed: January 17, 2014
    Date of Patent: February 23, 2016
    Assignee: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, T. Byron Rakitzis
  • Publication number: 20160048332
    Abstract: The embodiments described herein are directed to the use of hashing in a file system metadata arrangement that reduces an amount of metadata stored in a memory of a node in a cluster and that reduces the amount of metadata needed to process an input/output (I/O) request at the node. Illustratively, the embodiments are directed to cuckoo hashing and, in particular, to a manner in which cuckoo hashing may be modified and applied to construct the file system metadata arrangement. In an embodiment, the file system metadata arrangement may be illustratively include a hash collision technique that employs a hash collision computation to determine a unique candidate extent key (having a candidate hash table index) in the event of a collision, i.e., a hash table index collides with a slot of a hash table matching a key found in the slot.
    Type: Application
    Filed: October 29, 2015
    Publication date: February 18, 2016
    Inventors: Jeffrey S. Kimmel, T. Byron Rakitzis
  • Patent number: 9256549
    Abstract: In one embodiment, an extent key reconstruction technique is provided for use with a set of hash tables embodying metadata. The metadata includes an extent key associated with a storage location on storage devices for write data of one or more write requests organized into an extent. Each hash table has a plurality of entries, and each entry includes a plurality of slots. A first field of the extent key is recreated implicitly from an entry in a first address space portion of a hash table. A second field of the extent key is stored in the slot. A third field of the extent key is stored in the slot. A fourth field of the extent key is recreated implicitly from the hash table of the set of hash tables.
    Type: Grant
    Filed: January 17, 2014
    Date of Patent: February 9, 2016
    Assignee: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, T. Byron Rakitzis
  • Patent number: 9251064
    Abstract: In one embodiment, a node coupled to one or more solid state drives (SSDs) executes a storage input/output (I/O) stack having a plurality of layers, including a persistence layer. The node includes a non-volatile random access memory (NVRAM). A portion of the NVRAM is configured as a write-back cache to store write data associated with one or more write requests. The persistence layer is configured to organize the write data into extents that are written back to the one or more SSDs in any order. The write data is preserved in the write-back cache until each extent is safely and successfully stored on the one or more SSDs in an event of a power loss.
    Type: Grant
    Filed: January 8, 2014
    Date of Patent: February 2, 2016
    Assignee: NetApp, Inc.
    Inventor: Jeffrey S. Kimmel
  • Publication number: 20160004637
    Abstract: In one embodiment, a node coupled to solid state drives (SSDs) of a plurality of storage arrays executes a storage input/output (I/O) stack having a plurality of layers. The node includes a non-volatile random access memory (NVRAM). A first portion of the NVRAM is configured as a write-back cache to store write data associated with a write request and a second portion of the NVRAM is configured as one or more non-volatile logs (NVLogs) to record metadata associated with the write request. The write data is passed from the write-back cache over a first path of the storage I/O stack for storage on a first storage array and the metadata is passed from the one or more NVLogs over a second path of the storage I/O stack for storage on a second storage array, wherein the first path is different from the second path.
    Type: Application
    Filed: September 16, 2015
    Publication date: January 7, 2016
    Inventor: Jeffrey S. Kimmel
  • Publication number: 20150355863
    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: April 24, 2015
    Publication date: December 10, 2015
    Inventors: Jeffrey S. Kimmel, Tim Emami
  • Patent number: 9170751
    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: July 25, 2014
    Date of Patent: October 27, 2015
    Assignee: NetApp, Inc.
    Inventor: Jeffrey S. Kimmel
  • Patent number: 9152335
    Abstract: In one embodiment, a layered file system of a storage input/output (I/O) stack executes on one or more nodes of a cluster. The layered file system includes a flash-optimized, log-structured layer configured to provide sequential storage of data and metadata (i.e., a log-structured layout) on solid state drives (SSDs) of storage arrays in the cluster to reduce write amplification, while leveraging a data de-duplication feature of the storage I/O stack. An extent store layer of the file system performs and maintains mappings of the extent keys to SSD storage locations, while a volume layer of the file system performs and maintains mappings of the LUN offset ranges to the extent keys. Separation of the mapping functions between the volume and extent store layers enables different volumes with different offset ranges to reference a same extent key (and thus a same extent).
    Type: Grant
    Filed: January 21, 2014
    Date of Patent: October 6, 2015
    Assignee: NetApp, Inc.
    Inventors: Rajesh Sundaram, Jeffrey S. Kimmel, Blake H. Lewis
  • 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: 20150227465
    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: Application
    Filed: April 24, 2015
    Publication date: August 13, 2015
    Inventors: Rajesh Sundaram, Douglas Paul Doucette, David Grunwald, Jeffrey S. Kimmel, Ashish Prakash
  • Publication number: 20150205669
    Abstract: In one embodiment, a file system driven RAID rebuild technique is provided. A layered file system may organize storage of data as segments spanning one or more sets of storage devices, such as solid state drives (SSDs), of a storage array, wherein each set of SSDs may form a RAID group configured to provide data redundancy for a segment. The file system may then drive (i.e., initiate) rebuild of a RAID configuration of the SSDs on a segment-by-segment basis in response to cleaning of the segment (i.e., segment cleaning). Each segment may include one or more RAID stripes that provide a level of data redundancy (e.g., single parity RAID 5 or double parity RAID 6) as well as RAID organization (i.e., distribution of data and parity) for the segment. Notably, the level of data redundancy and RAID organization may differ among the segments of the array.
    Type: Application
    Filed: January 22, 2014
    Publication date: July 23, 2015
    Applicant: NetApp, Inc.
    Inventors: Rajesh Sundaram, Bharat Baddepudi, Jeffrey S. Kimmel, T. Byron Rakitzis
  • Publication number: 20150205727
    Abstract: In one embodiment, an extent key reconstruction technique is provided for use with a set of hash tables embodying metadata. The metadata includes an extent key associated with a storage location on storage devices for write data of one or more write requests organized into an extent. Each hash table has a plurality of entries, and each entry includes a plurality of slots. A first field of the extent key is recreated implicitly from an entry in a first address space portion of a hash table. A second field of the extent key is stored in the slot. A third field of the extent key is stored in the slot. A fourth field of the extent key is recreated implicitly from the hash table of the set of hash tables.
    Type: Application
    Filed: January 17, 2014
    Publication date: July 23, 2015
    Applicant: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, T. Byron Rakitzis
  • Publication number: 20150205680
    Abstract: In one embodiment, a cluster uses an extent store layer and a set of hash tables having a plurality of slots embodying extent metadata that describe write data of one or more write requests organized into one or more extents. One or more non-volatile logs (NVLogs) are maintained in the cluster. The one or more NVLogs include an extent store layer log maintained by the extent store layer. The extent store layer log records changes to the set of hash tables as a plurality of log stream structures, where each log stream structure is associated with a hash table. One or more storage devices of the cluster are organized as a plurality of log streams, where each log stream is associated with a corresponding log stream structure of the extent store layer log.
    Type: Application
    Filed: January 17, 2014
    Publication date: July 23, 2015
    Applicant: NetApp, Inc.
    Inventors: Jeffrey S. Kimmel, T. Byron Rakitzis
  • Publication number: 20150205668
    Abstract: In one embodiment, one or more storage arrays of solid state drives (SSDs) that include a plurality of segments are organized as one or more redundant array of independent disks (RAID) groups, where the RAID groups provides data redundancy for the segments. A node executing a layered file system of a storage input/output (I/O) stack performs segment cleaning to clean the segments. It further initiates rebuild of a RAID configuration of the SSDs on a segment-by-segment basis in response to the segment cleaning. In such a configuration, each segment includes one or more RAID stripes that provide a level of data redundancy as well as RAID organization for the segment.
    Type: Application
    Filed: January 17, 2014
    Publication date: July 23, 2015
    Applicant: NetApp, Inc.
    Inventors: Rajesh Sundaram, Bharat Baddepudi, Jeffrey S. Kimmel, T. Byron Rakitzis
  • Publication number: 20150205663
    Abstract: In one embodiment, a node of a cluster having a plurality of nodes, executes a storage input/output (I/O) stack having a redundant array of independent disks (RAID) layer. The RAID layer organizes solid state drives (SSDs) within one or more storage arrays as a plurality of RAID groups associated with one or more extent stores. The RAID groups are formed from slices of storage spaces of the SSDs instead of entire storage spaces of the SSDs. This provides for RAID groups to co-exist on a same set of the SSDs.
    Type: Application
    Filed: January 17, 2014
    Publication date: July 23, 2015
    Applicant: NetApp, Inc.
    Inventors: Rajesh Sundaram, Bharat Baddepudi, Jeffrey S. Kimmel
  • Publication number: 20150193169
    Abstract: In one embodiment, a layered file system of a storage input/output (I/O) stack executes on one or more nodes of a cluster. The layered file system includes a flash-optimized, log-structured layer configured to provide sequential storage of data and metadata (i.e., a log-structured layout) on solid state drives (SSDs) of storage arrays in the cluster to reduce write amplification, while leveraging a data de-duplication feature of the storage I/O stack. An extent store layer of the file system performs and maintains mappings of the extent keys to SSD storage locations, while a volume layer of the file system performs and maintains mappings of the LUN offset ranges to the extent keys. Separation of the mapping functions between the volume and extent store layers enables different volumes with different offset ranges to reference a same extent key (and thus a same extent).
    Type: Application
    Filed: January 21, 2014
    Publication date: July 9, 2015
    Applicant: NetApp, Inc.
    Inventors: Rajesh Sundaram, Jeffrey S. Kimmel, Blake H. Lewis
  • Publication number: 20150193337
    Abstract: In one embodiment, a node coupled to one or more solid state drives (SSDs) executes a storage input/output (I/O) stack having a plurality of layers, including a persistence layer. The node includes a non-volatile random access memory (NVRAM). A portion of the NVRAM is configured as a write-back cache to store write data associated with one or more write requests. The persistence layer is configured to organize the write data into extents that are written back to the one or more SSDs in any order. The write data is preserved in the write-back cache until each extent is safely and successfully stored on the one or more SSDs in an event of a power loss.
    Type: Application
    Filed: January 8, 2014
    Publication date: July 9, 2015
    Applicant: NetApp, Inc.
    Inventor: Jeffrey S. Kimmel
  • Publication number: 20150193338
    Abstract: In one embodiment, storage arrays of solid state drives (SSDs) coupled to a node are organized as redundant array of independent disks (RAID) groups. Each storage array includes one or more segments. Each segment has contiguous free space on the SSDs. Data and metadata is organized on the SSDs with a sequential log-structured layout, with the data organized as variable-length extents of one or more logical units (LUNs). Segment cleaning is performed to clean a selected segment by moving the extents of the selected segment that contain valid data to one or more different segments so as to free the selected segment. Additional extents are written as a sequence of contiguous range write operations to the entire free segment with temporal locality to reduce data relocation within the SSDs as a result of the write operations.
    Type: Application
    Filed: January 8, 2014
    Publication date: July 9, 2015
    Applicant: NetApp, Inc.
    Inventors: Rajesh Sundaram, Stephen Daniel, Jeffrey S. Kimmel, Blake H. Lewis