Method, apparatus and computer program product for managing data access
First Claim
1. A method of managing data access, comprising:
- in response to receiving a read request for target data, obtaining an external address of the target data from the read request, the external address being an address unmapped to a storage system, the storage system including a first cache, a second cache, and a mapping layer of a data input/output (I/O) stack, the mapping layer managing a mapping relationship between the external address and an internal address of the storage system;
determining, based on the external address, hit information of the target data in the first cache of the storage system, the first cache storing user data, the first cache being disposed above the mapping layer of the data I/O stack;
determining, based on the hit information, an address from the external address and the internal address for providing the target data, the internal address being determined based on the external address and the mapping relationship, the second cache storing metadata associated with the mapping relationship, the second cache being located between the mapping layer of the data I/O stack and a memory of the storage system,wherein determining the address for providing the target data comprises, in response to the hit information indicating a hit on the target data, determining the external address as an address for providing the target address; and
providing, based on the external address, the target data from the first cache for the read request.
8 Assignments
0 Petitions
Accused Products
Abstract
In response to receiving a read request for target data, an external address of the target data is obtained from the read request, which is an address unmapped to a storage system; hit information of the target data in cache of the storage system is determined based on the external address; and based on the hit information, an address from the external address and an internal address for providing the target data is determined. The internal address is determined based on the external address and a mapping relationship. Therefore, it can shorten the data access path, accelerate the responding speed for the data access request, and allow the cache to prefetch the data more efficiently.
-
Citations
10 Claims
-
1. A method of managing data access, comprising:
-
in response to receiving a read request for target data, obtaining an external address of the target data from the read request, the external address being an address unmapped to a storage system, the storage system including a first cache, a second cache, and a mapping layer of a data input/output (I/O) stack, the mapping layer managing a mapping relationship between the external address and an internal address of the storage system; determining, based on the external address, hit information of the target data in the first cache of the storage system, the first cache storing user data, the first cache being disposed above the mapping layer of the data I/O stack; determining, based on the hit information, an address from the external address and the internal address for providing the target data, the internal address being determined based on the external address and the mapping relationship, the second cache storing metadata associated with the mapping relationship, the second cache being located between the mapping layer of the data I/O stack and a memory of the storage system, wherein determining the address for providing the target data comprises, in response to the hit information indicating a hit on the target data, determining the external address as an address for providing the target address; and providing, based on the external address, the target data from the first cache for the read request. - View Dependent Claims (2, 3)
-
-
4. A method of managing data access, comprising:
-
in response to receiving a write request for target data, obtaining the target data and an external address of the target data from the write request, the external address being an address unmapped to a storage system, the storage system including a first cache, a second cache, and a mapping layer of a data input/output (I/O) stack, the mapping layer managing a mapping relationship between the external address and an internal address of the storage system; storing the target data in association with the external address into the first cache in the storage system, the first cache storing user data, the first cache being disposed above the mapping layer of the data I/O stack; and in response to a cache flush request for the first cache, determining the mapping relationship for mapping the external address to the internal address of the storage system, the second cache storing metadata associated with the mapping relationship, the second cache being located between the mapping layer of the data I/O stack and a memory of the storage system; determining, based on the external address and the mapping relationship, the internal address for storing data in the first cache into a memory of the storage system; and storing the data into the memory of the storage system based on the internal address.
-
-
5. A device for managing data access, comprising:
-
at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions executable by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform acts comprising; in response to receiving a read request for target data, obtaining an external address of the target data from the read request, the external address being an address unmapped to a storage system, the storage system including a first cache, a second cache, and a mapping layer of a data input/output (I/O) stack, the mapping layer managing a mapping relationship between the external address and an internal address of the storage system; determining, based on the external address, hit information of the target data in the first cache of the storage system, the first cache storing user data, the first cache being disposed above the mapping layer of the data I/O stack; determining, based on the hit information, an address from the external address and the internal address for providing the target data, the internal address being determined based on the external address and the mapping relationship, the second cache storing metadata associated with the mapping relationship, the second cache being located between the mapping layer of the data I/O stack and a memory of the storage system, wherein determining the address for providing the target data comprises, in response to the hit information indicating a hit on the target data, determining the external address as an address for providing the target address; and providing, based on the external address, the target data from the first cache for the read request. - View Dependent Claims (6, 7)
-
-
8. A device for managing data access, comprising:
-
at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions executable by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform acts comprising; in response to receiving a write request for target data, obtaining the target data and an external address of the target data from the write request, the external address being an address unmapped to a storage system, the storage system including a first cache, a second cache, and a mapping layer of a data input/output (I/O) stack, the mapping layer managing a mapping relationship between the external address and an internal address of the storage system; storing the target data in association with the external address into the first cache in the storage system, the first cache storing user data, the first cache being disposed above the mapping layer of the data I/O stack; and in response to a cache flush request for the first cache, determining the mapping relationship for mapping the external address to the internal address of the storage system, the second cache storing metadata associated with the mapping relationship, the second cache being located between the mapping layer of the data I/O stack and a memory of the storage system; determining, based on the external address and the mapping relationship, the internal address for storing data in the first cache into a memory of the storage system; and storing the data into the memory of the storage system based on the internal address.
-
-
9. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage data access;
- the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of;
in response to receiving a read request for target data, obtaining an external address of the target data from the read request, the external address being an address unmapped to a storage system, the storage system including a first cache, a second cache, and a mapping layer of a data input/output (I/O) stack, the mapping layer managing a mapping relationship between the external address and an internal address of the storage system; determining, based on the external address, hit information of the target data in the first cache of the storage system, the first cache storing user data, the first cache being disposed above the mapping layer of the data I/O stack; determining, based on the hit information, an address from the external address and the internal address for providing the target data, the internal address being determined based on the external address and the mapping relationship, the second cache storing metadata associated with the mapping relationship, the second cache being located between the mapping layer of the data I/O stack and a memory of the storage system, wherein determining the address for providing the target data comprises, in response to the hit information indicating a hit on the target data, determining the external address as an address for providing the target address; and providing, based on the external address, the target data from the first cache for the read request.
- the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of;
-
10. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage data access;
- the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of;
in response to receiving a write request for target data, obtaining the target data and an external address of the target data from the write request, the external address being an address unmapped to a storage system, the storage system including a first cache, a second cache, and a mapping layer of a data input/output (I/O) stack, the mapping layer managing a mapping relationship between the external address and an internal address of the storage system; storing the target data in association with the external address into the first cache in the storage system, the first cache storing user data, the first cache being disposed above the mapping layer of the data I/O stack; and in response to a cache flush request for the first cache, determining the mapping relationship for mapping the external address to the internal address of the storage system, the second cache storing metadata associated with the mapping relationship, the second cache being located between the mapping layer of the data I/O stack and a memory of the storage system; determining, based on the external address and the mapping relationship, the internal address for storing data in the first cache into a memory of the storage system; and storing the data into the memory of the storage system based on the internal address.
- the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of;
Specification