US-20260127113-A1 - DYNAMIC CACHE MANAGEMENT RELATING TO ACCESS COUNT
Abstract
A method of cache management, the method comprising: identifying, among a plurality of storage items, storage items having an access count above a first threshold to generate a set of storage items; identifying, among the set of storage items, storage items having an updated access count above a second threshold to generate a subset of storage items, wherein, for each storage item, the updated access count is dependent upon a number of accesses subsequent to generating the set of storage items; and adding the storage items of the subset of storage items to a cache.
Inventors
- Ethan MILLER
- John Colgrove
Assignees
- PURE STORAGE, INC.
Dates
- Publication Date
- 20260507
- Application Date
- 20260105
Claims (20)
- 1 . A method comprising: identifying a set of storage items of a plurality of storage items having a first access count that satisfies a first threshold at a first time; identifying one or more storage items from the set of storage items having a second access count that satisfies a second threshold at a second time; and adding the one or more storage items to a cache.
- 2 . The method of claim 1 , further comprising: decaying the first access count for at least one storage item of the plurality of storage items to generate a decayed access count for the at least one storage item of the plurality of storage items; and incrementing the decayed access count for the at least one storage item of the plurality of storage items to generate an updated access count.
- 3 . The method of claim 2 , wherein decaying the first access count comprises setting the first access count for the at least one storage item of the plurality of storage items to zero.
- 4 . The method of claim 1 wherein identifying the one or more storage items is performed at an interval independent of access of the one or more storage.
- 5 . The method of claim 4 , wherein the interval is a set time interval.
- 6 . The method of claim 4 , wherein the interval is determined based on a cache pressure.
- 7 . The method of claim 1 , wherein the first threshold and the second threshold are a same value.
- 8 . An apparatus comprising: a memory; and a processing device operatively coupled to the memory, configured to: identify a set of storage items of a plurality of storage items having a first access count that satisfies a first threshold at a first time; identify one or more storage items from the set of storage items having a second access count that satisfies a second threshold at a second time; and add the one or more storage items to a cache.
- 9 . The apparatus of claim 8 , the processing device further configured to: decay the first access count for at least one storage item of the plurality of storage items to generate a decayed access count for the at least one storage item of the plurality of storage items; and increment the decayed access count for the at least one storage item of the plurality of storage items to generate an updated access count.
- 10 . The apparatus of claim 9 , wherein to decay the first access count, the processing device is configured to: set the first access count for the at least one storage item of the plurality of storage items to zero.
- 11 . The apparatus of claim 8 , wherein the processing device identifies the one or more storage items at an interval independent of access of the one or more storage items.
- 12 . The apparatus of claim 11 , wherein the interval is a set time interval.
- 13 . The apparatus of claim 11 , wherein the interval is determined based on a cache pressure.
- 14 . The apparatus of claim 8 , wherein the first threshold and the second threshold are a same value.
- 15 . A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device to: identify a set of storage items of a plurality of storage items having a first access count that satisfies a first threshold at a first time; identify one or more storage items from the set of storage items having a second access count that satisfies a second threshold at a second time; and add the one or more storage items to a cache.
- 16 . The non-transitory computer readable storage medium of claim 15 , the processing device further configured to: decay the first access count for at least one storage item of the plurality of storage items to generate a decayed access count for the at least one storage item of the plurality of storage items; and increment the decayed access count for the at least one storage item of the plurality of storage items to generate an updated access count.
- 17 . The non-transitory computer readable storage medium of claim 16 , wherein to decay the first access count, the processing device is configured to: set the first access count for the at least one storage item of the plurality of storage items to zero.
- 18 . The non-transitory computer readable storage medium of claim 15 , wherein the processing device is configured to identify the one or more storage items at an interval independent of access of the one or more storage items by a storage system.
- 19 . The non-transitory computer readable storage medium of claim 18 , wherein the interval is a set time interval.
- 20 . The non-transitory computer readable storage medium of claim 15 , wherein the first threshold and the second threshold are a same value.
Description
CROSS REFERENCE TO RELATED APPLICATIONS This is a continuation application for patent entitled to a filing date and claiming the benefit of earlier-filed U.S. Patent Application No. 18/400,028, filed December 29, 2023, issued as U.S. Patent No. 12,517,827 on January 6, 2026, which is a continuation of U.S. Patent Application No. 17/587,231 filed January 28, 2022, issued as U.S. Patent No. 11,860,780 on January 2, 2024, each of which are herein incorporated by reference in their entirety. BRIEF DESCRIPTION OF DRAWINGS FIG. 1A illustrates a first example system for data storage in accordance with some implementations. FIG. 1B illustrates a second example system for data storage in accordance with some implementations. FIG. 1C illustrates a third example system for data storage in accordance with some implementations. FIG. 1D illustrates a fourth example system for data storage in accordance with some implementations. FIG. 2A is a perspective view of a storage cluster with multiple storage nodes and internal storage coupled to each storage node to provide network attached storage, in accordance with some embodiments. FIG. 2B is a block diagram showing an interconnect switch coupling multiple storage nodes in accordance with some embodiments. FIG. 2C is a multiple level block diagram, showing contents of a storage node and contents of one of the non-volatile solid state storage units in accordance with some embodiments. FIG. 2D shows a storage server environment, which uses embodiments of the storage nodes and storage units of some previous figures in accordance with some embodiments. FIG. 2E is a blade hardware block diagram, showing a control plane, compute and storage planes, and authorities interacting with underlying physical resources, in accordance with some embodiments. FIG. 2F depicts elasticity software layers in blades of a storage cluster, in accordance with some embodiments. FIG. 2G depicts authorities and storage resources in blades of a storage cluster, in accordance with some embodiments. FIG. 3A sets forth a diagram of a storage system that is coupled for data communications with a cloud services provider in accordance with some embodiments of the present disclosure. FIG. 3B sets forth a diagram of a storage system in accordance with some embodiments of the present disclosure. FIG. 3C sets forth an example of a cloud-based storage system in accordance with some embodiments of the present disclosure. FIG. 3D illustrates an exemplary computing device that may be specifically configured to perform one or more of the processes described herein. FIG. 3E illustrates an example of a fleet of storage systems for providing storage services in accordance with some embodiments. FIG. 4 sets forth a flowchart illustrating an example method of storage cache management in accordance with some embodiments of the present disclosure. FIG. 5 sets forth a flowchart illustrating an example method of storage cache management in accordance with some embodiments of the present disclosure. FIG. 6 sets forth a flowchart illustrating an example method of storage cache management in accordance with some embodiments of the present disclosure. FIG. 7 sets forth a flowchart illustrating an example method of storage cache management in accordance with some embodiments of the present disclosure. FIG. 8 sets forth a flowchart illustrating an example method of storage cache management in accordance with some embodiments of the present disclosure. FIG. 9 sets forth a flowchart illustrating an example method of storage cache management in accordance with some embodiments of the present disclosure. DESCRIPTION OF EMBODIMENTS Example methods, apparatus, and products for storage cache management in accordance with embodiments of the present disclosure are described with reference to the accompanying drawings, beginning with FIG. 1A. FIG. 1A illustrates an example system for data storage, in accordance with some implementations. System 100 (also referred to as "storage system" herein) includes numerous elements for purposes of illustration rather than limitation. It may be noted that system 100 may include the same, more, or fewer elements configured in the same or different manner in other implementations. System 100 includes a number of computing devices 164A-B. Computing devices (also referred to as "client devices" herein) may be embodied, for example, a server in a data center, a workstation, a personal computer, a notebook, or the like. Computing devices 164A-B may be coupled for data communications to one or more storage arrays 102A-B through a storage area network ('SAN') 158 or a local area network ('LAN') 160. The SAN 158 may be implemented with a variety of data communications fabrics, devices, and protocols. For example, the fabrics for SAN 158 may include Fibre Channel, Ethernet, Infiniband, Serial Attached Small Computer System Interface ('SAS'), or the like. Data communications protocols for use with SAN 158 may include