Patent ID: 8250306

Claim:
A method for caching data in a cache memory including logical pages, comprising: upon detecting that a first page is being evicted from the cache memory, adding metadata of the first page to a stable history list upon an admission determination based on capacity state of the stable history list; upon detecting a cache miss for a second page, if the stable history list contains metadata for the second page, then removing the second page metadata from the stable history list and performing a promotion determination for the second page to determine a priority value for the second page metadata and placing the second page in the cache memory based on the priority data; and upon detecting that metadata of a third page is to be evicted from the stable history list, performing an eviction determination to select the third page from the stable history list and evict metadata of the third page from the stable history list by removing a least frequently used (LFU) third page metadata from the stable history list in response to the determination that the metadata of the third page is to be evicted.