Patents by Inventor Randolph A. Stern
Randolph A. Stern 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: 20230229328Abstract: 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: ApplicationFiled: March 29, 2023Publication date: July 20, 2023Inventors: Randolph Sterns, Charles Binford, William P. Delaney, Joseph Blount, Reid Kaufmann, Joseph Moore
-
Patent number: 11662929Abstract: 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: GrantFiled: September 1, 2020Date of Patent: May 30, 2023Assignee: NETAPP, INC.Inventors: Randolph Sterns, Charles Binford, William P. Delaney, Joseph Blount, Reid Kaufmann, Joseph Moore
-
Patent number: 11644978Abstract: 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: GrantFiled: October 25, 2021Date of Patent: May 9, 2023Assignee: NETAPP, INC.Inventors: Randolph Sterns, Charles Binford, Joseph Blount, Joseph Moore, William P. Delaney
-
Patent number: 11500592Abstract: 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: GrantFiled: December 9, 2019Date of Patent: November 15, 2022Assignee: NETAPP, INC.Inventors: William P. Delaney, Keith Moyer, Randolph Sterns, Joseph Moore, Joseph Blount, Charles Binford
-
Patent number: 11449239Abstract: 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: GrantFiled: August 24, 2020Date of Patent: September 20, 2022Assignee: NETAPP, INC.Inventors: Randolph Sterns, Charles Binford, William Delaney, Joseph Blount, Keith Moyer, Joseph Moore
-
Publication number: 20220043582Abstract: 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: ApplicationFiled: October 25, 2021Publication date: February 10, 2022Applicant: NETAPP, INC.Inventors: Randolph Sterns, Charles Binford, Joseph Blount, Joseph Moore, William P. Delaney
-
Patent number: 11175831Abstract: 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: GrantFiled: April 25, 2017Date of Patent: November 16, 2021Assignee: NETAPP, INC.Inventors: Randolph Sterns, Charles Binford, Joseph Blount, Joseph Moore, William P. Delaney
-
Publication number: 20200393967Abstract: 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: ApplicationFiled: September 1, 2020Publication date: December 17, 2020Inventors: Randolph Sterns, Charles Binford, William P. Delaney, Joseph Blount, Reid Kaufmann, Joseph Moore
-
Publication number: 20200387315Abstract: 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: ApplicationFiled: August 24, 2020Publication date: December 10, 2020Inventors: Randolph Sterns, Charles Binford, William Delaney, Joseph Blount, Keith Moyer, Joseph Moore
-
Patent number: 10838630Abstract: 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: GrantFiled: April 18, 2016Date of Patent: November 17, 2020Assignee: NETAPP, INC.Inventors: Randolph Sterns, Charles Binford, William Delaney, Joseph Blount, Keith Moyer, Joseph Moore
-
Patent number: 10802740Abstract: 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: GrantFiled: April 21, 2016Date of Patent: October 13, 2020Assignee: NETAPP, INC.Inventors: Randolph Sterns, Charles Binford, William P. Delaney, Joseph Blount, Reid Kaufmann, Joseph Moore
-
Publication number: 20200110540Abstract: 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: ApplicationFiled: December 9, 2019Publication date: April 9, 2020Inventors: William P. Delaney, Keith Moyer, Randolph Sterns, Joseph Moore, Joseph Blount, Charles Binford
-
Patent number: 10503443Abstract: 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: GrantFiled: April 26, 2017Date of Patent: December 10, 2019Assignee: NETAPP, INC.Inventors: William P. Delaney, Keith Moyer, Randolph Sterns, Joseph Blount, Charles Binford, Joseph Moore
-
Patent number: 10366065Abstract: 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: GrantFiled: April 29, 2016Date of Patent: July 30, 2019Assignee: NETAPP, INC.Inventors: William P. Delaney, Joseph Blount, Charles Binford, Joseph Moore, Randolph Sterns, Jeff Stilger
-
Publication number: 20190138517Abstract: A method, a computing device, and a non-transitory machine-readable medium for assessing data segments for garbage collection is provided. In some embodiments, the method includes identifying a plurality of data segments. A first rate at which data within each of the plurality of data segments has been invalidated since a first point in time is determined, and a second rate at which data within each of the plurality of data segments has been invalidated since a second point in time subsequent to the first point in time is determined. The second rate is compared to the first rate for each of the plurality of data segments, and a garbage collection score is assigned to the respective data segment based on the comparison. The garbage collection score may be further based on a utilization of the respective data segment and/or an age of the respective data segment.Type: ApplicationFiled: January 7, 2019Publication date: May 9, 2019Inventors: Joseph Blount, Joseph Moore, William P. Delaney, Randolph Sterns
-
Publication number: 20180364922Abstract: A high availability storage controller monitors characteristics representative of I/O workload related to processor and mirroring channel utilization. These are input into a model of the system, which provides a threshold curve therefore. The storage controller compares the monitored characteristics against the threshold curve. In write-back mirroring mode, the storage controller determines to remain in that mode when the characteristics fall below the threshold curve and switch to write-through mode when the characteristics fall at or above the threshold curve. In write-through mode, the storage controller determines to remain in that mode when the characteristics fall at or above a lower threshold derived from the generated threshold curve and switch to write-back mirroring mode when the characteristics fall below the lower threshold.Type: ApplicationFiled: August 23, 2018Publication date: December 20, 2018Inventor: Randolph Sterns
-
Patent number: 9990261Abstract: Systems and techniques for recovering a storage array are disclosed. These systems and techniques include determining a size corresponding to a storage stripe of the storage array. Pieces assigned to the storage stripe are identified. A storage configuration corresponding to the pieces assigned to the storage stripe is detected. Ordinal information and parity information are determined corresponding to the pieces assigned to the storage stripe. The size determined corresponding to the storage stripe, identification of the pieces assigned to the storage stripe, the storage configuration, the ordinal information, and the parity information is stored in a data store to reconstruct lost or corrupted metadata corresponding to the storage array.Type: GrantFiled: April 29, 2016Date of Patent: June 5, 2018Assignee: NETAPP, INC.Inventors: Joseph Blount, William P. Delaney, Charles Binford, Joseph Moore, Randolph Sterns
-
Publication number: 20180107408Abstract: 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: ApplicationFiled: April 25, 2017Publication date: April 19, 2018Inventors: Randolph Sterns, Charles Binford, Joseph Blount, Joseph Moore, William P. Delaney
-
Patent number: 9946484Abstract: A method includes: communicating input output (I/O) operations between a first storage controller and a storage drive, wherein the storage drive includes a first port and a second port, further wherein the first controller accesses the second port of the storage drive via a second storage controller; measuring bandwidth utilization on a first channel of a plurality of channels between the first storage controller and the storage drive; and in response to measuring the bandwidth utilization, changing a routing scheme for the I/O operations with respect to either the first port or the second port or both.Type: GrantFiled: July 31, 2015Date of Patent: April 17, 2018Assignee: NetApp, Inc.Inventors: Mark Regester, Randolph Sterns
-
Publication number: 20180074723Abstract: 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: ApplicationFiled: April 26, 2017Publication date: March 15, 2018Inventors: William P. Delaney, Keith Moyer, Randolph Sterns, Joseph Blount, Charles Binford, Joseph Moore