Systems and methods for cache endurance
First Claim
1. An apparatus, comprising:
- a cache layer that caches data associated with a backing store in a cache corresponding to a non-volatile solid-state storage device and maintains cache metrics for respective logical identifiers of the backing store in response to monitoring storage requests directed to the respective logical identifiers of the backing store, the cache metrics including cache metrics for cached logical identifiers and non-cached logical identifiers, the cached logical identifiers comprising logical identifiers of the backing store that are admitted into the cache, the non-cached logical identifiers comprising logical identifiers of the backing store that are not admitted into the cache,wherein the cache layer services storage requests directed to cached logical identifiers by use of the cache, and wherein servicing a storage request directed to a particular logical identifier of the backing store, the particular logical identifier comprising a non-cached logical identifier, comprises;
determining whether to admit the particular logical identifier into the cache by comparing a cache metric for the particular address to an admission threshold, the admission threshold to control admission of non-cached logical identifier of the backing store into the cache,admitting the particular logical identifier into the cache in response to the cache metric satisfying the admission threshold, such that the particular logical identifier comprises a cached logical identifier of the backing store to be serviced by use of the cache, andrejecting admission of the particular logical identifier in response to the cache metric failing to satisfy the admission threshold, such that the particular logical identifier remains a non-cached logical identifier to be serviced by use of the backing store; and
a cache coordinator that modifies the admission threshold in response to a coordination message pertaining to the non-volatile solid-state storage device by one of;
increasing the admission threshold and decreasing the admission threshold, wherein the cache layer uses the modified admission threshold to control admission of non-cached logical identifiers of the backing store in response to the coordination message.
9 Assignments
0 Petitions
Accused Products
Abstract
A cache and/or storage module may be configured to reduce write amplification in a cache storage. Cache layer write amplification (CLWA) may occur due to an over-permissive admission policy. The cache module may be configured to reduce CLWA by configuring admission policies to avoid unnecessary writes. Admission policies may be predicated on access and/or sequentiality metrics. Flash layer write amplification (FLWA) may arise due to the write-once properties of the storage medium. FLWA may be reduced by delegating cache eviction functionality to the underlying storage layer. The cache and storage layers may be configured to communicate coordination information, which may be leveraged to improve the performance of cache and/or storage operations.
-
Citations
22 Claims
-
1. An apparatus, comprising:
-
a cache layer that caches data associated with a backing store in a cache corresponding to a non-volatile solid-state storage device and maintains cache metrics for respective logical identifiers of the backing store in response to monitoring storage requests directed to the respective logical identifiers of the backing store, the cache metrics including cache metrics for cached logical identifiers and non-cached logical identifiers, the cached logical identifiers comprising logical identifiers of the backing store that are admitted into the cache, the non-cached logical identifiers comprising logical identifiers of the backing store that are not admitted into the cache, wherein the cache layer services storage requests directed to cached logical identifiers by use of the cache, and wherein servicing a storage request directed to a particular logical identifier of the backing store, the particular logical identifier comprising a non-cached logical identifier, comprises; determining whether to admit the particular logical identifier into the cache by comparing a cache metric for the particular address to an admission threshold, the admission threshold to control admission of non-cached logical identifier of the backing store into the cache, admitting the particular logical identifier into the cache in response to the cache metric satisfying the admission threshold, such that the particular logical identifier comprises a cached logical identifier of the backing store to be serviced by use of the cache, and rejecting admission of the particular logical identifier in response to the cache metric failing to satisfy the admission threshold, such that the particular logical identifier remains a non-cached logical identifier to be serviced by use of the backing store; and a cache coordinator that modifies the admission threshold in response to a coordination message pertaining to the non-volatile solid-state storage device by one of;
increasing the admission threshold and decreasing the admission threshold, wherein the cache layer uses the modified admission threshold to control admission of non-cached logical identifiers of the backing store in response to the coordination message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
-
maintaining input/output (I/O) request characteristics of identifiers corresponding to an address space of a backing store; determining cache metrics for identifiers of the address space of the backing store by use of the determined I/O characteristics, the determined cache metrics including cache metrics for cached identifiers and non-cached identifiers, the cached identifiers comprising identifiers of the address space that are admitted into a cache corresponding to a solid-state storage medium, the non-cached identifiers comprising identifiers of the address space that are not admitted into the cache; servicing I/O requests directed to identifiers of the address space of the backing store, wherein servicing an I/O request directed to an identifier of the address space comprises; servicing the I/O request by use of the cache in response to the identifier comprising a cached identifier, admitting the identifier into the cache in response to a cache metric determined for the identifier satisfying a cache admission threshold such that I/O requests directed to the identifier are serviced by use of the cache, the cache admission threshold configured to control the admission of data into the cache, and retaining the identifier as a non-cached identifier in response to the cache metric determined for the identifier failing to satisfy the cache admission threshold such that I/O requests directed to the identifier are serviced by use of the backing store; and adjusting the cache admission threshold based on coordination information pertaining to the solid-state storage medium, wherein adjusting the cache admission threshold comprises one of increasing the cache admission threshold and decreasing the cache admission threshold. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-program product comprising program code configured for execution by a computing system, wherein the program code is configured to cause the computing system to perform operations, comprising:
-
monitoring I/O requests that pertain to logical addresses of a backing store; maintaining cache metrics for respective logical addresses of the backing store in response to the monitoring the cache metrics comprising cache metrics for cached logical addresses and non-cached logical addresses, the cached logical addresses comprising logical addresses of the backing store that are admitted into a cache corresponding to a non-volatile storage device, the non-cached logical addresses comprising logical addresses of the backing store that are not admitted into the cache; servicing an I/O request that pertains to a logical address of the backing store, wherein servicing the I/O request comprises; determining whether the logical address comprises a cached logical address of the backing store that is admitted into the cache; servicing the I/O request by use of the non-volatile storage device in response to the logical address comprising a cached logical address; and in response to the logical address comprising a non-cached logical address; comparing a cache metric for the logical address to a cache admission criterion, the cache admission controlling admission of non-cached logical addresses into the cache, admitting the logical address into the cache in response to the cache metric satisfying the cache admission criterion, such that the logical address comprises a cached logical address to be serviced by use of the non-volatile storage device, and preventing the logical address from being admitted into the cache in response to the cache metric failing to satisfy the cache admission criterion, such that the logical address remains a non-cached logical address to be serviced by use of the backing store; and modifying the admission criterion used to control admission of non-cached logical addresses of the backing store into the cache based on coordination data corresponding to the non-volatile storage medium. - View Dependent Claims (19, 20, 21, 22)
-
Specification