Patents Assigned to Nimble Storage, Inc.
  • Patent number: 9304909
    Abstract: A storage device made up of multiple storage media is configured such that one such media serves as a cache for data stored on another of such media. The device includes a controller configured to manage the cache by consolidating information concerning obsolete data stored in the cache with information concerning data no longer desired to be stored in the cache, and erase segments of the cache containing one or more of the blocks of obsolete data and the blocks of data that are no longer desired to be stored in the cache to produce reclaimed segments of the cache.
    Type: Grant
    Filed: October 27, 2015
    Date of Patent: April 5, 2016
    Assignee: Nimble Storage, Inc.
    Inventor: Umesh Maheshwari
  • Patent number: 9274967
    Abstract: Described herein are methods, systems and machine-readable media for simulating a FIFO cache using a Bloom filter ring, which includes a plurality of Bloom filters arranged in a circular log. New elements are registered in the Bloom filter at the head of the circular log. When the Bloom filter at the head of the circular log is filled to its capacity, membership information associated with old elements in the Bloom filter at the tail of the circular log is evicted (simulating FIFO cache behavior), and the head and tail of the log are advanced. The Bloom filter ring is used to determine cache statistics (e.g., cache hit, cache miss) of a FIFO cache of various sizes. In response to simulation output specifying cache statistics for FIFO cache of various sizes, a FIFO cache is optimally sized.
    Type: Grant
    Filed: August 7, 2013
    Date of Patent: March 1, 2016
    Assignee: Nimble Storage, Inc.
    Inventors: Senthil Kumar Ramamoorthy, Umesh Maheshwari
  • Patent number: 9235506
    Abstract: A storage device includes a flash memory-based cache for a hard disk-based storage device and a controller that is configured to limit the rate of cache updates through a variety of mechanisms, including determinations that the data is not likely to be read back from the storage device within a time period that justifies its storage in the cache, compressing data prior to its storage in the cache, precluding storage of sequentially-accessed data in the cache, and/or throttling storage of data to the cache within predetermined write periods and/or according to user instruction.
    Type: Grant
    Filed: August 29, 2014
    Date of Patent: January 12, 2016
    Assignee: Nimble Storage, Inc.
    Inventors: Umesh Maheshwari, Varun Mehta
  • Patent number: 9213628
    Abstract: A storage device includes a flash memory-based cache for a hard disk-based storage device and a controller that is configured to limit the rate of cache updates through a variety of mechanisms, including determinations that the data is not likely to be read back from the storage device within a time period that justifies its storage in the cache, compressing data prior to its storage in the cache, precluding storage of sequentially-accessed data in the cache, and/or throttling storage of data to the cache within predetermined write periods and/or according to user instruction.
    Type: Grant
    Filed: July 14, 2010
    Date of Patent: December 15, 2015
    Assignee: Nimble Storage, Inc.
    Inventors: Umesh Maheshwari, Varun Mehta
  • Patent number: 9176874
    Abstract: A storage device made up of multiple storage media is configured such that one such media serves as a cache for data stored on another of such media. The device includes a controller configured to manage the cache by consolidating information concerning obsolete data stored in the cache with information concerning data no longer desired to be stored in the cache, and erase segments of the cache containing one or more of the blocks of obsolete data and the blocks of data that are no longer desired to be stored in the cache to produce reclaimed segments of the cache.
    Type: Grant
    Filed: June 25, 2015
    Date of Patent: November 3, 2015
    Assignee: Nimble Storage, Inc.
    Inventor: Umesh Maheshwari
  • Patent number: 9116630
    Abstract: Described herein are methods, systems and machine-readable media for migrating data between storage devices of a storage array. A metric is used to measure the optimality of candidate data migrations, the metric taking into account capacity balance and proper data striping. Candidate migrations are evaluated against the metric. The candidate migration that ranks as the best migration according to the metric may be carried out. This process of evaluating candidate migrations and carrying out the best candidate migration may be iterated until data is properly distributed among the storage devices of the storage array.
    Type: Grant
    Filed: August 30, 2013
    Date of Patent: August 25, 2015
    Assignee: Nimble Storage, Inc.
    Inventors: Brian Rowe, Bob Fozard
  • Patent number: 9098405
    Abstract: A storage device made up of multiple storage media is configured such that one such media serves as a cache for data stored on another of such media. The device includes a controller configured to manage the cache by consolidating information concerning obsolete data stored in the cache with information concerning data no longer desired to be stored in the cache, and erase segments of the cache containing one or more of the blocks of obsolete data and the blocks of data that are no longer desired to be stored in the cache to produce reclaimed segments of the cache.
    Type: Grant
    Filed: March 12, 2015
    Date of Patent: August 4, 2015
    Assignee: Nimble Storage, Inc.
    Inventor: Umesh Maheshwari
  • Patent number: 9092376
    Abstract: Techniques are described herein which minimize the impact of virtual machine snapshots on the performance virtual machines and hypervisors. In the context of a volume snapshot which may involve (i) taking virtual machine snapshots of all virtual machines associated with the volume, (ii) taking the volume snapshot, and (iii) removing all the virtual machine snapshots, the virtual machine snapshots may be created in a first order and removed in a second order. Specifically, snapshots for busy virtual machines (i.e., virtual machines with higher disk write activity) may be created last and removed first. Consequently, snapshots of busy virtual machines are retained for the shorter periods of time, thereby minimizing the effect of virtual machine snapshots on those virtual machines (and their associated hypervisors) that would be most negatively impacted by virtual machine snapshots.
    Type: Grant
    Filed: August 29, 2014
    Date of Patent: July 28, 2015
    Assignee: Nimble Storage, Inc.
    Inventors: Raja Shekar Chelur, Juhsun Wang, Gaurav Ranganathan
  • Patent number: 9081670
    Abstract: A storage device includes a flash memory-based cache for a hard disk-based storage device and a controller that is configured to limit the rate of cache updates through a variety of mechanisms, including determinations that the data is not likely to be read back from the storage device within a time period that justifies its storage in the cache, compressing data prior to its storage in the cache, precluding storage of sequentially-accessed data in the cache, and/or throttling storage of data to the cache within predetermined write periods and/or according to user instruction.
    Type: Grant
    Filed: May 8, 2014
    Date of Patent: July 14, 2015
    Assignee: Nimble Storage, Inc.
    Inventors: Umesh Maheshwari, Varun Mehta
  • Patent number: 9015406
    Abstract: A storage device made up of multiple storage media is configured such that a flash memory serves as a cache for data stored on a backend storage device having one or more magnetic storage media. The storage device includes a controller configured to maintain a direct mapping from respective backend block addresses of the backend storage device to respective physical addresses of the flash memory. Such mapping is used to translate a backend block address of the backend storage device at which a first block is stored into a physical address of the flash memory at which the first block is cached.
    Type: Grant
    Filed: March 21, 2014
    Date of Patent: April 21, 2015
    Assignee: Nimble Storage, Inc.
    Inventor: Umesh Maheshwari
  • Patent number: 9003113
    Abstract: A storage device includes a flash memory-based cache for a hard disk-based storage device and a controller that is configured to limit the rate of cache updates through a variety of mechanisms, including determinations that the data is not likely to be read back from the storage device within a time period that justifies its storage in the cache, compressing data prior to its storage in the cache, precluding storage of sequentially-accessed data in the cache, and/or throttling storage of data to the cache within predetermined write periods and/or according to user instruction.
    Type: Grant
    Filed: May 8, 2014
    Date of Patent: April 7, 2015
    Assignee: Nimble Storage, Inc.
    Inventors: Umesh Maheshwari, Varun Mehta
  • Patent number: 8949502
    Abstract: A memory system controller includes one or more sockets for accommodating NVDIMM cards produced by different NVDIMM providers; a PCIe interface for coupling the memory system controller to a host; and a controller coupled to the PCIe interface over a PCIe-compliant connection and to the one or more sockets over respective DDR2 connections. The controller is configured to manage data transfers between the host and a specified one of the NVDIMM sockets in which an NVDIMM card is accommodated as DMA reads and writes, format data received from the PCIe interface for transmission to the specified NVDIMM socket over the corresponding one or more DDR2 interfaces, and initiate save and restore operations on the NVDIMM card accommodated within the specified NVDIMM socket in response to power failure and power restoration indications.
    Type: Grant
    Filed: November 18, 2011
    Date of Patent: February 3, 2015
    Assignee: Nimble Storage, Inc.
    Inventors: Thomas P. McKnight, Xiaoshan Zuo, Umesh Maheshwari
  • Patent number: 8924607
    Abstract: Described herein are techniques for cancelling I/O requests. Initially, virtual memory of an application is assigned to a first portion of memory. The application may issue a read request to an external device. The external device is instructed to record any response to the read request in the first portion of memory. The read request may be cancelled as follows. The virtual memory of the application may be re-assigned to a second portion of the memory. If and when the external device finishes processing the read request, the external device's response to the read request may still be saved in the first portion of memory, even though the read request has been cancelled. Such action of the external device would ordinarily corrupt the virtual memory of the application, but due to the memory re-assignment, no corruption of the virtual memory occurs. Similar techniques may be applied to cancel write requests.
    Type: Grant
    Filed: October 7, 2013
    Date of Patent: December 30, 2014
    Assignee: Nimble Storage, Inc.
    Inventors: Anil Nanduri, Chunqi Han, Murali Krishna Vishnumolakala
  • Publication number: 20140337561
    Abstract: A storage device made up of multiple storage media is configured such that a flash memory serves as a cache for data stored on a backend storage device having one or more magnetic storage media. The storage device includes a controller configured to maintain a direct mapping from respective backend block addresses of the backend storage device to respective physical addresses of the flash memory. Such mapping is used to translate a backend block address of the backend storage device at which a first block is stored into a physical address of the flash memory at which the first block is cached.
    Type: Application
    Filed: March 21, 2014
    Publication date: November 13, 2014
    Applicant: Nimble Storage, Inc.
    Inventor: Umesh Maheshwari
  • Patent number: 8832330
    Abstract: Described herein are methods, systems and machine-readable media that facilitate an analysis of the contributing factors of storage system latency. The variation over time of the storage system latency is measured, along with the variation over time of the activity of various processes and/or components, the various processes and/or components being potentially contributing factors to the storage system latency. The latency measurements are correlated with the process and/or component measurements. High correlation, while not providing direct evidence of the causation of latency, is nevertheless used to identify likely factors (i.e., processes, components) contributing to latency. The latency measurements are plotted over time, the plot including supplemental information indicating, at any time instant, likely factors contributing to the storage system latency.
    Type: Grant
    Filed: May 23, 2013
    Date of Patent: September 9, 2014
    Assignee: Nimble Storage, Inc.
    Inventor: Larry Lancaster
  • Patent number: 8719488
    Abstract: A storage device made up of multiple storage media is configured such that a flash memory serves as a cache for data stored on a backend storage device having one or more magnetic storage media. The storage device includes a controller configured to maintain a direct mapping from respective backend block addresses of the backend storage device to respective physical addresses of the flash memory. Such mapping is used to translate a backend block address of the backend storage device at which a first block is stored into a physical address of the flash memory at which the first block is cached.
    Type: Grant
    Filed: August 27, 2012
    Date of Patent: May 6, 2014
    Assignee: Nimble Storage, Inc.
    Inventor: Umesh Maheshwari
  • Patent number: 8285918
    Abstract: A storage device made up of multiple storage media is configured such that one such media serves as a cache for data stored on another of such media. The device includes a controller configured to manage the cache by consolidating information concerning obsolete data stored in the cache with information concerning data no longer desired to be stored in the cache, and erase segments of the cache containing one or more of the blocks of obsolete data and the blocks of data that are no longer desired to be stored in the cache to produce reclaimed segments of the cache.
    Type: Grant
    Filed: December 11, 2009
    Date of Patent: October 9, 2012
    Assignee: Nimble Storage, Inc.
    Inventor: Umesh Maheshwari
  • Publication number: 20110145473
    Abstract: A storage device made up of multiple storage media is configured such that one such media serves as a cache for data stored on another of such media. The device includes a controller configured to manage the cache by consolidating information concerning obsolete data stored in the cache with information concerning data no longer desired to be stored in the cache, and erase segments of the cache containing one or more of the blocks of obsolete data and the blocks of data that are no longer desired to be stored in the cache to produce reclaimed segments of the cache.
    Type: Application
    Filed: December 11, 2009
    Publication date: June 16, 2011
    Applicant: NIMBLE STORAGE, INC.
    Inventor: Umesh Maheshwari