Access-based eviction of blocks from solid state drive cache memory
First Claim
1. A method comprising:
- maintaining, in a first memory, a plurality of segments, each segment including a plurality of blocks, and maintaining, in a second memory, a block temperature for each block of each plurality of blocks, wherein the first memory is a read-cache memory where one segment is written at a time, wherein each block is readable from the first memory without reading a corresponding complete segment, a first block temperature of a first block of the blocks being based on a frequency of access of the first block, and a second block temperature of a second block of the blocks assigned to a predefined temperature value responsive to the second block being pinned to a cache, wherein a segment temperature for each respective segment is based on block temperatures for the corresponding plurality of blocks within the respective segment;
selecting a segment from the plurality of segments with a lowest segment temperature for eviction based on block temperatures from the second memory;
identifying blocks in the selected segment with a block temperature greater than a threshold temperature;
evicting the selected segment from the first memory; and
writing to the first memory a new segment having the identified blocks.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems are presented for allocating CPU cycles among processes in a storage system. One method includes operations for maintaining segments in a first memory, each segment including blocks, and for maintaining a block temperature for each block in a second memory. The first memory is a read-cache where one segment is written at a time, and each block is readable from the first memory without reading the corresponding complete segment. The block temperature is based on the frequency of access to the respective block, and a segment temperature is based on the block temperature of its blocks. Additionally, the segment with the lowest segment temperature is selected for eviction from the second memory, and blocks in the selected segment with a block temperature greater than a threshold temperature are identified. The selected segment is evicted, and a segment with the identified blocks is written to the first memory.
31 Citations
20 Claims
-
1. A method comprising:
-
maintaining, in a first memory, a plurality of segments, each segment including a plurality of blocks, and maintaining, in a second memory, a block temperature for each block of each plurality of blocks, wherein the first memory is a read-cache memory where one segment is written at a time, wherein each block is readable from the first memory without reading a corresponding complete segment, a first block temperature of a first block of the blocks being based on a frequency of access of the first block, and a second block temperature of a second block of the blocks assigned to a predefined temperature value responsive to the second block being pinned to a cache, wherein a segment temperature for each respective segment is based on block temperatures for the corresponding plurality of blocks within the respective segment; selecting a segment from the plurality of segments with a lowest segment temperature for eviction based on block temperatures from the second memory; identifying blocks in the selected segment with a block temperature greater than a threshold temperature; evicting the selected segment from the first memory; and writing to the first memory a new segment having the identified blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
a first memory for storing a plurality of segments, each segment including a plurality of blocks, wherein the first memory is a read-cache memory where one segment is written at a time, wherein each block is readable from the first memory without reading a corresponding complete segment; a second memory for storing a block temperature for each block of each plurality of blocks, a first block temperature of a first block of the blocks being based on a frequency of access of the first block, and a second block temperature of a second block of the blocks assigned to a predefined temperature value responsive to the second block being pinned to a cache, wherein a segment temperature for each respective segment is based on block temperatures for the corresponding plurality of blocks within the respective segment; and a processor to; select a segment from a plurality of segments with a lowest segment temperature for eviction based on block temperatures from the second memory, identify blocks in the selected segment with a block temperature greater than a threshold temperature, evict the selected segment from the first memory, and write a new segment having the identified blocks to the first memory. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-readable storage medium storing computer program instructions that upon execution cause a system to:
-
maintain, in a first memory, a plurality of segments, each segment including a plurality of blocks, and maintain, in a second memory, a block temperature for each block of each plurality of blocks, wherein the first memory is a read-cache memory where one segment is written at a time, wherein each block is readable from the first memory without reading a corresponding complete segment, a first block temperature of a first block of the blocks being based on a frequency of access of the first block, and a second block temperature of a second block of the blocks assigned to a predefined temperature value responsive to the second block being pinned to a cache, wherein a segment temperature for each respective segment is based on block temperatures for the corresponding plurality of blocks within the respective segment; select a segment from the plurality of segments with a lowest segment temperature for eviction based on block temperatures from the second memory; identify blocks in the selected segment with a block temperature greater than a threshold temperature; evict the selected segment from the first memory; and write to the first memory a new segment having the identified blocks. - View Dependent Claims (19, 20)
-
Specification