Patents by Inventor Brian McKean

Brian McKean 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: 11593271
    Abstract: A method, a computing device, and a non-transitory machine-readable medium for modifying cache settings in the array cache are provided. Cache settings are set in an array cache, such that the array cache caches data in an input/output (I/O) stream based on the cache settings. Multiple cache simulators simulate the caching the data from the I/O stream in the array cache using different cache settings in parallel with the array cache. The cache settings in the array cache are replaced with the cache settings from one of the cache simulators based on the determination that the cache simulators increase effectiveness of caching data in the array cache.
    Type: Grant
    Filed: April 19, 2021
    Date of Patent: February 28, 2023
    Assignee: NETAPP, INC.
    Inventors: Brian McKean, Sai Susarla, Ariel Hoffman
  • Publication number: 20210240630
    Abstract: A method, a computing device, and a non-transitory machine-readable medium for modifying cache settings in the array cache are provided. Cache settings are set in an array cache, such that the array cache caches data in an input/output (I/O) stream based on the cache settings, Multiple cache simulators simulate the caching the data from the I/O stream in the array cache using different cache settings in parallel with the array cache. The cache settings in the array cache are replaced with the cache settings from one of the cache simulators based on the determination that the cache simulators increase effectiveness of caching data in the array cache.
    Type: Application
    Filed: April 19, 2021
    Publication date: August 5, 2021
    Inventors: Brian McKean, Sai Susarla, Ariel Hoffman
  • Patent number: 11003583
    Abstract: A method, a computing device, and a non-transitory machine-readable medium for modifying cache settings in the array cache are provided. Cache settings are set in an array cache, such that the array cache caches data in an input/output (I/O) stream based on the cache settings. Multiple cache simulators simulate the caching the data from the I/O stream in the array cache using different cache settings in parallel with the array cache. The cache settings in the array cache are replaced with the cache settings from one of the cache simulators based on the determination that the cache simulators increase effectiveness of caching data in the array cache.
    Type: Grant
    Filed: April 25, 2017
    Date of Patent: May 11, 2021
    Assignee: NETAPP, INC.
    Inventors: Brian McKean, Sai Susarla, Ariel Hoffman
  • Patent number: 10831369
    Abstract: A method and system for synchronizing caches after reboot are described. In a cached environment, a host server stores a cache counter associated with the cache, which can be stored in the cache itself or in another permanent storage device. When data blocks are written to the cache, metadata for each data block is also written to the cache. This metadata includes a block counter based on a value of the cache counter. After a number of data operations are performed in the cache, the value of the cache counter is updated. Then, each data block is selectively updated based on a comparison of the value of the cache counter with a value of the block counter in the metadata for the corresponding data block.
    Type: Grant
    Filed: November 22, 2017
    Date of Patent: November 10, 2020
    Assignee: NETAPP, INC.
    Inventors: Somasundaram Krishnasamy, Brian McKean, Yanling Qi
  • Patent number: 10698818
    Abstract: Systems and techniques for performing a data transaction are disclosed that provide data redundancy using two or more cache devices. In some embodiments, a data transaction is received by a storage controller of a storage system from a host system. The storage controller caches data and/or metadata associated with the data transaction to at least two cache devices that are discrete from the storage controller. After caching, the storage controller provides a transaction completion response to the host system from which the transaction was received. In some examples, each of the at least two cache devices includes a storage class memory. In some examples, the storage controller caches metadata to the at least two cache devices and to a controller cache of the storage controller, while data is cached to the at least two cache devices without being cached in the controller cache.
    Type: Grant
    Filed: February 8, 2018
    Date of Patent: June 30, 2020
    Assignee: NETAPP, INC.
    Inventors: Brian McKean, Gregory Friebus, Sandeep Kumar R. Ummadi, Pradeep Ganesan
  • Publication number: 20180165194
    Abstract: Systems and techniques for performing a data transaction are disclosed that provide data redundancy using two or more cache devices. In some embodiments, a data transaction is received by a storage controller of a storage system from a host system. The storage controller caches data and/or metadata associated with the data transaction to at least two cache devices that are discrete from the storage controller. After caching, the storage controller provides a transaction completion response to the host system from which the transaction was received. In some examples, each of the at least two cache devices includes a storage class memory. In some examples, the storage controller caches metadata to the at least two cache devices and to a controller cache of the storage controller, while data is cached to the at least two cache devices without being cached in the controller cache.
    Type: Application
    Filed: February 8, 2018
    Publication date: June 14, 2018
    Inventors: Brian McKean, Gregory Friebus, Sandeep Kumar R. Ummadi, Pradeep Ganesan
  • Publication number: 20180129421
    Abstract: A method and system for synchronizing caches after reboot are described. In a cached environment, a host server stores a cache counter associated with the cache, which can be stored in the cache itself or in another permanent storage device. When data blocks are written to the cache, metadata for each data block is also written to the cache. This metadata includes a block counter based on a value of the cache counter. After a number of data operations are performed in the cache, the value of the cache counter is updated. Then, each data block is selectively updated based on a comparison of the value of the cache counter with a value of the block counter in the metadata for the corresponding data block.
    Type: Application
    Filed: November 22, 2017
    Publication date: May 10, 2018
    Inventors: Somasundaram Krishnasamy, Brian Mckean, Yanling Qi
  • Patent number: 9916241
    Abstract: Systems and techniques for performing a data transaction are disclosed that provide data redundancy using two or more cache devices. In some embodiments, a data transaction is received by a storage controller of a storage system from a host system. The storage controller caches data and/or metadata associated with the data transaction to at least two cache devices that are discrete from the storage controller. After caching, the storage controller provides a transaction completion response to the host system from which the transaction was received. In some examples, each of the at least two cache devices includes a storage class memory. In some examples, the storage controller caches metadata to the at least two cache devices and to a controller cache of the storage controller, while data is cached to the at least two cache devices without being cached in the controller cache.
    Type: Grant
    Filed: August 14, 2015
    Date of Patent: March 13, 2018
    Assignee: NetApp, Inc.
    Inventors: Brian McKean, Gregory Friebus, Sandeep Kumar R. Ummadi, Pradeep Ganesan
  • Publication number: 20180024936
    Abstract: A method, a computing device, and a non-transitory machine-readable medium for modifying cache settings in the array cache are provided. Cache settings are set in an array cache, such that the array cache caches data in an input/output (I/O) stream based on the cache settings. Multiple cache simulators simulate the caching the data from the I/O stream in the array cache using different cache settings in parallel with the array cache. The cache settings in the array cache are replaced with the cache settings from one of the cache simulators based on the determination that the cache simulators increase effectiveness of caching data in the array cache.
    Type: Application
    Filed: April 25, 2017
    Publication date: January 25, 2018
    Inventors: Brian McKean, Sai Susarla, Ariel Hoffman
  • Patent number: 9836404
    Abstract: Systems and techniques are disclosed for the mirroring of cache data from a storage controller to a storage class memory (“SCM”) device. The storage controller receives a write request, caches the write data, and mirrors the write data to the SCM device instead of to a cache of another storage controller. The SCM device stores the mirrored data in the SCM device. The storage controller acknowledges the write to the host. If the storage controller later fails, an alternate controller assumes ownership of storage volumes associated with the failed controller. Upon receipt of a new read request to the failed controller, the alternate controller checks the SCM device for a cache hit. If there is, the data is read from the SCM device; otherwise, it is read from the storage volume(s). The read data is cached at the alternate controller and then sent on to the requesting host.
    Type: Grant
    Filed: August 14, 2015
    Date of Patent: December 5, 2017
    Assignee: NetApp, Inc.
    Inventors: Sandeep Kumar R. Ummadi, Brian McKean, Gregory Friebus, Pradeep Ganesan
  • Patent number: 9830081
    Abstract: A method and system for synchronizing caches after reboot are described. In a cached environment, a host server stores a cache counter associated with the cache, which can be stored in the cache itself or in another permanent storage device. When data blocks are written to the cache, metadata for each data block is also written to the cache. This metadata includes a block counter based on a value of the cache counter. After a number of data operations are performed in the cache, the value of the cache counter is updated. Then, each data block is selectively updated based on a comparison of the value of the cache counter with a value of the block counter in the metadata for the corresponding data block.
    Type: Grant
    Filed: January 16, 2015
    Date of Patent: November 28, 2017
    Assignee: NetApp, Inc.
    Inventors: Somasundaram Krishnasamy, Brian McKean, Yanling Qi
  • Publication number: 20170097887
    Abstract: Systems and techniques for performing a data transaction are disclosed that provide improved cache performance by pinning recovery information in a controller cache. In some embodiments, a data transaction is received by a storage controller of a storage system. The storage controller determines whether the data transaction is directed to a data stripe classified as frequently accessed. Data associated with the data transaction and recovery information associated with the data transaction are cached in a cache of the storage controller. The recovery information is pinned in the cache based on the data transaction being directed to the data stripe that is classified as frequently accessed, and the data is flushed from the cache independently from the pinned recovery information.
    Type: Application
    Filed: October 2, 2015
    Publication date: April 6, 2017
    Inventors: Brian McKean, Kevin Kidney, Don Humlicek
  • Publication number: 20170046268
    Abstract: Systems and techniques are disclosed for the mirroring of cache data from a storage controller to a storage class memory (“SCM”) device. The storage controller receives a write request, caches the write data, and mirrors the write data to the SCM device instead of to a cache of another storage controller. The SCM device stores the mirrored data in the SCM device. The storage controller acknowledges the write to the host. If the storage controller later fails, an alternate controller assumes ownership of storage volumes associated with the failed controller. Upon receipt of a new read request to the failed controller, the alternate controller checks the SCM device for a cache hit. If there is, the data is read from the SCM device; otherwise, it is read from the storage volume(s). The read data is cached at the alternate controller and then sent on to the requesting host.
    Type: Application
    Filed: August 14, 2015
    Publication date: February 16, 2017
    Inventors: Sandeep Kumar R. Ummadi, Brian McKean, Gregory Friebus, Pradeep Ganesan
  • Publication number: 20170046259
    Abstract: Systems and techniques for performing a data transaction are disclosed that provide data redundancy using two or more cache devices. In some embodiments, a data transaction is received by a storage controller of a storage system from a host system. The storage controller caches data and/or metadata associated with the data transaction to at least two cache devices that are discrete from the storage controller. After caching, the storage controller provides a transaction completion response to the host system from which the transaction was received. In some examples, each of the at least two cache devices includes a storage class memory. In some examples, the storage controller caches metadata to the at least two cache devices and to a controller cache of the storage controller, while data is cached to the at least two cache devices without being cached in the controller cache.
    Type: Application
    Filed: August 14, 2015
    Publication date: February 16, 2017
    Inventors: Brian McKean, Gregory Friebus, Sandeep Kumar R. Ummadi, Pradeep Ganesan
  • Patent number: 9400615
    Abstract: A method, apparatus, and system of a priority command queues for low latency solid state drives are disclosed. In one embodiment, a system of a storage system includes a command sorter to determine a target storage device for at least one of a solid state drive (SSD) command and a hard disk drive (HDD) command and to place the command in a SSD ready queue if the SSD command is targeted to a SSD storage device of the storage system and to place the HDD command to a HDD ready queue if the HDD command is targeted to an HDD storage device of the storage system, a SSD ready queue to queue the SSD command targeted to the SSD storage device, and a HDD ready queue to queue the HDD command targeted to the HDD storage device.
    Type: Grant
    Filed: May 30, 2014
    Date of Patent: July 26, 2016
    Assignee: NETAPP, INC.
    Inventors: Brian McKean, Kevin Kidney, Jeremy Pinson
  • Publication number: 20160210055
    Abstract: A method and system for synchronizing caches after reboot are described. In a cached environment, a host server stores a cache counter associated with the cache, which can be stored in the cache itself or in another permanent storage device. When data blocks are written to the cache, metadata for each data block is also written to the cache. This metadata includes a block counter based on a value of the cache counter. After a number of data operations are performed in the cache, the value of the cache counter is updated. Then, each data block is selectively updated based on a comparison of the value of the cache counter with a value of the block counter in the metadata for the corresponding data block.
    Type: Application
    Filed: January 16, 2015
    Publication date: July 21, 2016
    Inventors: Somasundaram Krishnasamy, Brian McKean, Yanling Qi
  • Publication number: 20160212198
    Abstract: A method and system for host caches managed in a unified manner are described. In an example, a server in a clustered environment designates cache ownership for a cluster application to the cache on one of the hosts. While the application is running on this host, the server monitors data writes made by the application. Upon detecting that the application is running on a different host in the clustered environment, the server can transfer cache ownership to the new host and selectively invalidate cache blocks in the cache of the new host based on the data writes that were previously monitored.
    Type: Application
    Filed: January 16, 2015
    Publication date: July 21, 2016
    Inventors: Somasundaram Krishnasamy, Brian McKean, Yanling Qi
  • Publication number: 20150363319
    Abstract: Examples described herein include a system for storing data. The data storage system retrieves a first set of metadata associated with data stored on a first cache memory, and stores the first set of metadata on a primary storage device. The primary storage device is a backing store for the data stored on the first cache memory. The storage system selectively copies data form the primary storage device to a second cache memory based, at least in part, on the first set of metadata stored on the primary storage device. For some aspects, the storage system may copy the data from the primary storage device to the second cache memory upon determining that the first cache memory is in a failover state.
    Type: Application
    Filed: June 12, 2014
    Publication date: December 17, 2015
    Inventors: Yanling Qi, Brian McKean, Somasundaram Krishnasamy, Dennis Hahn
  • Patent number: 9170740
    Abstract: The present invention is a system and method which allows for a VTL system that supports thin provisioning to implicitly unmap unused storage. Such unmap operations may occur even though the VTL system does not receive any explicit unmap requests from its initiators. For example, if a system administrator knows that once a virtual tape drive of the VTL system has been partially overwritten, all previously written data sets on that virtual tape drive will never again be accessed, the system administrator may configure the VTL system so that it unmaps the entire remainder of the virtual tape drive on the first data overwrite.
    Type: Grant
    Filed: August 6, 2010
    Date of Patent: October 27, 2015
    Assignee: NetApp, Inc.
    Inventors: Ross Zwisler, Brian McKean, Kevin Kidney
  • Patent number: 8856439
    Abstract: A method for selectively storing data identified by a software application in higher performance media may include executing control programming for an operating system and a software application hosted by the operating system. The software application assigns a first importance level to a first portion of data and a second importance level to a second portion of data. A first portion of data having the first importance level assigned by the software application is stored in a first storage medium at the instruction of the operating system. A second portion of data having the second importance level assigned by the software application is stored in a second storage medium at the instruction of the operating system. The second storage medium has at least one performance, reliability, or security characteristic different from the first storage medium.
    Type: Grant
    Filed: December 3, 2010
    Date of Patent: October 7, 2014
    Assignee: LSI Corporation
    Inventors: Bret S. Weber, Jeremy Pinson, Mark Nossokoff, Brian McKean