Patents by Inventor Charles Binford

Charles Binford 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: 20230229328
    Abstract: A method includes: storing a first data extent on a physical medium, wherein the physical medium is divided into a plurality of storage blocks, wherein each of the storage blocks has a size that is different than a size of the first data extent, further wherein the first data extent is stored to a first block of the plurality of storage blocks; generating a descriptor for the first data extent, wherein the descriptor indicates that the first data extent starts within the first block of the plurality of blocks and indicates an offset from the beginning of the first block at which the first data extent starts; and storing the descriptor within the first block.
    Type: Application
    Filed: March 29, 2023
    Publication date: July 20, 2023
    Inventors: Randolph Sterns, Charles Binford, William P. Delaney, Joseph Blount, Reid Kaufmann, Joseph Moore
  • Patent number: 11662929
    Abstract: A method includes: storing a first data extent on a physical medium, wherein the physical medium is divided into a plurality of storage blocks, wherein each of the storage blocks has a size that is different than a size of the first data extent, further wherein the first data extent is stored to a first block of the plurality of storage blocks; generating a descriptor for the first data extent, wherein the descriptor indicates that the first data extent starts within the first block of the plurality of blocks and indicates an offset from the beginning of the first block at which the first data extent starts; and storing the descriptor within the first block.
    Type: Grant
    Filed: September 1, 2020
    Date of Patent: May 30, 2023
    Assignee: NETAPP, INC.
    Inventors: Randolph Sterns, Charles Binford, William P. Delaney, Joseph Blount, Reid Kaufmann, Joseph Moore
  • Patent number: 11644978
    Abstract: A system shares I/O load between controllers in a high availability system. For writes, a controller determines based on one or more factors which controller will flush batches of data from write-back cache to better distribute the I/O burden. The determination occurs after the local storage controller caches the data, mirrors it, and confirms write complete to the host. Once it is determined which storage controller will flush the cache, the flush occurs and the corresponding metadata at a second layer of indirection is updated by that determined storage controller (whether or not it is identified as the owner of the corresponding volume to the host, while the volume owner updates metadata at a first layer of indirection). For a host read, the controller that owns the volume accesses the metadata from whichever controller(s) flushed the data previously and reads the data, regardless of which controller had performed the flush.
    Type: Grant
    Filed: October 25, 2021
    Date of Patent: May 9, 2023
    Assignee: NETAPP, INC.
    Inventors: Randolph Sterns, Charles Binford, Joseph Blount, Joseph Moore, William P. Delaney
  • Patent number: 11500592
    Abstract: A method, a computing device, and a non-transitory machine-readable medium for allocating data compression activities in a storage system are provided. A method includes tracking, by a storage controller, computing resources corresponding to a storage server. The storage controller processes one or more host read requests to access data requested by one or more hosts, the processing of the one or more host read requests including decompressing the data requested by the one or more hosts from the storage server and providing the decompressed data to the one or more hosts. The storage controller determines an amount of available computing resources after processing the one or more host read requests. Based on the amount of available computing resources, the storage controller performs inline compression of a first portion of host write requests and background compression of a second portion of the host write requests.
    Type: Grant
    Filed: December 9, 2019
    Date of Patent: November 15, 2022
    Assignee: NETAPP, INC.
    Inventors: William P. Delaney, Keith Moyer, Randolph Sterns, Joseph Moore, Joseph Blount, Charles Binford
  • Patent number: 11449239
    Abstract: A system for tracking metadata changes and recovering from system interruptions. With host I/O, corresponding metadata incremental changes are aggregated and stored in a write-ahead log before being performed to their in-memory buffers. As those buffers are flushed, checkpoints are created and stored in the log. As the log wraps to the start, older entries are overwritten after they are freed from any remaining dependencies by newer checkpoints. If metadata entities have not created new checkpoints, they are instructed to in order to free up space for new aggregated batches and checkpoints. After an interruption, the wrap point is located in the log. From the wrap point, the log is scanned backwards to provide checkpoints to metadata entities. The log is then scanned forwards to perform changes specified by aggregated batches. The metadata entities' volatile memory states are recovered to what they were before the interruption.
    Type: Grant
    Filed: August 24, 2020
    Date of Patent: September 20, 2022
    Assignee: NETAPP, INC.
    Inventors: Randolph Sterns, Charles Binford, William Delaney, Joseph Blount, Keith Moyer, Joseph Moore
  • Publication number: 20220043582
    Abstract: A system shares I/O load between controllers in a high availability system. For writes, a controller determines based on one or more factors which controller will flush batches of data from write-back cache to better distribute the I/O burden. The determination occurs after the local storage controller caches the data, mirrors it, and confirms write complete to the host. Once it is determined which storage controller will flush the cache, the flush occurs and the corresponding metadata at a second layer of indirection is updated by that determined storage controller (whether or not it is identified as the owner of the corresponding volume to the host, while the volume owner updates metadata at a first layer of indirection). For a host read, the controller that owns the volume accesses the metadata from whichever controller(s) flushed the data previously and reads the data, regardless of which controller had performed the flush.
    Type: Application
    Filed: October 25, 2021
    Publication date: February 10, 2022
    Applicant: NETAPP, INC.
    Inventors: Randolph Sterns, Charles Binford, Joseph Blount, Joseph Moore, William P. Delaney
  • Patent number: 11175831
    Abstract: A system shares I/O load between controllers in a high availability system. For writes, a controller determines based on one or more factors which controller will flush batches of data from write-back cache to better distribute the I/O burden. The determination occurs after the local storage controller caches the data, mirrors it, and confirms write complete to the host. Once it is determined which storage controller will flush the cache, the flush occurs and the corresponding metadata at a second layer of indirection is updated by that determined storage controller (whether or not it is identified as the owner of the corresponding volume to the host, while the volume owner updates metadata at a first layer of indirection). For a host read, the controller that owns the volume accesses the metadata from whichever controller(s) flushed the data previously and reads the data, regardless of which controller had performed the flush.
    Type: Grant
    Filed: April 25, 2017
    Date of Patent: November 16, 2021
    Assignee: NETAPP, INC.
    Inventors: Randolph Sterns, Charles Binford, Joseph Blount, Joseph Moore, William P. Delaney
  • Patent number: 10915405
    Abstract: Methods, non-transitory computer readable media, and computing devices that determine when a storage element of a data storage device has failed. Address(es) mapped to the failed storage element are identified, when the determining indicates that the storage element has failed. Data corresponding to the address(es) is regenerated according to a data loss protection and recovery scheme (e.g., a RAID scheme). The regenerated data is written to other storage element(s) of the data storage device in order to remap the address(es) to the other storage element(s). This technology allows a data storage device (e.g., an SSD) to be repaired in-place following a failure of storage element(s) (e.g., a die) of the data storage device. Advantageously, entire data storage devices do not have to be failed with this technology as a result of a failure of an individual storage element, thereby reducing data storage device failure rates and associated overhead.
    Type: Grant
    Filed: May 26, 2017
    Date of Patent: February 9, 2021
    Assignee: NETAPP, INC.
    Inventors: Tim K. Emami, Charles Binford, Ratnesh Gupta
  • Publication number: 20200393967
    Abstract: A method includes: storing a first data extent on a physical medium, wherein the physical medium is divided into a plurality of storage blocks, wherein each of the storage blocks has a size that is different than a size of the first data extent, further wherein the first data extent is stored to a first block of the plurality of storage blocks; generating a descriptor for the first data extent, wherein the descriptor indicates that the first data extent starts within the first block of the plurality of blocks and indicates an offset from the beginning of the first block at which the first data extent starts; and storing the descriptor within the first block.
    Type: Application
    Filed: September 1, 2020
    Publication date: December 17, 2020
    Inventors: Randolph Sterns, Charles Binford, William P. Delaney, Joseph Blount, Reid Kaufmann, Joseph Moore
  • Publication number: 20200387315
    Abstract: A system for tracking metadata changes and recovering from system interruptions. With host I/O, corresponding metadata incremental changes are aggregated and stored in a write-ahead log before being performed to their in-memory buffers. As those buffers are flushed, checkpoints are created and stored in the log. As the log wraps to the start, older entries are overwritten after they are freed from any remaining dependencies by newer checkpoints. If metadata entities have not created new checkpoints, they are instructed to in order to free up space for new aggregated batches and checkpoints. After an interruption, the wrap point is located in the log. From the wrap point, the log is scanned backwards to provide checkpoints to metadata entities. The log is then scanned forwards to perform changes specified by aggregated batches. The metadata entities' volatile memory states are recovered to what they were before the interruption.
    Type: Application
    Filed: August 24, 2020
    Publication date: December 10, 2020
    Inventors: Randolph Sterns, Charles Binford, William Delaney, Joseph Blount, Keith Moyer, Joseph Moore
  • Patent number: 10838630
    Abstract: A system for tracking metadata changes and recovering from system interruptions. With host I/O, corresponding metadata incremental changes are aggregated and stored in a write-ahead log before being performed to their in-memory buffers. As those buffers are flushed, checkpoints are created and stored in the log. As the log wraps to the start, older entries are overwritten after they are freed from any remaining dependencies by newer checkpoints. If metadata entities have not created new checkpoints, they are instructed to in order to free up space for new aggregated batches and checkpoints. After an interruption, the wrap point is located in the log. From the wrap point, the log is scanned backwards to provide checkpoints to metadata entities. The log is then scanned forwards to perform changes specified by aggregated batches. The metadata entities' volatile memory states are recovered to what they were before the interruption.
    Type: Grant
    Filed: April 18, 2016
    Date of Patent: November 17, 2020
    Assignee: NETAPP, INC.
    Inventors: Randolph Sterns, Charles Binford, William Delaney, Joseph Blount, Keith Moyer, Joseph Moore
  • Patent number: 10802740
    Abstract: A method includes: storing a first data extent on a physical medium, wherein the physical medium is divided into a plurality of storage blocks, wherein each of the storage blocks has a size that is different than a size of the first data extent, further wherein the first data extent is stored to a first block of the plurality of storage blocks; generating a descriptor for the first data extent, wherein the descriptor indicates that the first data extent starts within the first block of the plurality of blocks and indicates an offset from the beginning of the first block at which the first data extent starts; and storing the descriptor within the first block.
    Type: Grant
    Filed: April 21, 2016
    Date of Patent: October 13, 2020
    Assignee: NETAPP, INC.
    Inventors: Randolph Sterns, Charles Binford, William P. Delaney, Joseph Blount, Reid Kaufmann, Joseph Moore
  • Patent number: 10691339
    Abstract: A method, non-transitory computer readable medium, and device that assists with reducing initialization duration and performance impact during configuration of storage drives includes identifying a plurality of new storage drives in a storage system. Next, one or more zeroed out storage drives is identified from the identified plurality of new storage drives based on information present in a data portion of each the identified plurality of new storage drives. A volume group comprising the identified one or more zeroed out drives is created and this created volume group is provided for data operation.
    Type: Grant
    Filed: April 24, 2019
    Date of Patent: June 23, 2020
    Assignee: NETAPP, INC.
    Inventors: Mahmoud K. Jibbe, Charles Binford
  • Publication number: 20200110540
    Abstract: A method, a computing device, and a non-transitory machine-readable medium for allocating data compression activities in a storage system are provided. A method includes tracking, by a storage controller, computing resources corresponding to a storage server. The storage controller processes one or more host read requests to access data requested by one or more hosts, the processing of the one or more host read requests including decompressing the data requested by the one or more hosts from the storage server and providing the decompressed data to the one or more hosts. The storage controller determines an amount of available computing resources after processing the one or more host read requests. Based on the amount of available computing resources, the storage controller performs inline compression of a first portion of host write requests and background compression of a second portion of the host write requests.
    Type: Application
    Filed: December 9, 2019
    Publication date: April 9, 2020
    Inventors: William P. Delaney, Keith Moyer, Randolph Sterns, Joseph Moore, Joseph Blount, Charles Binford
  • Patent number: 10503443
    Abstract: A method, a computing device, and a non-transitory machine-readable medium for allocating data compression activities in a storage system are provided. A method includes tracking, by a storage controller, computing resources corresponding to a storage server. The storage controller processes one or more host read requests to access data requested by one or more hosts, the processing of the one or more host read requests including decompressing the data requested by the one or more hosts from the storage server and providing the decompressed data to the one or more hosts. The storage controller determines an amount of available computing resources after processing the one or more host read requests. Based on the amount of available computing resources, the storage controller performs inline compression of a first portion of host write requests and background compression of a second portion of the host write requests.
    Type: Grant
    Filed: April 26, 2017
    Date of Patent: December 10, 2019
    Assignee: NETAPP, INC.
    Inventors: William P. Delaney, Keith Moyer, Randolph Sterns, Joseph Blount, Charles Binford, Joseph Moore
  • Publication number: 20190250829
    Abstract: A method, non-transitory computer readable medium, and device that assists with reducing initialization duration and performance impact during configuration of storage drives includes identifying a plurality of new storage drives in a storage system. Next, one or more zeroed out storage drives is identified from the identified plurality of new storage drives based on information present in a data portion of each the identified plurality of new storage drives. A volume group comprising the identified one or more zeroed out drives is created and this created volume group is provided for data operation.
    Type: Application
    Filed: April 24, 2019
    Publication date: August 15, 2019
    Inventors: Mahmoud K. Jibbe, Charles Binford
  • Patent number: 10366065
    Abstract: A method for mapping a first address space to a second address space is provided. In some embodiments, the method includes creating a first array of lookup entries and one or more second arrays of metadata entries for maintaining an ordering among the lookup entries using a tree structure. Each of the metadata entries includes one or more data index values identifying a corresponding one of the lookup entries by its position in the first array and one or more metadata index values identifying a corresponding one of the metadata entries by its position in one of the one or more second arrays. The method further includes receiving a request including a lookup value, traversing the tree structure to locate a lookup entry corresponding to the lookup value, and when the lookup value is located among the lookup entries, using the located lookup entry to process the request.
    Type: Grant
    Filed: April 29, 2016
    Date of Patent: July 30, 2019
    Assignee: NETAPP, INC.
    Inventors: William P. Delaney, Joseph Blount, Charles Binford, Joseph Moore, Randolph Sterns, Jeff Stilger
  • Patent number: 10303362
    Abstract: A method, non-transitory computer readable medium, and device that assists with reducing initialization duration and performance impact during configuration of storage drives includes identifying a plurality of new storage drives in a storage system. Next, one or more zeroed out storage drives is identified from the identified plurality of new storage drives based on information present in a data portion of each the identified plurality of new storage drives. A volume group comprising the identified one or more zeroed out drives is created and this created volume group is provided for data operation.
    Type: Grant
    Filed: February 15, 2017
    Date of Patent: May 28, 2019
    Assignee: NETAPP, INC.
    Inventors: Mahmoud K. Jibbe, Charles Binford
  • Patent number: 10180885
    Abstract: A system and method are provided for backing up and recovering data that allows the data to be modified and backed up even while recovery is still in progress. In some embodiments, the method includes performing a data recovery procedure on a computing system. The data recovery procedure includes identifying a set of data objects stored on a recovery system; retrieving the set of data objects; and storing data of the retrieved set of data objects to at least one storage device. Data objects may be prioritized so that data that is in demand is retrieved first. Data that is modified during the data recovery procedure is tracked and backed up to an object-storage system during the data recovery procedure. In some embodiments, backing up the modified data is part of an incremental backup procedure that excludes data objects that contains only unmodified data.
    Type: Grant
    Filed: November 10, 2015
    Date of Patent: January 15, 2019
    Assignee: NETAPP, INC.
    Inventors: Mitch Blackburn, Charles Binford, Reid Kaufmann
  • Publication number: 20180341554
    Abstract: Methods, non-transitory computer readable media, and computing devices that determine when a storage element of a data storage device has failed. Address(es) mapped to the failed storage element are identified, when the determining indicates that the storage element has failed. Data corresponding to the address(es) is regenerated according to a data loss protection and recovery scheme (e.g., a RAID scheme). The regenerated data is written to other storage element(s) of the data storage device in order to remap the address(es) to the other storage element(s). This technology allows a data storage device (e.g., an SSD) to be repaired in-place following a failure of storage element(s) (e.g., a die) of the data storage device. Advantageously, entire data storage devices do not have to be failed with this technology as a result of a failure of an individual storage element, thereby reducing data storage device failure rates and associated overhead.
    Type: Application
    Filed: May 26, 2017
    Publication date: November 29, 2018
    Inventors: Tim K. Emami, Charles Binford, Ratnesh Gupta