Cache eviction of inactive blocks using heat signature

US9727481B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9727481-B2
Application numberUS-201615019909-A
CountryUS
Kind codeB2
Filing dateFeb 9, 2016
Priority dateFeb 17, 2015
Publication dateAug 8, 2017
Grant dateAug 8, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods and systems are presented for evicting or copying-forward blocks in a storage system during garbage collection. In one method, a block status is maintained in a first memory to identify if the block is active or inactive, blocks being stored in segments that are configured to be cacheable in a second memory, a read-cache memory. Whenever an operation on a block is detected making the block inactive in one volume, the system determines if the block is still active in any volume, the block being cached in a first segment in the second memory. When the system detects that the first segment is being evicted from the second memory, the system re-caches the block into a second segment in the second memory if the block status of the block is active and the frequency of access to the block is above a predetermined value.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: maintaining, in a first memory of a storage system, a block status for each of a plurality of blocks, the block status identifying if the corresponding block is active in any volume of the storage system, each block being associated with one or more volumes and each block being stored within one segment of a plurality of segments, wherein the plurality of segments is configured to be cacheable in a second memory that is a read cache memory; whenever an operation on a block is detected that makes the block inactive in at least one volume, determining if the block is active in any volume, the block being cached within a first segment in the second memory; when the block is not active in any volume, setting the block status of the block as inactive; detecting that the first segment is being evicted from the second memory; and re-caching, in response to the eviction of the first segment, the block into a second segment in the second memory when the block status of the block is active and a frequency of access to the block is above a predetermined value. 2. The method as recited in claim 1 , wherein re-caching the block into a second segment includes: creating the second segment; adding the block to the second segment; completing the second segment with other blocks; and caching the second segment in the second memory. 3. The method as recited in claim 1 , wherein the frequency of access to the block is measured via a temperature associated with the block, wherein the temperature is increased when the block is accessed, and the temperature is decreased periodically. 4. The method as recited in claim 1 , wherein the block is active in a volume when the block holds current data for the volume, wherein the block is inactive in the volume when the blocks holds data for the volume that is no longer current. 5. The method as recited in claim 1 , wherein the operation making the block inactive is any one of overwriting the block, deleting the block, or deleting a volume holding the block. 6. The method as recited in claim 1 , wherein the block is not re-cached when the block is not active in any volume. 7. The method as recited in claim 1 , wherein the first memory is a random access memory (RAM), the second memory is a solid state drive (SSD) memory, and a third memory for storing segments is one or more hard disk drives (HDD). 8. The method as recited in claim 1 , wherein a volume is a linear accessible storage area, wherein a unit for reading or writing to the volume is the block. 9. The method as recited in claim 1 , wherein the block is readable without having to read the complete segment where the block resides. 10. The method as recited in claim 1 , wherein at least one segment from the plurality of segments is configured to hold blocks from two or more different volumes. 11. A storage device comprising: a first memory configured to store a block status for each of a plurality of blocks, the block status identifying if the corresponding block is active in any volume of the storage system; a second memory for caching segments from a plurality of segments, the second memory being a read cache memory, wherein each block is associated with one or more volumes and each block is stored within one segment from the plurality of segments; a third memory for storing the plurality of segments; and a processor configured to detect when an operation on a block makes the block inactive in at least one volume, and determine if the block is active in any volume, the block being cached within a first segment in the second memory, wherein whenever an operation on a block is detected that makes the block inactive in at least one volume, the processor determines if the block is active in any volume, the block being cached within a first segment in the second memory; wherein when the block is not active in any volume, the processor sets the block status of the block as inactive; and whenever the processor detects that the first segment is being evicted from the second memory, the processor re-caches the block into a second segment in the second memory if the block status of the block is active and a frequency of access to the block is above a predetermined value. 12. The storage device as recited in claim 11 , wherein re-caching the block into a second segment includes: creating the second segment; adding the block to the second segment; completing the second segment with other blocks; and caching the second segment in the second memory. 13. The storage device as recited in claim 11 , wherein the first memory is a random access memory (RAM), the second memory is a solid state drive (SSD) memory, and the third memory is one or more hard disk drives (HDD). 14. The storage device as recited in claim 11 , wherein data is stored in the second memory and in the third memory in segments. 15. The storage device as recited in claim 11 , wherein the frequency of access to the block is measured via a temperature associated with the block, wherein the temperature is increased when the block is accessed, and the temperature is decreased periodically. 16. The storage device as recited in claim 11 , wherein the block is active in a volume when the block holds current data for the volume, wherein the block is inactive in the volume when the blocks holds data for the volume that is no longer current. 17. A non-transitory computer-readable storage medium storing a computer program, the computer-readable storage medium comprising: program instructions for maintaining, in a first memory of a storage system, a block status for each of a plurality of blocks, the block status identifying if the corresponding block is active in any volume of the storage system, each block being associated with one or more volumes and each block being stored within segment of a plurality of segments, wherein the plurality of segments is configured to be cacheable in a second memory that is a read cache memory; program instructions for, whenever an operation on a block is detected that makes the block inactive in at least one volume, determining if the block is active in any volume, the block being cached within a first segment in the second memory; program instructions for, when the block is not active in any volume, setting the block status of the block as inactive; program instructions for detecting that the first segment is being evicted from the second memory; and program instructions for re-caching, in response to the eviction of the first segment, the block into a second segment in the second memory when the block status of the block is active and a frequency access to the block is above a predetermined value. 18. The storage medium as recited in claim 17 , wherein re-caching the block into a second segment includes: program instructions for creating the second segment; program instructions for adding the block to the second segment; program instructions for completing the second segment with other blocks; and program instructions for caching the second segment in the second memory. 19. The storage medium as recited in claim 17 , wherein the frequency of access to the block is measured via a temperature associated with the block, wherein the temperature is increased when the block is accessed, and the temperature is decreased periodically. 20. The storage medium as recited in claim 17 , wherein the block is active in a volume when the block holds current data for the volume, wherein the block is inacti

Assignees

Inventors

Classifications

  • using selective caching, e.g. bypass · CPC title

  • Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays · CPC title

  • Hit rate improvement · CPC title

  • Details of cache memory · CPC title

  • Caches characterised by their organisation or structure · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9727481B2 cover?
Methods and systems are presented for evicting or copying-forward blocks in a storage system during garbage collection. In one method, a block status is maintained in a first memory to identify if the block is active or inactive, blocks being stored in segments that are configured to be cacheable in a second memory, a read-cache memory. Whenever an operation on a block is detected making the bl…
Who is the assignee on this patent?
Nimble Storage Inc, Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F12/0888. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 08 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).