Hierarchical Dependency Graph for REST Cache Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current HTTP caching techniques in REST-based web services lack optimization for resource-oriented architectures, leading to inefficiencies in data transmission and cache integrity issues, particularly in complex and remote systems.

Innovation Solution

The implementation of a caching optimization method that utilizes a dependency graph and Entity Tags (ETags) to manage resource caching, ensuring hierarchical dependency information is maintained and cache integrity is preserved by analyzing resource structures, generating dependency graphs, and managing cache evictions based on these graphs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If HTTP caching is implemented in REST-based web services, then data transmission efficiency is improved, but cache integrity and dependency management become problematic

Engineering Contradiction:
Improvedata transmission efficiencyVSAvoidcache integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the resource structure into a hierarchical dependency graph where resources are divided into parent resources and child resources. This segmentation allows the cache to track dependencies at different levels, enabling selective invalidation of specific cache entries when parent resources change, thereby maintaining cache integrity while preserving efficient caching of independent resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces Entity Tags (ETags) as intermediary identifiers that mediate between the cached resources and the server. ETags serve as verification tokens that allow the cache to validate whether cached resources are still current without requiring full resource retransmission, thus maintaining reliability while preserving caching efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If a uniform REST interface is adopted, then system decoupling and independent development are improved, but transmission optimization for specific systems is lost

Engineering Contradiction:
Improvesystem decouplingVSAvoidtransmission efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies local quality by generating dependency graphs specific to each resource-oriented system's hierarchical structure. While the uniform REST interface is maintained at the protocol level, the caching mechanism is locally optimized for each system's specific resource relationships, allowing transmission optimization tailored to particular system requirements without sacrificing overall system decoupling.

Inventive Principle:
Principle #3Local quality

3Speed

If resource caching is implemented without dependency tracking, then caching speed is improved, but stale and broken dependency data accumulates in the cache

Engineering Contradiction:
Improvecaching speedVSAvoidstale data accumulation
Core Design Contradiction:
SpeedVSLoss of information

Solution Approach 1:

The patent performs preliminary action by establishing the hierarchical dependency graph structure before caching operations begin. This pre-established structure enables the cache to quickly determine which resources depend on changed resources, allowing for targeted invalidation rather than comprehensive cache clearing, thus maintaining high caching speed while preventing stale data accumulation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9602622B2Flexible caching of resource oriented web services
Publication Date: 2017.03.21 NEUSTAR INC
  • US9602622B2 patent drawing
  • US9602622B2 patent drawing
  • US9602622B2 patent drawing

AI summary

A cache management system, method, and computer-readable medium which manage caching of resources are provided. The method includes receiving a request for a resource including a hierarchical resource locator, fetching the resource from a node upon determining that the resource is not stored in a cache, adding an entry for the resource to a mapping table associated with the cache, the entry including the resource locator and dependency information for dependent resources identified from the hierarchical structure of the resource locator, and updating entries in the mapping table for master resources identified from the hierarchical structure of the resource locator, the updated entries including an identifier for the resource.