# US 12,001,338 B2 · Method and system for implementing metadata compression in a virtualization environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,338 B2
- Document ID: US12001338B2
- Status: Granted
- Kind: B2
- Application number: 17/452,834
- Filed: 2021-10-29
- Published: 2023-05-04
- Granted: 2024-06-04
- Earliest claimed: 2021-10-29
- Assignees: Nutanix, Inc.
- Applicants: Nutanix, Inc.
- Inventors: Gaurav Jain; Rohit Ghivdonde; Srihita Goli; Shyam Sankaran; Anoop Jawahar
- Web page: https://patentgrep.com/patent/US12001338B2

## CPC

- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 11/3037: {where the computing system component is a memory, e.g. virtual memory, cache (accessing, addressing or allocating within memory systems or architectures G06F12/00; checking stores for correct operation G11C29/00)}
- G06F 11/3409: {for performance assessment}
- G06F 12/0871: Allocation or management of cache space
- G06F 12/126: with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2201/81: Threshold
- G06F 2201/885: Monitoring specific for caches
- G06F 2212/1016: Performance improvement
- G06F 2212/1021: Hit rate improvement
- G06F 2212/152: Virtualized environment, e.g. logically partitioned system
- G06F 2212/154: Networked environment
- G06F 2212/261: Storage comprising a plurality of storage devices
- G06F 2212/311: In host system
- G06F 2212/401: Compressed data
- G06F 2212/466: Metadata, control data
- G06F 2212/502: using adaptive policy
- G06F 2212/7207: management of metadata or control data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed is an approach for implementing a metadata cache in a virtualization system. A self-adaptive approach is provided to keep compressed and uncompressed entries together in cache. Along with adaptive nature, disclosed is an approach to prioritize critical workloads for the cache.

## Claims

### Claim 1

A method, comprising:
maintaining metadata cache to hold metadata, wherein the metadata cache is local to a node within a virtualization environment, the metadata corresponding to data stored in a storage pool in the virtualization environment, and the metadata is used to perform storage operations upon the data in the storage pool; and
compressing at least a portion of the metadata in the metadata cache that is local to the node in the virtualization environment, wherein compression is performed upon a subset of an ordered set of received metadata entries for a corresponding time period prior to inserting the subset into the metadata cache, the subset being a number of sequentially first metadata entries in the ordered set of metadata entries and a remainder of subsequent metadata entries of the ordered set of metadata entries are inserted into the metadata cache without compression, the number being based on a compression rate for the corresponding time period, and the compression rate being changeable for different time periods.

### Claim 2 (depends on 1)

The method of claim 1, wherein compression for the metadata is adaptively enabled based upon analysis of a cache hit rate and a cache usage level.

### Claim 3 (depends on 2)

The method of claim 2, wherein the compression is enabled when the cache hit rate and cache usage level meets respective threshold levels.

### Claim 4 (depends on 1)

The method of claim 1, wherein a cache hit rate is analyzed to determine a compression rate for the metadata in the metadata cache, wherein the cache hit rate below a first threshold results in an increase in the compression rate and the cache hit rate above a second threshold results in a decrease in the compression rate.

### Claim 5 (depends on 1)

The method of claim 1, wherein a cache tail hit rate is analyzed to determine whether the metadata is to be maintained in the metadata cache.

### Claim 6 (depends on 1)

The method of claim 1, wherein uniform compression is performed upon the metadata for the corresponding time period.

### Claim 7 (depends on 1)

The method of claim 1, wherein a virtual machine (VM) or workload is identified as being critical, and the VM or workload is associated with the metadata, wherein caching is prioritized for the metadata associated with the VM or workload.

### Claim 8 (depends on 7)

The method of claim 7, wherein a user interface is provided for selection of the VM or workload by a user.

### Claim 9 (depends on 7)

The method of claim 7, wherein first metadata associated with the VM or workload identified as being critical is maintained in the metadata cache and second metadata associated with a non-critical VM or workload is evicted from cache.

### Claim 10

