Generational Cache for VDI Image Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Display remoting protocols face challenges in delivering a fluid GUI experience while minimizing network bandwidth and CPU resources, particularly in memory-constrained devices like thin clients and mobile devices, where increasing cache size is not feasible.

Innovation Solution

Implementing a generational cache with multiple persistence levels to store remote desktop GUI image blocks, where image blocks are stored based on context and events, such as user interactions and workflow discontinuities, to optimize cache management and reduce bandwidth usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the cache size is increased to store more image data, then the likelihood of storing needed images in the cache increases, but memory-constrained devices like thin clients and mobile devices cannot accommodate larger cache sizes

Engineering Contradiction:
Improvecache hit rateVSAvoidcache memory size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The cache is segmented into multiple persistence levels (L1, L2, L3) with different retention characteristics. L1 is a small fast cache in memory, L2 is a medium-term cache, and L3 is a large long-term cache. This segmentation allows the system to achieve high cache hit rates for frequently accessed images while using minimal memory resources on constrained devices.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a temporal dimension to cache management by creating multiple persistence levels with different time-based retention policies. Instead of a single cache space, images are organized across L1 (short-term), L2 (medium-term), and L3 (long-term) caches, allowing the system to optimize between memory usage and cache effectiveness by distributing images across different temporal layers.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of information

If image data is retransmitted from the server to the client device, then the client device can obtain updated image content, but network bandwidth consumption increases

Engineering Contradiction:
Improveimage data freshnessVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
Loss of informationVSLoss of energy

Solution Approach 1:

The server performs preliminary actions by proactively caching image blocks in the L3 long-term cache before they are potentially needed. When images are minimized or hidden, their image blocks are pre-cached in L3 with extended persistence. This preliminary caching ensures that when windows are restored, the images are already available in the cache hierarchy, eliminating the need for retransmission and reducing network bandwidth consumption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the server monitors client cache status and user interactions. When the server detects that a needed image is already cached by the client device, it instructs the client to use the cached copy. The multi-level cache structure provides feedback about image usage patterns, allowing the system to intelligently determine whether retransmission is necessary or if cached data should be reused.

Inventive Principle:
Principle #23Feedback

3Productivity

If the multi-level cache system caches image blocks based on context and events, then cache management efficiency improves, but the complexity of cache management increases

Engineering Contradiction:
Improvecache management efficiencyVSAvoidcache management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache management system operates autonomously using event-driven logic. When specific events occur (window minimize, maximize, hide, show), the system automatically promotes or demotes image blocks between persistence levels based on predefined rules. The server independently manages the L3 cache population by monitoring client cache status and user interactions, eliminating the need for complex centralized control mechanisms while improving cache efficiency through context-aware decisions.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9448816B2Virtual desktop infrastructure (VDI) caching using context
Publication Date: 2016.09.20 OMNISSA LLC
  • US9448816B2 patent drawing
  • US9448816B2 patent drawing
  • US9448816B2 patent drawing

AI summary

In one embodiment a method for storing a remote desktop GUI image block in a cache including a plurality of persistence levels is described. The method is comprised of maintaining each persistence level in the plurality of persistence levels; identifying an event associated with an update to the remote desktop GUI; determining a context for the event; selecting one of the persistence levels for the event based on the context; and storing an image block corresponding to the update in the selected one of the persistence levels.