Patents by Inventor Lee J. Sanders
Lee J. Sanders 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: 10210063Abstract: This invention relates to a system, method and computer program product for a drive array controller (for example a RAID6 controller) comprising: a failed strip identifier for identifying a failed strip in a critical stride strip in drive array when the drive array has two or more failed drives, a critical stride is a stride with two (for example) failed strips, a failed strip is a strip in a failed drive, a failed drive is a drive that can no longer be reliably used; a safe strip identifier for identifying a safe strip in a safe stride, a safe stride is a stride with no failed strips (or at least two less than a critical stride), a safe strip is a strip in a safe stride; a drive array writer for writing a recalculated failed strip to the drive array location for the safe strip; and a lending table writer for writing the failed strip location and associated safe strip location to a lending table.Type: GrantFiled: February 5, 2017Date of Patent: February 19, 2019Assignee: International Business Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Patent number: 10210062Abstract: A data storage system comprises a primary storage system comprising an array of drives and a storage controller comprising a stack of storage components. A storage component of the stack operates a data redundancy scheme for the primary storage system. The storage controller stores a set of data on the primary storage system, detects a failure on one or more drives and determines a set of addresses defining data that cannot be completely repaired. Starting with the storage component operating the data redundancy scheme, each storage component queries the storage component directly above with the set of addresses for the data that cannot be completely repaired, obtaining, from one or more storage components, the data that cannot be completely repaired. This obtained data is used to repair the data on the primary storage system with the data from the one or more storage components.Type: GrantFiled: June 8, 2017Date of Patent: February 19, 2019Assignee: International Business Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Publication number: 20190042442Abstract: A data storage system comprises physical storage, cache memory and a processor connected to the physical storage and the cache memory. The processor is arranged to maintain a set of active regions in the cache memory, each active region having a size equal to an integer multiple of an update size of a flash chip within the physical storage, where the integer could be 1. The processor receives requests for one or more blocks of the cache memory from components within the storage system and allocates one or more blocks from an active region in response to a received request. If the processor determines that all blocks in an active region have been allocated and that all allocated blocks within this region have been written to, then the processor destages the content of this region to the physical storage.Type: ApplicationFiled: August 7, 2017Publication date: February 7, 2019Applicant: International Business Machines CorporationInventors: Gordon D. Hutchison, Miles Mulholland, Lee J. Sanders, Ben Sasson, William J. Scales
-
Publication number: 20190018593Abstract: A method for replicating data from a primary site to a secondary site is disclosed. In one embodiment, such a method includes tracking, at a primary site, updates to storage elements of a primary volume over a specified period of time. The method further calculates a size associated with the updates and communicates the size from the primary site to a secondary site. At the secondary site, using the size received from the primary site, the method determines an amount of storage space required to accommodate the updates in a secondary volume. In certain embodiments, this may include taking into account compression or deduplication algorithms at the secondary site. The method allocates the storage space to the secondary volume and replicates, from the primary site to the secondary site, the updates to the secondary volume. A corresponding system and computer program product are also disclosed.Type: ApplicationFiled: July 12, 2017Publication date: January 17, 2019Applicant: International Business Machines CorporationInventors: Gordon D. Hutchison, Miles Mulholland, Lee J. Sanders, Ben Sasson
-
Publication number: 20180373446Abstract: Prioritizing virtual volumes to take offline in a thin provisioning system with garbage collection. The method categorizes virtual volumes based on garbage collection properties of their write behavior and adds metadata indicating a category of a virtual volume. The method schedules virtual volumes to be taken offline by predicting virtual volume space utilization of active virtual volumes for a defined time period in combination with estimated garbage collection in that period to determine a need to take virtual volumes offline. The method selects virtual volumes to take offline by their category to ensure that the virtual volumes producing the most garbage collection unfriendly workloads are taken offline first.Type: ApplicationFiled: February 13, 2018Publication date: December 27, 2018Inventors: Miles Mulholland, Ben Sasson, Gordon Hutchison, Lee J. Sanders
-
Publication number: 20180373444Abstract: Prioritizing virtual volumes to take offline in a thin provisioning system with garbage collection. The method categorizes virtual volumes based on garbage collection properties of their write behavior and adds metadata indicating a category of a virtual volume. The method schedules virtual volumes to be taken offline by predicting virtual volume space utilization of active virtual volumes for a defined time period in combination with estimated garbage collection in that period to determine a need to take virtual volumes offline. The method selects virtual volumes to take offline by their category to ensure that the virtual volumes producing the most garbage collection unfriendly workloads are taken offline first.Type: ApplicationFiled: June 27, 2017Publication date: December 27, 2018Inventors: Miles Mulholland, Ben Sasson, Gordon Hutchison, Lee J. Sanders
-
Publication number: 20180357141Abstract: A data storage system comprises a primary storage system comprising an array of drives and a storage controller comprising a stack of storage components. A storage component of the stack operates a data redundancy scheme for the primary storage system. The storage controller stores a set of data on the primary storage system, detects a failure on one or more drives and determines a set of addresses defining data that cannot be completely repaired. Starting with the storage component operating the data redundancy scheme, each storage component queries the storage component directly above with the set of addresses for the data that cannot be completely repaired, obtaining, from one or more storage components, the data that cannot be completely repaired. This obtained data is used to repair the data on the primary storage system with the data from the one or more storage components.Type: ApplicationFiled: June 8, 2017Publication date: December 13, 2018Applicant: International Business Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Publication number: 20180341561Abstract: A computer-implemented method of determining modified portions of a RAID storage array for use in resynchronizing said RAID storage array after a failure, the computer-implemented method comprising: resolving areas in the RAID storage array that represent space allocated to volumes; resolving which of said allocated volumes comprise gathered writes; and for said allocated volumes that comprise gathered writes, resolving a set of writes that potentially have incomplete parity updates at the time of the failure.Type: ApplicationFiled: May 23, 2017Publication date: November 29, 2018Applicant: International Business Machines CorporationInventors: Gordon D. Hutchison, Miles Mulholland, Lee J. Sanders, Ben Sasson
-
Publication number: 20180329825Abstract: Cache management. It is determined that a cache operation relating to the transfer of data between a cache memory and a data storage system is required. A state of a utilization model is received, the utilization model including requirements for utilization of resources of the data storage system over a time period, and the state indicating a cost of resource utilization associated with cache operations in the current time period. It is determined whether to perform the cache operation, based on the utilization requirements and the state of a utilization model. If the cache operation is not to be performed, and if the cache operation is a write operation, it is determined whether the cache memory is full. If so, the cache operation is managed according to an emergency cache management process; if not, the data associated with the cache operation is maintained in the cache memory.Type: ApplicationFiled: July 24, 2018Publication date: November 15, 2018Inventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Publication number: 20180321858Abstract: A method for maintaining I/O statistics in a tiered storage environment is disclosed. In one embodiment, such a method includes maintaining, by a tiered storage layer, I/O statistics for data storage elements within a storage system. The tiered storage layer migrates data between storage tiers in accordance with the I/O statistics. A data services layer, separate from the tiered storage layer, alters selected data within the storage system and generates a message to the tiered storage layer describing the alteration. The tiered storage layer receives this message and modifies its internal I/O statistics in accordance with the alteration described in the message. A corresponding system and computer program product are also disclosed.Type: ApplicationFiled: May 3, 2017Publication date: November 8, 2018Applicant: International Business Machines CorporationInventors: Gordon D. Hutchison, Miles Mulholland, Lee J. Sanders, Ben Sasson
-
Patent number: 10114568Abstract: A method for regulating a flow of data to backend storage devices includes generating, at a host system, writes intended for a backend storage volume. The method receives the writes into a first level cache of a storage virtualization appliance. The method further determines whether destaging the writes directly from the first level cache to the backend storage volume would cause a limit associated with the backend storage volume to be exceeded. If destaging the writes directly from the first level cache to the backend storage volume would cause the limit to be exceeded, the method destages the writes from the first level cache to a second level cache of the storage virtualization appliance. Otherwise, the method destages the writes directly from the first level cache to the backend storage volume. A corresponding system and computer program product are also disclosed.Type: GrantFiled: October 3, 2016Date of Patent: October 30, 2018Assignee: International Business Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Patent number: 10078591Abstract: A method of managing a data storage cache, comprising: providing a redundant cache comprising first and second caches associated with first and second storage volumes. One of the first and second storage volumes is an active, and one is a passive volume. A write request is received at one of the volumes. If the write request is received at the passive volume, it is forwarded to the active volume. It is determined whether the active volume is a low latency volume. If it is a low latency volume, it is determined whether data exists in the cache associated with the active volume which overlaps with data contained in the write request. If no data exists in that cache which overlaps with data contained in the write request, the write request is processed straight down to said active volume.Type: GrantFiled: September 27, 2016Date of Patent: September 18, 2018Assignee: International Business Machines CorporationInventors: Ian Boden, Nicolas M. Clayton, Lee J. Sanders, William J. Scales, Barry D. Whyte
-
Patent number: 10067874Abstract: It is determined that a cache operation relating to the transfer of data between a cache memory and a data storage system is required. A state of a utilization model is received, the utilization model including requirements for utilization of resources of the data storage system over a time period, and the state indicating a cost of resource utilization associated with cache operations in the current time period. It is determined whether to perform the cache operation, based on the utilization requirements and the state of a utilization model. If the cache operation is not to be performed, and if the cache operation is a write operation, it is determined whether the cache memory is full. If so, the cache operation is managed according to an emergency cache management process; if not, the data associated with the cache operation is maintained in the cache memory.Type: GrantFiled: June 7, 2016Date of Patent: September 4, 2018Assignee: International Business Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Publication number: 20180239674Abstract: A mechanism is provided for backing up metadata in a data storage system. Given metadata stored on the data storage system is implemented by way of a tree structure operable by fixed mapping. A stream of snapshots is taken of leaves in the metadata tree structure of given metadata stored on persistent data storage. The metadata tree structure of the given metadata stored on the persistent data storage is reconstructed on a basis of the stream of snapshots taken for backing up the given metadata stored on the persistent data storage. A journal over the reconstructed metadata tree structure is then replayed. In response to a given status discrepancy being flagged in respect of any given metadata, the status of a given leaf corresponding thereto in the reconstructed data tree structure is modified for consistency with the corresponding journal entry in the journal for that given metadata.Type: ApplicationFiled: February 17, 2017Publication date: August 23, 2018Inventors: Gordon D. Hutchison, Miles Mulholland, Lee J. Sanders, Ben Sasson
-
Patent number: 10055292Abstract: A method for reducing I/Os to a redundant array of independent disks (RAID) is disclosed. In one embodiment, such a method includes receiving a write request comprising new data for overwriting corresponding old data in cache. The method performs an XOR (exclusive OR) operation on the new data and the old data to yield a parity delta and overwrites, in the cache, the old data with the new data. In certain embodiments, the XOR operation is performed prior to overwriting the old data with the new data. The method further stores the parity delta in the cache and links the parity delta to the new data. Upon destaging the new data from the cache, the method provides the parity delta with the new data so that the parity delta may be applied to an existing parity value in the RAID. A corresponding system and computer program product are also disclosed.Type: GrantFiled: October 3, 2016Date of Patent: August 21, 2018Assignee: International Buisness Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Publication number: 20180225184Abstract: This invention relates to a system, method and computer program product for a drive array controller (for example a RAID6 controller) comprising: a failed strip identifier for identifying a failed strip in a critical stride strip in drive array when the drive array has two or more failed drives, a critical stride is a stride with two (for example) failed strips, a failed strip is a strip in a failed drive, a failed drive is a drive that can no longer be reliably used; a safe strip identifier for identifying a safe strip in a safe stride, a safe stride is a stride with no failed strips (or at least two less than a critical stride), a safe strip is a strip in a safe stride; a drive array writer for writing a recalculated failed strip to the drive array location for the safe strip; and a lending table writer for writing the failed strip location and associated safe strip location to a lending table.Type: ApplicationFiled: February 5, 2017Publication date: August 9, 2018Applicant: International Business Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Patent number: 9952929Abstract: A method and system are provided for spare capacity usage for critical redundancy in storage arrays. The method may include monitoring a Redundant Array of Independent Disks (RAID) array to determine whether one or more redundancy units are at a critical level. A redundancy unit may be in a critical level when an additional drive failure will result in loss of data from the redundancy unit. The method may further include identifying available regions in the RAID array which are not allocated to user data in response to determining that a particular redundancy unit is critical. The method may further include determining an available region for the particular redundancy unit, where the available region is in a drive of the RAID array that does not contain data of the particular redundancy unit. The method may further include storing a critical stripe in the available region.Type: GrantFiled: April 21, 2016Date of Patent: April 24, 2018Assignee: International Business Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Publication number: 20180095682Abstract: A method for regulating a flow of data to backend storage devices includes generating, at a host system, writes intended for a backend storage volume. The method receives the writes into a first level cache of a storage virtualization appliance. The method further determines whether destaging the writes directly from the first level cache to the backend storage volume would cause a limit associated with the backend storage volume to be exceeded. If destaging the writes directly from the first level cache to the backend storage volume would cause the limit to be exceeded, the method destages the writes from the first level cache to a second level cache of the storage virtualization appliance. Otherwise, the method destages the writes directly from the first level cache to the backend storage volume. A corresponding system and computer program product are also disclosed.Type: ApplicationFiled: October 3, 2016Publication date: April 5, 2018Applicant: International Business Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Publication number: 20180095824Abstract: A method for reducing I/Os to a redundant array of independent disks (RAID) is disclosed. In one embodiment, such a method includes receiving a write request comprising new data for overwriting corresponding old data in cache. The method performs an XOR (exclusive OR) operation on the new data and the old data to yield a parity delta and overwrites, in the cache, the old data with the new data. In certain embodiments, the XOR operation is performed prior to overwriting the old data with the new data. The method further stores the parity delta in the cache and links the parity delta to the new data. Upon destaging the new data from the cache, the method provides the parity delta with the new data so that the parity delta may be applied to an existing parity value in the RAID. A corresponding system and computer program product are also disclosed.Type: ApplicationFiled: October 3, 2016Publication date: April 5, 2018Applicant: International Business Machines CorporationInventors: John P. Agombar, Ian Boden, Gordon D. Hutchison, Lee J. Sanders
-
Publication number: 20180089080Abstract: A method of managing a data storage cache, comprising: providing a redundant cache comprising first and second caches associated with first and second storage volumes. One of the first and second storage volumes is an active, and one is a passive volume. A write request is received at one of the volumes. If the write request is received at the passive volume, it is forwarded to the active volume. It is determined whether the active volume is a low latency volume. If it is a low latency volume, it is determined whether data exists in the cache associated with the active volume which overlaps with data contained in the write request. If no data exists in that cache which overlaps with data contained in the write request, the write request is processed straight down to said active volume.Type: ApplicationFiled: September 27, 2016Publication date: March 29, 2018Applicant: International Business Machines CorporationInventors: Ian Boden, Nicolas M. Clayton, Lee J. Sanders, William J. Scales, Barry D. Whyte