A computer program product embodied on a computer usable medium having stored thereon a sequence of instructions which, when executed by a processor causes steps, comprising:
maintaining a metadata cache to hold metadata, wherein the metadata cache is local to a node within a virtualization environment, the metadata corresponding to data stored in a storage pool in the virtualization environment, and the metadata is used to perform storage operations upon the data in the storage pool; and
compressing at least a portion of the metadata in the metadata cache that is local to the node in the virtualization environment, wherein compression is performed upon a subset of an ordered set of received metadata entries for a corresponding time period prior to inserting the subset into the metadata cache, the subset being a number of sequentially first metadata entries in the ordered set of metadata entries and a remainder of subsequent metadata entries of the ordered set of metadata entries are inserted into the metadata cache without compression, the number being based on a compression rate for the corresponding time period, and the compression rate being changeable for different time periods.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein compression for the metadata is adaptively enabled based upon analysis of a cache hit rate and a cache usage level.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein the compression is enabled when the cache hit rate and cache usage level meets respective threshold levels.

### Claim 13 (depends on 10)

The computer program product of claim 10, wherein a cache hit rate is analyzed to determine a compression rate for the metadata in the metadata cache, wherein the cache hit rate below a first threshold results in an increase in the compression rate and the cache hit rate above a second threshold results in a decrease in the compression rate.

### Claim 14 (depends on 10)

The computer program product of claim 10, wherein a cache tail hit rate is analyzed to determine whether the metadata is to be maintained in the metadata cache.

### Claim 15 (depends on 10)

The computer program product of claim 10, wherein uniform compression is performed upon the metadata for the corresponding time period.

### Claim 16 (depends on 10)

The computer program product of claim 10, wherein a virtual machine (VM) or workload is identified as being critical, and the VM or workload is associated with the metadata, wherein caching is prioritized for the metadata associated with the VM or workload.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein a user interface is provided for selection of the VM or workload by a user.

### Claim 18 (depends on 16)

The computer program product of claim 16, wherein first metadata associated with the VM or workload identified as being critical is maintained in the metadata cache and second metadata associated with a non-critical VM or workload is evicted from cache.

### Claim 19

A system for managing a virtual storage system, comprising:
a processor;
a memory for holding code; and
wherein the code includes instructions for maintaining a metadata cache to hold metadata, wherein the metadata cache is local to a node within a virtualization environment, the metadata corresponding to data stored in a storage pool in the virtualization environment, and the metadata is used to perform a storage operation upon the data in the storage pool; and compressing at least a portion of the metadata in the metadata cache that is local to the node in the virtualization environment, wherein compression is performed upon a subset of an ordered set of received metadata entries for a corresponding time period prior to inserting the subset into the metadata cache, the subset being a number of sequentially first metadata entries in the ordered set of metadata entries and a remainder of subsequent metadata entries of the ordered set of metadata entries are inserted into the metadata cache without compression, the number being based on a compression rate for the corresponding time period, and the compression rate being changeable for different time periods.

### Claim 20 (depends on 19)

The system of claim 19, wherein compression for the metadata is adaptively enabled based upon analysis of a cache hit rate and a cache usage level.

### Claim 21 (depends on 20)

The system of claim 20, wherein the compression is enabled when the cache hit rate and cache usage level meets respective threshold levels.

### Claim 22 (depends on 19)

The system of claim 19, wherein a cache hit rate is analyzed to determine a compression rate for the metadata in the metadata cache, wherein the cache hit rate below a first threshold results in an increase in the compression rate and the cache hit rate above a second threshold results in a decrease in the compression rate.

### Claim 23 (depends on 19)

The system of claim 19, wherein a cache tail hit rate is analyzed to determine whether the metadata is to be maintained in the metadata cache.

### Claim 24 (depends on 19)

The system of claim 19, wherein uniform compression is performed upon the metadata for the corresponding time period.

### Claim 25 (depends on 19)

The system of claim 19, wherein a virtual machine (VM) or workload is identified as being critical, and the VM or workload is associated with the metadata, wherein caching is prioritized for the metadata associated with the VM or workload.

### Claim 26 (depends on 25)

The system of claim 25, wherein a user interface is provided for selection of the VM or workload by a user.

### Claim 27 (depends on 25)

The system of claim 25, wherein first metadata associated with the VM or workload identified as being critical is maintained in the metadata cache and second metadata associated with a non-critical VM or workload is evicted from cache.
