Patent attributes
In a data storage system, a layered operating stack includes a file system layer, a file cache layer, and a unified cache layer including page descriptors each capable of referencing a data block stored in either/both DRAM or/and flash memory. A reference structure associates file references with corresponding page descriptors. The unified cache layer manages use of the memory for caching data blocks of files being written at the file system layer, including allocation, access, and eviction/destaging. Allocation establishes associative references in the reference structure, and access uses the reference structure to locate cached data blocks based on file references. Eviction/destaging relocates cached data blocks as necessary and includes first-level destaging from DRAM to flash and second-level destaging flash to physical storage. The first-level destaging maintains existing associative references and modifies page descriptors to add references to the flash.