Patents by Inventor James L. Hafner
James L. Hafner 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: 20170139832Abstract: In one embodiment, a system includes a cache storage device and a processor and logic integrated with and/or executable by the processor. The logic is configured to receive a plurality of access requests for data in the cache storage device, each request being directed to data in a common cache block descriptor (CBD). The CBD stores metadata corresponding to a storage location of the data in the cache storage device. The logic is also configured to update a request queue to reflect each access request from the plurality of access requests in an order in which individual access requests were received. Moreover, the logic is configured to delay at least some overlapping access requests.Type: ApplicationFiled: November 17, 2015Publication date: May 18, 2017Inventors: Aayush Gupta, James L. Hafner, Mohit Saxena
-
Publication number: 20170077961Abstract: Embodiments relate to dynamically selecting an erasure code. State data is tracked to ascertain frequency of file access. One of at least two erasure codes are selected based on the tracked state data in order to lower data recovery cost. The erasure code may be selected as either a product code or a local reconstruction code. Each erasure code includes a mode that is either a fast code or a compact code. The fast code features a low recovery cost and the compact code features a low storage overhead for less frequently accessed data. Data is encoded with one of the selected erasure codes and one of the modes of the selected erasure code. Data blocks are dynamically converted between the fast and compact codes of the selected erasure code responsive to a workload change.Type: ApplicationFiled: November 29, 2016Publication date: March 16, 2017Applicant: International Business Machines CorporationInventors: Mario Blaum, James L. Hafner, David A. Pease, Mohit Saxena, Mingyuan Xia
-
Patent number: 9595979Abstract: Embodiments relate to a system with multiple erasure codes, and selecting and encoding for a write file with one of the codes to mitigate costs associated with storage recovery. The codes include a fast recovery code for frequently accessed data and a higher storage efficiency code for less frequently accessed data. State data is tracked to ascertain frequency of access to the file. One of the erasure codes is dynamically selected based on the tracked data, with the focus of the code select to lower recovery costs, and the data is encoded with the selected erasure code. Accordingly, the original coding of the write file is subject to change based on the tracked state data.Type: GrantFiled: January 20, 2015Date of Patent: March 14, 2017Assignee: International Business Machines CorporationInventors: Mario Blaum, James L. Hafner, David A. Pease, Mohit Saxena, Mingyuan Xia
-
Publication number: 20160336970Abstract: Embodiments relate to a system with multiple erasure codes, and selecting and encoding for a write file with one of the codes to mitigate costs associated with storage recovery. The codes include a fast recovery code for frequently accessed data and a higher storage efficiency code for less frequently accessed data. State data is tracked to ascertain frequency of access to the file. One of the erasure codes is dynamically selected based on the tracked data, with the focus of the code select to lower recovery costs, and the data is encoded with the selected erasure code. Accordingly, the original coding of the write file is subject to change based on the tracked state data.Type: ApplicationFiled: August 1, 2016Publication date: November 17, 2016Applicant: International Business Machines CorporationInventors: Mario Blaum, James L. Hafner, David A. Pease, Mohit Saxena, Mingyuan Xia
-
Publication number: 20160211869Abstract: Embodiments relate to a system with multiple erasure codes, and selecting and encoding for a write file with one of the codes to mitigate costs associated with storage recovery. The codes include a fast recovery code for frequently accessed data and a higher storage efficiency code for less frequently accessed data. State data is tracked to ascertain frequency of access to the file. One of the erasure codes is dynamically selected based on the tracked data, with the focus of the code select to lower recovery costs, and the data is encoded with the selected erasure code. Accordingly, the original coding of the write file is subject to change based on the tracked state data.Type: ApplicationFiled: January 20, 2015Publication date: July 21, 2016Applicant: International Business Machines CorporationInventors: Mario Blaum, James L. Hafner, David A. Pease, Mohit Saxena, Mingyuan Xia
-
Publication number: 20160197986Abstract: Embodiments relate to host-side cache migration. An aspect is a method that includes determining pre-fetch hints associated with a source cache that is local to a source host machine. The source cache includes pages of cache data for a virtual machine. The pre-fetch hints are sent to a pre-fetch planner to create a pre-fetch plan. The pre-fetch hints are sent based on migration of the virtual machine to a target host machine including a target cache that is local. At the source host machine, a cache migration request is received based on the pre-fetch plan. A first subset of the pages is sent from the source cache through a host-to-host communication channel to the target cache based on the cache migration request. A second subset of the pages is sent from the source cache through a host-storage communication channel to a shared storage to be relayed to the target cache.Type: ApplicationFiled: January 7, 2015Publication date: July 7, 2016Inventors: David D. Chambliss, Aayush Gupta, James L. Hafner, Maohua Lu, Nimrod Megiddo
-
Patent number: 9354918Abstract: Embodiments relate to migrating a local cache state with a virtual machine (VM) migration. An aspect includes detecting that a VM executing on a source host machine has been paused as part of a migration of the VM from the source host machine to a target host machine. A state of a first local cache associated with the VM is identified. The first local cache is accessible by the source host machine and includes data previously fetched from a shared storage. Pre-fetch hints that are based on the state of the first local cache are sent to the target host machine prior to the migration completing. The pre-fetch hints are utilized by the target host machine to fetch, from the shared storage, at least a subset of the data stored in the first local cache for storage in a second local cache accessible by the target host machine.Type: GrantFiled: February 10, 2014Date of Patent: May 31, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Aayush Gupta, James L. Hafner
-
Publication number: 20150229717Abstract: Embodiments relate to migrating a local cache state with a virtual machine (VM) migration. An aspect includes detecting that a VM executing on a source host machine has been paused as part of a migration of the VM from the source host machine to a target host machine. A state of a first local cache associated with the VM is identified. The first local cache is accessible by the source host machine and includes data previously fetched from a shared storage. Pre-fetch hints that are based on the state of the first local cache are sent to the target host machine prior to the migration completing. The pre-fetch hints are utilized by the target host machine to fetch, from the shared storage, at least a subset of the data stored in the first local cache for storage in a second local cache accessible by the target host machine.Type: ApplicationFiled: February 10, 2014Publication date: August 13, 2015Applicant: International Business Machines CorporationInventors: Aayush Gupta, James L. Hafner
-
Patent number: 9058291Abstract: Embodiments of the invention relate to erasure correcting codes for storage arrays. An aspect of the invention includes receiving a read stripe from a plurality of storage devices. The read stripe includes a block of pages arranged in rows and columns, with each column corresponding to one of the storage devices. The pages include data pages and parity pages, with the number of parity pages at least one more than the number of rows and not a multiple of the number of rows. The method further includes reconstructing at least one erased page in response to determining that the read stripe includes the at least one erased page and that the number of erased pages is less than or equal to the number of parity pages. The reconstructing is responsive to a multiple erasure correcting code and to the block of pages. The reconstructing results in a recovered read stripe.Type: GrantFiled: February 28, 2011Date of Patent: June 16, 2015Assignee: International Business Machines CorporationInventors: Mario Blaum, James L. Hafner, Steven R. Hetzler, Daniel F. Smith
-
Patent number: 8918701Abstract: Embodiments of the invention relate to storing data in a storage array. An aspect of the invention includes receiving write data. The write data is arranged into “r” rows and “n” columns of pages, with each page including a plurality of sectors. The write data is encoded using a plurality of horizontal and vertical erasure correcting codes on the pages. The encoding allows recovery from up to tr erasures in any one of the r rows, up to tr?1 erasures in any one of the remaining r?1 rows, up to tr?2 erasures in any one of the remaining r?2 rows, and so on, such that the encoding allows recovery from up to t1 erasures in the last remaining row. Encoded write data is output from the encoding. The encoded write data is written as a write stripe across n storage devices in a storage array.Type: GrantFiled: July 31, 2012Date of Patent: December 23, 2014Assignee: SK Hynix Inc.Inventors: Mario Blaum, James L. Hafner, Steven R. Hetzler
-
Patent number: 8874995Abstract: Embodiments of the invention relate to storing data in a storage array. An aspect of the invention includes receiving and arranging read data in array that includes m rows and n columns of entries, with each entry including at least one sector. In the array, mr+s locations are assigned to parity entries, such that each row has at least r parity entries. The parity entries correspond to a partial-maximum distance separable (PMDS) code that allows recovery from up to r erasures in each of the m rows as well as s additional erasures in any locations in the data array, where s is an integer greater than zero. The write data and the associated parity entries are written to the set of storage devices.Type: GrantFiled: February 2, 2012Date of Patent: October 28, 2014Assignee: International Business Machines CorporationInventors: Mario Blaum, James L. Hafner, Steven R. Hetzler
-
Patent number: 8869006Abstract: Embodiments of the invention relate to correcting erasures in a storage array. A read stripe is received from a plurality of n storage devices. The read stripe includes an array of entries arranged in m rows and n columns with each column corresponding to one of the storage devices. The entries include data entries and mr+s parity entries. Each row contains at least r parity entries generated from the data entries according to a partial maximum distance separable (PMDS) code. It is determined that the read stripe includes at least one erased entry, at most mr+s erased entries and that no row has more than r+s erased entries. The erased entries are reconstructed from the non-erased entries, resulting in a recovered read stripe.Type: GrantFiled: July 18, 2012Date of Patent: October 21, 2014Assignee: International Business machines CorporationInventors: Mario Blaum, James L. Hafner, Steven R. Hetzler
-
Patent number: 8836281Abstract: According to one embodiment of the present invention, a computer manages an electric vehicle charging transaction. A set of principals is identified associated with the charging transaction for an electric vehicle. A principal is an entity having an interest in the charging transaction. Electric vehicle charging information is retrieved from a set of sources. An energy transaction plan is generated during a pre-charge phase using the electric vehicle charging information and based on preferences of one or more principals to govern the charging transaction. The computer initiates a charging phase of the electric vehicle charging transaction for an electric vehicle connected to a charging station according to the energy transaction plan. The charging phase comprises charging the electric vehicle with electricity, storing electricity in the electric vehicle, and removing electricity to de-charge the electric vehicle.Type: GrantFiled: March 27, 2012Date of Patent: September 16, 2014Assignee: International Business Machines CorporationInventors: Ronald Ambrosio, Erica Haefner Ferro, James L. Hafner, Colin G. Harrison, Melissa W. O'Mara, Allan J. Schurr, Mark W. Trekell, Paul S. Williamson
-
Patent number: 8775729Abstract: Provided are a computer program product, system, and method for prefetching data tracks and parity data to use for destaging updated tracks. A write request is received including at least one updated track to the group of tracks. The at least one updated track is stored in a first cache device. A prefetch request is sent to the at least one sequential access storage device to prefetch tracks in the group of tracks to a second cache device. A read request is generated to read the prefetch tracks following the sending of the prefetch request. The read prefetch tracks returned to the read request from the second cache device are stored in the first cache device. New parity data is calculated from the at least one updated track and the read prefetch tracks.Type: GrantFiled: April 27, 2012Date of Patent: July 8, 2014Assignee: International Business Machines CorporationInventors: Michael T. Benhase, Binny S. Gill, Lokesh M. Gupta, James L. Hafner
-
Patent number: 8762650Abstract: Provided are a computer program product, sequential access storage device, and method for managing data in a sequential access storage device receiving read requests and write requests from a system with respect to tracks stored in a sequential access storage medium. A prefetch request indicates prefetch tracks in the sequential access storage medium to read from the sequential access storage medium. The accessed prefetch tracks are cached in a non-volatile storage device integrated with the sequential access storage device, wherein the non-volatile storage device is a faster access device than the sequential access storage medium. A read request is received for the prefetch tracks following the caching of the prefetch tracks, wherein the prefetch request is designated to be processed at a lower priority than the read request with respect to the sequential access storage medium. The prefetch tracks are returned from the non-volatile storage device to the read request.Type: GrantFiled: May 24, 2012Date of Patent: June 24, 2014Assignee: International Business Machines CorporationInventors: Michael T. Benhase, Binny S. Gill, Lokesh M. Gupta, James L. Hafner
-
Patent number: 8656088Abstract: Embodiments of the invention relate to throttling accesses to a flash memory device. The flash memory device is part of a storage system that includes the flash memory device and a second memory device. The throttling is performed by logic that is external to the flash memory device and includes calculating a throttling factor responsive to an estimated remaining lifespan of the flash memory device. It is determined whether the throttling factor exceeds a threshold. Data is written to the flash memory device in response to determining that the throttling factor does not exceed the threshold. Data is written to the second memory device in response to determining that the throttling factor exceeds the threshold.Type: GrantFiled: May 20, 2011Date of Patent: February 18, 2014Assignee: International Business Machines CorporationInventors: Wendy A. Belluomini, Binny S. Gill, James L. Hafner, Steven R. Hetzler, Eyal Lotem, Venu G. Nayar, Assaf Nitzan, Edi Shmueli, Daniel F. Smith
-
Patent number: 8650354Abstract: Provided are a computer program product, sequential access storage device, and method for managing data in a sequential access storage device receiving read requests and write requests from a system with respect to tracks stored in a sequential access storage medium. A prefetch request indicates prefetch tracks in the sequential access storage medium to read from the sequential access storage medium. The accessed prefetch tracks are cached in a non-volatile storage device integrated with the sequential access storage device, wherein the non-volatile storage device is a faster access device than the sequential access storage medium. A read request is received for the prefetch tracks following the caching of the prefetch tracks, wherein the prefetch request is designated to be processed at a lower priority than the read request with respect to the sequential access storage medium. The prefetch tracks are returned from the non-volatile storage device to the read request.Type: GrantFiled: July 22, 2011Date of Patent: February 11, 2014Assignee: International Business Machines CorporationInventors: Michael T. Benhase, Binny S. Gill, Lokesh M. Gupta, James L. Hafner
-
Patent number: 8645619Abstract: Embodiments of the invention relate to throttling accesses to a flash memory device. The flash memory device is part of a storage system that includes the flash memory device and a second memory device. The throttling is performed by logic that is external to the flash memory device and includes calculating a throttling factor responsive to an estimated remaining lifespan of the flash memory device. It is determined whether the throttling factor exceeds a threshold. Data is written to the flash memory device in response to determining that the throttling factor does not exceed the threshold. Data is written to the second memory device in response to determining that the throttling factor exceeds the threshold.Type: GrantFiled: July 19, 2012Date of Patent: February 4, 2014Assignee: International Business Machines CorporationInventors: Wendy A. Belluomini, Binny S. Gill, James L. Hafner, Steven R. Hetzler, Eyal Lotern, Venu G. Nayar, Assaf Nitzan, Edi Shmueli, Daniel F. Smith
-
Patent number: 8631190Abstract: Provided are a computer program product, system, and method for prefetching data tracks and parity data to use for destaging updated tracks. A write request is received including at least one updated track to the group of tracks. The at least one updated track is stored in a first cache device. A prefetch request is sent to the at least one sequential access storage device to prefetch tracks in the group of tracks to a second cache device. A read request is generated to read the prefetch tracks following the sending of the prefetch request. The read prefetch tracks returned to the read request from the second cache device are stored in the first cache device. New parity data is calculated from the at least one updated track and the read prefetch tracks.Type: GrantFiled: July 22, 2011Date of Patent: January 14, 2014Assignee: International Business Machines CorporationInventors: Michael T. Benhase, Binny S. Gill, Lokesh M. Gupta, James L. Hafner
-
Patent number: 8601348Abstract: Provided are a method, system, and article of manufacture for error checking addressable blocks in storage. Addressable blocks of data are stored in a storage in stripes, wherein each stripe includes a plurality of data blocks for one of the addressable blocks and at least one checksum block including checksum data for the addressable block. A write request is received to modify data in one of the addressable blocks. The write and updating the checksum are performed in the stripe having the modified addressable block. An indication is made to perform an error checking operation on the stripe for the modified addressable block in response to the write request, wherein the error checking operation reads the data blocks and the checksum in the stripe to determine if the checksum data is accurate. An error handling operation is initiated in response to determining that the checksum data is not accurate.Type: GrantFiled: January 15, 2013Date of Patent: December 3, 2013Assignee: International Business Machines CorporationInventors: James L. Hafner, David R. Kahler, Robert A. Kubo, David F. Mannenbach, Karl A. Nielsen, James A. O'Connor, Richard B. Stelmach, Krishnakumar R. Surugucchi