Patents by Inventor Robert Galbraith
Robert Galbraith 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: 20170031757Abstract: Embodiments described herein include a PSL engine that includes various memory elements that permit the engine to grant locks on particular portions of data in a stripe in a RAID storage system. The PSL engine can assign (or lock) different blocks of the stripe for different operations. The PSL engine can grant locks to multiple operations for the same stripe if the operations access mutually exclusive blocks of the stripe. Each time a new operation is requested, the PSL engine determines whether the operation would affect a stripe data block that is currently assigned to another operation. If the new operation corresponds to a block of data in the stripe that includes data locked by another operation, the PSL engine assigns the new operation to a wait list. In one embodiment, the PSL engine maintains a wait list for each of the stripes in the RAID system.Type: ApplicationFiled: July 30, 2015Publication date: February 2, 2017Inventors: Robert GALBRAITH, Adrian C. GERHARD, Daniel F. MOERTL
-
Publication number: 20170031596Abstract: Embodiments described herein include a PSL engine that includes various memory elements that permit the engine to grant locks on particular portions of data in a stripe in a RAID storage system. The PSL engine can assign (or lock) different blocks of the stripe for different operations. The PSL engine can grant locks to multiple operations for the same stripe if the operations access mutually exclusive blocks of the stripe. Each time a new operation is requested, the PSL engine determines whether the operation would affect a stripe data block that is currently assigned to another operation. If the new operation corresponds to a block of data in the stripe that includes data locked by another operation, the PSL engine assigns the new operation to a wait list. In one embodiment, the PSL engine maintains a wait list for each of the stripes in the RAID system.Type: ApplicationFiled: July 30, 2015Publication date: February 2, 2017Inventors: Robert GALBRAITH, Adrian C. GERHARD, Daniel F. MOERTL
-
Publication number: 20170031758Abstract: Embodiments described herein include a PSL engine that includes various memory elements that permit the engine to grant locks on particular portions of data in a stripe in a RAID storage system. The PSL engine can assign (or lock) different blocks of the stripe for different operations. The PSL engine can grant locks to multiple operations for the same stripe if the operations access mutually exclusive blocks of the stripe. Each time a new operation is requested, the PSL engine determines whether the operation would affect a stripe data block that is currently assigned to another operation. If the new operation corresponds to a block of data in the stripe that includes data locked by another operation, the PSL engine assigns the new operation to a wait list. In one embodiment, the PSL engine maintains a wait list for each of the stripes in the RAID system.Type: ApplicationFiled: August 24, 2015Publication date: February 2, 2017Inventors: Robert GALBRAITH, Adrian C. GERHARD, Daniel F. MOERTL
-
Publication number: 20170031759Abstract: Embodiments described herein include a PSL engine that includes various memory elements that permit the engine to grant locks on particular portions of data in a stripe in a RAID storage system. The PSL engine can assign (or lock) different blocks of the stripe for different operations. The PSL engine can grant locks to multiple operations for the same stripe if the operations access mutually exclusive blocks of the stripe. Each time a new operation is requested, the PSL engine determines whether the operation would affect a stripe data block that is currently assigned to another operation. If the new operation corresponds to a block of data in the stripe that includes data locked by another operation, the PSL engine assigns the new operation to a wait list. In one embodiment, the PSL engine maintains a wait list for each of the stripes in the RAID system.Type: ApplicationFiled: August 24, 2015Publication date: February 2, 2017Inventors: Robert GALBRAITH, Adrian C. GERHARD, Daniel F. MOERTL
-
Publication number: 20160246518Abstract: An apparatus may include a redundant array of independent disks (RAID) array including a plurality of solid state drives (SSDs). The apparatus may further include a RAID array controller coupled to the plurality of SSDs. The RAID array controller may be configured to determine whether one or more logical block addresses (LBAs) of a stripe of the RAID array are unmapped. The one or more LBAs may be associated with one or more SSDs of the plurality of SSDs. The RAID array controller may be configured to determine data corresponding to the stripe based on the determination of whether the one or more LBAs are unmapped. RAID operations (such has Rebuild, Exposed Mode Read, and/or Parity Resync operations) may be optimized based on the knowledge of which LBAs are mapped and unmapped.Type: ApplicationFiled: February 20, 2015Publication date: August 25, 2016Inventors: Robert Galbraith, Andrew D. Walls
-
Publication number: 20160246678Abstract: An apparatus may include a redundant array of independent disks (RAID) array including a plurality of solid state drives (SSDs). The apparatus may further include a RAID array controller coupled to the plurality of SSDs. The RAID array controller may be configured to determine whether one or more logical block addresses (LBAs) of a stripe of the RAID array are unmapped. The one or more LBAs may be associated with one or more SSDs of the plurality of SSDs. The RAID array controller may be configured to determine data corresponding to the stripe based on the determination of whether the one or more LBAs are unmapped. RAID operations (such has Rebuild, Exposed Mode Read, and/or Parity Resync operations) may be optimized based on the knowledge of which LBAs are mapped and unmapped.Type: ApplicationFiled: April 15, 2015Publication date: August 25, 2016Inventors: Robert Galbraith, Andrew D. Walls
-
Publication number: 20150370595Abstract: A method, system and computer program product are provided for implementing dynamic virtualization of a Single Root Input/Output Virtualization (SRIOV) capable Serial Attached SCSI (SAS) adapter. The SRIOV SAS adapter includes a plurality of virtual functions (VFs). Each individual Host Bus Adapter (HBA) resource is enabled to be explicitly assigned to a virtual function (VF); and each VF being enabled to be assigned to a system partition. Multiple VFs are enabled to be assigned to a single system partition.Type: ApplicationFiled: August 31, 2015Publication date: December 24, 2015Inventors: Jesse P. Arroyo, Brian E. Bakke, Ellen M. Bauman, Robert Galbraith, Charles S. Graham, Timothy J. Schimke
-
Publication number: 20150149995Abstract: A method, system and computer program product are provided for implementing dynamic virtualization of a Single Root Input/Output Virtualization (SRIOV) capable Serial Attached SCSI (SAS) adapter. The SRIOV SAS adapter includes a plurality of virtual functions (VFs). Each individual Host Bus Adapter (HBA) resource is enabled to be explicitly assigned to a virtual function (VF); and each VF being enabled to be assigned to a system partition. Multiple VFs are enabled to be assigned to a single system partition.Type: ApplicationFiled: November 22, 2013Publication date: May 28, 2015Applicant: International Business Machines CorporationInventors: Jesse P. Arroyo, Brian E. Bakke, Ellen M. Bauman, Robert Galbraith, Charles S. Graham, Timothy J. Schimke
-
Publication number: 20150100736Abstract: A computing element, system, and method for implementing control structures for a compressed cache in hardware. Embodiments provide a first engine configured to allocate and deallocate virtual memory pages and physical memory pages from pools of available pages to store received data to the compressed cache, a second engine configured to compress received data and store the compressed data. Embodiments also provide for embedding data within the virtual and physical memory pages to indicate page size, type, and data compression.Type: ApplicationFiled: December 12, 2014Publication date: April 9, 2015Inventors: Robert GALBRAITH, Adrian C. GERHARD, Daniel F. MOERTL
-
Publication number: 20150058576Abstract: A computing element, system, and method for implementing control structures for a compressed cache in hardware. Embodiments provide a first engine configured to allocate and deallocate virtual memory pages and physical memory pages from pools of available pages to store received data to the compressed cache, a second engine configured to compress received data and store the compressed data. Embodiments also provide for embedding data within the virtual and physical memory pages to indicate page size, type, and data compression.Type: ApplicationFiled: August 20, 2013Publication date: February 26, 2015Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Robert Galbraith, Adrian C. Gerhard, Daniel F. Moertl
-
Patent number: 8667219Abstract: A method for optimizing locations of physical data accessed by one or more client applications interacting with a storage system, with the storage system comprising at least two redundancy groups having physical memory spaces and data bands. Each of the data bands corresponds to physical data stored on several of the physical memory spaces. A virtualized logical address space includes client data addresses utilizable by the one or more client applications. A storage controller is configured to map the client data addresses onto the data bands, such that a mapping is obtained, wherein the one or more client applications can access physical data corresponding to the data bands.Type: GrantFiled: September 7, 2012Date of Patent: March 4, 2014Assignee: International Business Machines CorporationInventors: Evangelos S. Eleftheriou, Robert Galbraith, Adrian C. Gerhard, Robert Haas, Xiao-Yu Hu, Murali N. Iyer, Ioannis Koltsidas, Timothy J. Larson, Steven P. Norgaard, Roman Pletka
-
Patent number: 8661196Abstract: A method for optimizing locations of physical data accessed by one or more client applications interacting with a storage system, with the storage system comprising at least two redundancy groups having physical memory spaces and data bands. Each of the data bands corresponds to physical data stored on several of the physical memory spaces. A virtualized logical address space includes client data addresses utilizable by the one or more client applications. A storage controller is configured to map the client data addresses onto the data bands, such that a mapping is obtained, wherein the one or more client applications can access physical data corresponding to the data bands.Type: GrantFiled: August 15, 2011Date of Patent: February 25, 2014Assignee: International Business Machines CorporationInventors: Evangelos S. Eleftheriou, Robert Galbraith, Adrian C. Gerhard, Robert Haas, Xiao-Yu Hu, Murali N. Iyer, Ioannis Koltsidas, Timothy J. Larson, Steven P. Norgaard, Roman Pletka
-
Publication number: 20130046930Abstract: A method for optimizing locations of physical data accessed by one or more client applications interacting with a storage system, with the storage system comprising at least two redundancy groups having physical memory spaces and data bands. Each of the data bands corresponds to physical data stored on several of the physical memory spaces. A virtualized logical address space includes client data addresses utilizable by the one or more client applications. A storage controller is configured to map the client data addresses onto the data bands, such that a mapping is obtained, wherein the one or more client applications can access physical data corresponding to the data bands.Type: ApplicationFiled: September 7, 2012Publication date: February 21, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Evangelos S. Eleftheriou, Robert Galbraith, Adrian C. Gerhard, Robert Haas, Xiao-Yu Hu, Murali N. Iyer, Ioannis Koltsidas, Timothy J. Larson, Steven P. Norgaard, Roman Pletka
-
Publication number: 20130046931Abstract: A method for optimizing locations of physical data accessed by one or more client applications interacting with a storage system, with the storage system comprising at least two redundancy groups having physical memory spaces and data bands. Each of the data bands corresponds to physical data stored on several of the physical memory spaces. A virtualized logical address space includes client data addresses utilizable by the one or more client applications. A storage controller is configured to map the client data addresses onto the data bands, such that a mapping is obtained, wherein the one or more client applications can access physical data corresponding to the data bands.Type: ApplicationFiled: August 15, 2011Publication date: February 21, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Evangelos S. Eleftheriou, Robert Galbraith, Adrian C. Gerhard, Robert Haas, Xiao-Yu Hu, Murali N. Iyer, Ioannis Koltsidas, Timothy J. Larson, Steven P. Norgaard, Roman Pletka
-
Publication number: 20080046648Abstract: 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: ApplicationFiled: October 24, 2007Publication date: February 21, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
-
Publication number: 20080040646Abstract: 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: ApplicationFiled: October 16, 2007Publication date: February 14, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
-
Publication number: 20080040415Abstract: 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: ApplicationFiled: October 16, 2007Publication date: February 14, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
-
Publication number: 20080040416Abstract: 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: ApplicationFiled: October 16, 2007Publication date: February 14, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
-
Publication number: 20080040542Abstract: 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: ApplicationFiled: October 16, 2007Publication date: February 14, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Carl Forhan, Robert Galbraith, Adrian Gerhard
-
Publication number: 20080022150Abstract: 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: ApplicationFiled: October 4, 2007Publication date: January 24, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Carl Forhan, Robert Galbraith, Adrian Gerhard