Client-Side Persistent Caching Framework with Segmented Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web-based applications face challenges in providing responsiveness and rich features due to the need for network round-trips and computational processing, and client-side caching faces issues with cache eviction, performance, flexibility, and security, especially in persistent caching which consumes excessive memory and is slower than in-memory storage.

Innovation Solution

A system architecture that includes a client application with a transient in-memory cache and a persistent cache, utilizing a Storage Manager to synchronize data between the two, with cache eviction policies enforced during synchronization, and encryption for secure data storage, allowing for efficient and flexible client-side caching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Duration of action of stationary object

If data is cached in persistent memory on the client device, then the cache persists after application closure and reduces network round-trips, but access speed becomes orders of magnitude slower than in-memory storage

Engineering Contradiction:
Improvecache persistence durationVSAvoidcache access speed
Core Design Contradiction:
Duration of action of stationary objectVSSpeed

Solution Approach 1:

The caching system is segmented into two distinct layers: a persistent cache layer that stores data long-term in persistent memory, and a transient in-memory cache layer that provides fast access for active data. This segmentation allows each layer to optimize for its specific function, resolving the contradiction between persistence duration and access speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The transient in-memory cache is nested within the broader persistent caching architecture. The in-memory cache acts as a fast-access subset of the persistent cache, with data synchronized between the two layers. This nested structure enables the system to leverage both the persistence of persistent memory and the speed of in-memory storage simultaneously.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Productivity

If confidential content is stored in persistent cache on client device, then local data access is improved, but security risk increases if unauthorized access occurs

Engineering Contradiction:
Improvelocal data access efficiencyVSAvoidsecurity risk from unauthorized access
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

Encryption algorithms act as an intermediary layer between the persistent cache storage and unauthorized access attempts. Confidential content is encrypted before being written to persistent memory, and decryption keys are managed separately. This intermediary encryption mechanism allows local data access efficiency while mitigating security risks, as encrypted data appears as random noise to unauthorized users.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If cache size is increased to maintain more data locally, then data availability improves, but memory consumption increases excessively

Engineering Contradiction:
Improvecached data volumeVSAvoidmemory consumption
Core Design Contradiction:
Quantity of substanceVSWeight of stationary object

Solution Approach 1:

The system implements periodic cache synchronization and eviction policies that periodically transfer data between persistent memory and in-memory cache, and selectively evict less frequently accessed data. This periodic action allows the system to maintain a reasonable in-memory cache size while ensuring data availability through persistent storage, preventing excessive memory consumption.

Inventive Principle:
Principle #19Periodic action

4Adaptability or versatility

If multiple cache types are supported for different web applications, then flexibility and adaptability improve, but system complexity increases

Engineering Contradiction:
Improvecache configuration flexibilityVSAvoidcaching system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The persistent caching framework is designed with universal, standardized interfaces that can accommodate different cache types and configurations through a unified architecture. Configuration files allow each web application to specify its cache preferences (in-memory, persistent, or hybrid), but all caches interact through the same standardized API. This multi-functionality design provides cache configuration flexibility while managing system complexity through interface standardization.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10691615B2Client-side persistent caching framework
Publication Date: 2020.06.23 SAP SE
  • US10691615B2 patent drawing
  • US10691615B2 patent drawing
  • US10691615B2 patent drawing

AI summary

A system includes reception of a first request to synchronize content from the persistent memory system to the volatile memory system, and, in response to the first request, retrieval of the content from the persistent memory system and store the content in the volatile memory system. A create, read, update or delete operation is performed on the content stored in the volatile memory system to generate modified content in the volatile memory system, a second request to synchronize content is received from the volatile memory system to the persistent memory system, and, in response to the second request, the modified content is retrieved from the volatile memory system and the modified content is stored in the persistent memory system.