Patents by Inventor Adrian Gerhard

Adrian Gerhard 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: 10740238
    Abstract: A storage controller includes a cache destage controller that determines write cache destage rates for each of a plurality of storage arrays as a function of available system resources. When the available system resources are sufficient to satisfy the optimal destage rates for all arrays, the destage rate for each array is set to its optimal rate. When the available system resources are insufficient to satisfy the array rates of all of the arrays, each array is allocated destage rate that is a percentage of the array rates based on the available resources. When the available system resources are insufficient to satisfy the optimal destage rates for all arrays, but sufficient to satisfy the array rates of some of the arrays, a destage rate is determined for each array based on mathematical relationships between sums of the array rates, global rates, optimal rates, and sums of these across arrays.
    Type: Grant
    Filed: November 12, 2018
    Date of Patent: August 11, 2020
    Assignee: International Business Machines Corporation
    Inventors: Adrian Gerhard, Joseph P. Bush
  • Publication number: 20200151099
    Abstract: A storage controller includes a cache destage controller that determines write cache destage rates for each of a plurality of storage arrays as a function of available system resources. When the available system resources are sufficient to satisfy the optimal destage rates for all arrays, the destage rate for each array is set to its optimal rate. When the available system resources are insufficient to satisfy the array rates of all of the arrays, each array is allocated destage rate that is a percentage of the array rates based on the available resources. When the available system resources are insufficient to satisfy the optimal destage rates for all arrays, but sufficient to satisfy the array rates of some of the arrays, a destage rate is determined for each array based on mathematical relationships between sums of the array rates, global rates, optimal rates, and sums of these across arrays.
    Type: Application
    Filed: November 12, 2018
    Publication date: May 14, 2020
    Inventors: Adrian Gerhard, Joseph P. Bush
  • Publication number: 20080046648
    Abstract: In a disk array environment such as a RAID-6 environment, the overall performance overhead associated with exposed mode operations such as resynchronization, rebuild and exposed mode read operations is reduced through increased parallelism. By selecting only subsets of the possible disks required to solve a parity stripe equation for a particular parity stripe, accesses to one or more disks in a disk array may be omitted, thus freeing the omitted disks to perform other disk accesses. In addition, disk accesses associated with different parity stripes may be overlapped such that the retrieval of data necessary for restoring data for one parity stripe is performed concurrently with the storage of restored data for another parity stripe.
    Type: Application
    Filed: October 24, 2007
    Publication date: February 21, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20080040646
    Abstract: A hardware-based finite field multiplier is used to scale incoming data from a disk drive and XOR the scaled data with the contents of a working buffer when performing resync, rebuild and other exposed mode read operations in a RAID or other disk array environment. As a result, RAID designs relying on parity stripe equations incorporating one or more scaling coefficients are able to overlap read operations to multiple drives and thereby increase parallelism, reduce the number of required buffers, and increase performance.
    Type: Application
    Filed: October 16, 2007
    Publication date: February 14, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20080040415
    Abstract: A hardware-based finite field multiplier is used to scale incoming data from a disk drive and XOR the scaled data with the contents of a working buffer when performing resync, rebuild and other exposed mode read operations in a RAID or other disk array environment. As a result, RAID designs relying on parity stripe equations incorporating one or more scaling coefficients are able to overlap read operations to multiple drives and thereby increase parallelism, reduce the number of required buffers, and increase performance.
    Type: Application
    Filed: October 16, 2007
    Publication date: February 14, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20080040416
    Abstract: A hardware-based finite field multiplier is used to scale incoming data from a disk drive and XOR the scaled data with the contents of a working buffer when performing resync, rebuild and other exposed mode read operations in a RAID or other disk array environment. As a result, RAID designs relying on parity stripe equations incorporating one or more scaling coefficients are able to overlap read operations to multiple drives and thereby increase parallelism, reduce the number of required buffers, and increase performance.
    Type: Application
    Filed: October 16, 2007
    Publication date: February 14, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20080040542
    Abstract: A hardware-based finite field multiplier is used to scale incoming data from a disk drive and XOR the scaled data with the contents of a working buffer when performing resync, rebuild and other exposed mode read operations in a RAID or other disk array environment. As a result, RAID designs relying on parity stripe equations incorporating one or more scaling coefficients are able to overlap read operations to multiple drives and thereby increase parallelism, reduce the number of required buffers, and increase performance.
    Type: Application
    Filed: October 16, 2007
    Publication date: February 14, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20080022150
    Abstract: During a parity update of a parity stripe in a disk array, constant values used in finite field arithmetic are algebraically combined in order to reduce the number of buffers and steps needed to update multiple parity values when a change in data occurs. In one implementation, for example, the contents of a buffer that stores the product of a delta value associated with the change in data and a first constant, which is used to update a first parity value, are multiplied by a value representative of the ratio of a second constant, which is used to update a second parity value, and the first constant.
    Type: Application
    Filed: October 4, 2007
    Publication date: January 24, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20070028145
    Abstract: A standalone hardware engine is used on an advanced function storage adaptor to improve the performance of a Reed-Solomon-based RAID-6 implementation. The engine can perform the following operations; generate P and Q parity for a full stripe write, generate updated P and Q parity for a partial stripe write, generate updated P and Q parity for a single write to one drive in a stripe, generate the missing data for one or two drives. The engine requires all the source data to be in the advanced function storage adaptor memory (external DRAM) before it is started, the engine only needs to be invoked once to complete any of the four above listed operations, the engine will read the source data only once and output to memory the full results for any of the listed four operations. In some prior-art systems, for N inputs, there would be 6N+2 memory accesses. With this approach, the same operation would require only N+2 memory accesses.
    Type: Application
    Filed: October 15, 2005
    Publication date: February 1, 2007
    Applicant: ADAPTEC, INC.
    Inventors: Adrian GERHARD, Daniel MOERTL
  • Publication number: 20070028136
    Abstract: Parity Update Footprints (PUFPs) are kept on the disk drives themselves (rather than in nonvolatile RAM) so that the PUFPs will move along with the RAID arrays and data they protect. This permits effective detection of and recovery from many unexpected-power-loss events, and certain other types of failures, even in a clustered-adapter configuration or with a standalone adapter that has no nonvolatile RAM or only a little nonvolatile RAM. Desirably, many Set PUFP and Clear PUFP operations can be coalesced into each write to the block on the disk which contains the PUFPs, thereby improving system performance.
    Type: Application
    Filed: October 15, 2005
    Publication date: February 1, 2007
    Applicant: ADAPTEC, INC.
    Inventors: Carl FORHAN, Robert GALBRAITH, Adrian GERHARD, Timothy LARSON, William MAITLAND
  • Publication number: 20060123268
    Abstract: During a parity update of a parity stripe in a disk array, constant values used in finite field arithmetic are algebraically combined in order to reduce the number of buffers and steps needed to update multiple parity values when a change in data occurs. In one implementation, for example, the contents of a buffer that stores the product of a delta value associated with the change in data and a first constant, which is used to update a first parity value, are multiplied by a value representative of the ratio of a second constant, which is used to update a second parity value, and the first constant.
    Type: Application
    Filed: November 19, 2004
    Publication date: June 8, 2006
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20060123269
    Abstract: When parity checking in a disk array such as a RAID-6 system determines data and parity information is unsynchronized, additional calculations are performed to determine whether the error may be attributed to faulty data on a disk drive or to a more systemic problem such as a faulty controller. In particular, for each particular error detected, the parity generating information is analyzed to determine if each error involves a common disk index. If so, the data can be corrected on that disk; if not other corrective procedures are implemented.
    Type: Application
    Filed: November 19, 2004
    Publication date: June 8, 2006
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20060123270
    Abstract: Data associated with the state of a parity update operation in a disk array system such as a RAID-6 system is stored during performance of the operation so that, in the event the operation is interrupted, recovery may be initiated using the stored data. The stored data may include a state indicator that is indicative of the status of the parity update operation, and snapshot data (e.g., a delta value indicative of a difference between new and old data) captured during the parity update operation.
    Type: Application
    Filed: November 19, 2004
    Publication date: June 8, 2006
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20060123271
    Abstract: A hardware-based finite field multiplier is used to scale incoming data from a disk drive and XOR the scaled data with the contents of a working buffer when performing resync, rebuild and other exposed mode read operations in a RAID or other disk array environment. As a result, RAID designs relying on parity stripe equations incorporating one or more scaling coefficients are able to overlap read operations to multiple drives and thereby increase parallelism, reduce the number of required buffers, and increase performance.
    Type: Application
    Filed: November 19, 2004
    Publication date: June 8, 2006
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
  • Publication number: 20060123312
    Abstract: In a disk array environment such as a RAID-6 environment, the overall performance overhead associated with exposed mode operations such as resynchronization, rebuild and exposed mode read operations is reduced through increased parallelism. By selecting only subsets of the possible disks required to solve a parity stripe equation for a particular parity stripe, accesses to one or more disks in a disk array may be omitted, thus freeing the omitted disks to perform other disk accesses. In addition, disk accesses associated with different parity stripes may be overlapped such that the retrieval of data necessary for restoring data for one parity stripe is performed concurrently with the storage of restored data for another parity stripe.
    Type: Application
    Filed: November 19, 2004
    Publication date: June 8, 2006
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Carl Forhan, Robert Galbraith, Adrian Gerhard