Virtual Memory Service Levels for Latency Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual memory systems in data centers face performance issues due to the latency difference between RAM and HDDs, as they struggle to efficiently manage data access and storage across various types of storage devices with different performance levels, leading to suboptimal service levels for applications.

Innovation Solution

Implementing a Translation Lookaside Buffer (TLB) that differentiates between applications based on service levels, selectively evicts and pages data to storage devices based on application priority, and allocates memory and storage resources accordingly, using a page scalar to prioritize high-priority applications and optimize data access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If virtual memory is used to provide more apparent memory capacity by representing physical memory and storage as contiguous addresses, then memory capacity is improved, but performance deteriorates due to latency differences between RAM and HDDs

Engineering Contradiction:
Improvememory capacityVSAvoidaccess latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent segments the virtual memory system into multiple zones based on service levels, with each zone having different storage backend assignments. High-priority applications are assigned to zones that use faster storage devices (SSDs), while low-priority applications use slower storage devices (HDDs). This segmentation allows the system to provide large apparent memory capacity while minimizing latency for critical applications by isolating them from slower storage backends.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If a single storage device type is used for all applications, then device complexity is reduced, but service level differentiation capability deteriorates

Engineering Contradiction:
Improveservice level differentiationVSAvoidstorage management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic storage backend assignment where the storage device type assigned to each application's virtual memory zone can change based on current system conditions and application priorities. The system continuously monitors performance metrics and service level requirements, dynamically adjusting which storage backends serve which virtual memory zones. This dynamic approach enables fine-grained service level differentiation without requiring complex static configuration of multiple storage systems for each application.

Inventive Principle:
Principle #15Dynamics

3Reliability

If high-priority applications are given preferential treatment in memory allocation, then service level for high-priority applications is improved, but memory utilization for low-priority applications deteriorates

Engineering Contradiction:
Improveservice level guaranteeVSAvoidoverall memory utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by assigning different storage backend qualities to different virtual memory zones based on service level requirements. High-priority applications receive zones backed by high-quality fast storage (SSDs) ensuring reliable low-latency access, while low-priority applications are assigned zones backed by lower-quality slower storage (HDDs). This allows the system to guarantee service levels for high-priority applications while still maintaining reasonable memory utilization for low-priority applications by using the slower but larger-capacity HDDs for their data.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10152428B1Virtual memory service levels
Publication Date: 2018.12.11 EMC IP HLDG CO LLC
  • US10152428B1 patent drawing
  • US10152428B1 patent drawing
  • US10152428B1 patent drawing

AI summary

A service level is assigned to each application that uses virtual memory. The service level is used to select a type of memory used when paging-in data. The service level is used to select a type of storage used when paging out data. The service level is used to select a page to evict from memory, e.g. based on service level probabilities. The service level is used to select a number of contiguous pages to page-in, e.g. based on a service level scalar. Accesses (hits) to the pages in memory may be tracked, including contiguous pages that are paged-in based on the scalar. Pages with low hit frequency may be evicted. The scalar for an application may be adjusted when at least some of the contiguous pages are infrequently accessed.