In-Memory Distributed Cache Dependency Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing in-memory distributed caches face inefficiencies in certain scenarios, such as cache misses leading to repeated service calls and unnecessary processing loads, due to the lack of mechanisms for managing cache dependencies and optimizing data retrieval.

Innovation Solution

Implementing a cache system with methods like 'cache get', 'claim fetching', 'cache wait', and 'push to cache' that allow clients to manage cache values and dependencies, enabling efficient data retrieval and updates by tracking client requests and utilizing a dependency graph for cache key invalidation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If an in-memory distributed cache is implemented to store data in memory for fast retrieval, then application performance is improved and processing load on Web services is reduced, but cache misses still lead to repeated service calls and unnecessary processing loads

Engineering Contradiction:
Improveapplication performanceVSAvoidprocessing load
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements a claim fetching mechanism where clients can pre-register their data retrieval needs before the data is actually available in the cache. This preliminary action allows the system to prepare and notify clients as soon as the cached data becomes available, preventing repeated service calls and reducing processing load on Web services.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent establishes a feedback loop between the cache system and clients through event notifications. When cached data becomes available or changes, the system automatically notifies waiting clients, enabling them to retrieve data immediately without making repeated service calls. This feedback mechanism eliminates unnecessary processing load while maintaining high application performance.

Inventive Principle:
Principle #23Feedback

2Speed

If the cache stores results in main memory for quick access, then retrieval speed is improved, but there is no mechanism to manage cache dependencies and optimize data retrieval

Engineering Contradiction:
Improveretrieval speedVSAvoidcache management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments cache management into distinct functional components: claim fetching for pre-registration, event-driven notifications for data availability, and dependency tracking for related cache keys. This segmentation allows the system to maintain fast retrieval speeds while managing complexity through modular, specialized mechanisms rather than a monolithic cache management system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an event notification system as an intermediary between the cache storage mechanism and data retrieval operations. This intermediary layer manages the complexity of cache dependencies and data availability by handling notifications and client coordination, allowing the core cache to remain simple and fast while the intermediary handles the complex management logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If clients repeatedly call the service when cache misses occur, then data availability is ensured, but unnecessary service calls increase processing loads

Engineering Contradiction:
Improvedata availabilityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent enables clients to perform preliminary registration of their data needs through claim fetching before data is available in the cache. This preliminary action ensures data availability is maintained while eliminating the need for repeated service calls, as clients are notified automatically when the cached data becomes available, thereby improving processing efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a feedback mechanism where the cache system actively notifies clients when requested data becomes available. This feedback loop ensures data availability is maintained without requiring clients to repeatedly poll or call the service, as the system proactively informs clients when their requested data is ready, thus improving processing efficiency while maintaining reliability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9369332B1In-memory distributed cache
Publication Date: 2016.06.14 AMAZON TECH INC
  • US9369332B1 patent drawing
  • US9369332B1 patent drawing
  • US9369332B1 patent drawing

AI summary

Improved caching mechanisms are presented herein for use with an in-memory distributed cache and, potentially, other types of caches. One mechanism permits cache clients to wait on a cache key being fetched by one or more other cache clients. When the cache key arrives at the cache, the waiting cache clients may be called back with the cache key. Another mechanism allows a service to push changed values directly into a distributed cache. Yet another mechanism allows the storage of information in a cache that defines dependencies between cached values. The dependency information can be utilized to invalidate cache values that are dependent upon other cached values that have been invalidated.