Patent ID: 7526615

Claim:
A method for caching a block of data, comprising: receiving a request to store the block; determining whether an active cache is able to expand; if the active cache is able to expand: expanding the active cache at runtime to obtain an expanded active cache, wherein expanding the active cache comprises increasing the size of the active cache, and storing the block in the expanded active cache; if the active cache is not able to expand: determining whether evictable blocks are present in a victim cache, wherein the victim cache is structured to comprise a most recently used (MRU) evictable portion and a most frequently used (MFU) evictable portion, wherein the MRU evictable portion comprises blocks that previously had at most one active reference and currently have no active references, and the MFU evictable portion comprises blocks that previously had at least two active references and currently have no active references; if evictable blocks are present in the victim cache: evicting a sufficient number of the evictable blocks from the victim cache to facilitate storing the block in the active cache, wherein the evictable blocks in the victim cache are compressed.