Host-side cache migration
US-2016197986-A1 · Jul 7, 2016 · US
US10296255B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-10296255-B1 |
| Application number | US-201514971220-A |
| Country | US |
| Kind code | B1 |
| Filing date | Dec 16, 2015 |
| Priority date | Dec 16, 2015 |
| Publication date | May 21, 2019 |
| Grant date | May 21, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Described are techniques for performing migration from a source node to a target node. Application data used by an application is migrated from the source node to the target node. I/O operations from the application directed to the application data are sent to the target node. While migrating the application data, first processing is performed on the target node in connection with I/O operations directed to the application data. The first processing includes monitoring read operations directed to the application data. Migrating the application data includes copying a data portion of the application data from the source node to the target node. The data portion has a logical location in the application data determined in accordance with the read operations. The data portion is prefetched by the migrating and copied to the target node prior to the target node receiving a read requesting data of the data portion.
Opening claim text (preview).
What is claimed is: 1. A method of performing migration from a source node to a target node comprising: migrating, from the source node to the target node, application data used by an application, wherein I/O operations from the application directed to the application data are sent to the target node; and while performing said migrating of the application data, performing first processing on the target node in connection with I/O operations directed to the application data, said first processing comprising: monitoring one or more read operations that are directed to the application data and received at the target node; and wherein said migrating includes: selecting a first data portion of the application data to be copied from the source node to the target node, wherein said selecting of the first data portion is performed subsequent to receiving the one or more read operations at the target node, wherein the first data portion has a first logical location in the application data, wherein data stored at the first logical location is not requested for reading by the one or more read operations and the first logical location is determined in accordance with one or more logical locations of requested read data specified by the one or more read operations that are sent from the application and received at the target node prior to selecting the first data portion, wherein the one or more read operations received at the target node prior to selecting the first data portion includes at least a first redirected read operation that is forwarded to the source node for servicing since the first redirected read operation requests read data not yet migrated to the target node; and copying the first data portion of the application data from the source node to the target node, wherein the first data portion, selected in accordance with the one or more read operations that are directed to the application data, sent from the application and are received at the target node, is prefetched and copied from a source copy of the application data stored on non-volatile storage on the source node to the target node prior to the target node receiving a read requesting data of the first data portion. 2. The method of claim 1 , wherein the application has been migrated from the source node to the target node and, while performing said migrating of the application data, the application is executing on the target node and an instance of the application is no longer executing on the source node. 3. The method of claim 1 , wherein the application data is not exposed to the application through the source node. 4. The method of claim 3 , wherein, at a first point in time prior to said migrating copying the first data portion, said migrating is copying a second data portion from a second logical location in the application data, wherein the first logical location and the second logical location are not sequential consecutive logical locations in the application data. 5. The method of claim 4 , wherein, at the first point in time, said migrating is copying the second data portion of the application data based on increasing linear sequential ordering of the logical address space of the application data, and subsequent to the first point in time, said migrating copies the first data portion having the first logical location. 6. The method of claim 1 , wherein a migration engine is on the target node controlling said migrating by pulling the application data from the source node to the target node, and wherein the migration engine tracks which portions of the application data have been migrated from the source node to the target node. 7. The method of claim 6 , wherein the migration engine performs I/O routing for I/Os directed to the application data comprising: receiving a first read that is from the application and is directed to the application data; determining whether first read data requested by the first read has been migrated to the target node; and if it is determined that the first read data has not yet been migrated to the target node, redirecting the first read to the source node for servicing. 8. The method of claim 7 , wherein servicing the first read comprises: sending the first read from the target node to the source node; retrieving, at the source node, the first read data requested by the first read; sending the first read data from the source node to the target node; and returning, by the target node, the first read data to the application. 9. The method of claim 8 , further comprising: storing, on the target node, the first read data on non-volatile storage including the application data that has been migrated from the source node to the target node; and tracking, by the migration engine, that first read data having an associated logical location in the application data has been migrated from the source node to the target node. 10. The method of claim 8 , further comprising: determining whether the first read data has a size that is a multiple of a write size granularity denoting a size unit in which data is written to physical storage; responsive to determining the first read data does have a size that is a multiple of the write size granularity, performing other processing including: storing, on the target node, the first read data on non-volatile storage including the application data that has been migrated from the source node to the target node; and tracking, by the migration engine, that first read data having an associated logical location in the application data has been migrated from the source node to the target node. 11. The method of claim 10 , further comprising: responsive to determining the first read data does not have a size that is a multiple of the write size granularity, performing second processing comprising: tracking an associated logical location of the first read data as a location including data that has not been migrated from the source node to the target node, wherein the associated logical location is tracked as having been a target of a read operation that is included in the one or more read operations of said monitoring for use in connection with determining a next data portion to prefetch from the source node, and wherein the first read data is not stored on non-volatile storage including the application data that has been migrated from the source node to the target node. 12. The method of claim 1 , wherein the migration engine performs said migrating as a background copying operation. 13. The method of claim 1 , wherein the migration engine performs said monitoring of the one or more read operations, and the migration engine uses a prefetch heuristic to determine the first logical location in accordance with the one or more read operations. 14. The method of claim 13 , wherein the one or more read operations includes two read operations received at the target node, a first of the two read operations being directed to a first logical address of the application data and a second of the two read operations being directed to a second logical address of the application data, said prefetch heuristic determining the first data portion that is a logically contiguous segment of the application data to be copied by said migrating, the logically contiguous segment spanning a logical address subrange of the application data from the first logical address to the second logical address. 15. The method of claim 1 , wherein the application data is a logical entity that is any of a logical storage device, a file, and an object. 16. The method of claim 1 , the first processing fur
Replication mechanisms · CPC title
in relation to availability · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Message passing systems or structures, e.g. queues · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.