Static Resource Version Pinning for Web Server Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional approaches to updating web pages face challenges with version mismatches between client-side static resources and server-side code, leading to communication errors and inefficiencies, particularly during update push periods, due to limitations in web server data storage and backwards compatibility.

Innovation Solution

Implementing a tiered caching system with a primary storage layer, intermediate cache layer, and local cache layer to store tree graphs for static resource files, allowing web servers to be backwards-compatible and service any version of static resource files without storing extensive local data, while using tree hashes to efficiently retrieve and adapt static resource files based on user parameters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If web servers store extensive local data to service multiple versions of static resource files, then backwards compatibility is improved, but data storage requirements and device complexity increase

Engineering Contradiction:
Improvebackwards compatibilityVSAvoiddata storage requirements
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extracts version information and dependency relationships from the server's local storage requirements and places them in client-side browser storage (localStorage). The server only stores the auxiliary data table with version-pinching rules, while the actual static resource files and their version dependencies are cached in the browser's local storage, eliminating the need for the server to maintain extensive local data for multiple versions.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an auxiliary data table as an intermediary structure that stores version-pinching rules and dependency relationships. This table acts as a mediator between the server's minimal storage and the client's local storage, enabling the server to service multiple versions without maintaining extensive local data by relying on the structured information in the auxiliary data table.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If web servers maintain multiple versions of static resource files locally, then version mismatch errors are reduced, but device complexity and storage needs increase

Engineering Contradiction:
Improveversion mismatch errorsVSAvoidserver data management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary version matching and dependency resolution by storing version-pinching rules in the auxiliary data table before actual resource requests occur. The system pre-establishes the relationships between different versions of static resource files and their dependencies, allowing the server to quickly determine the correct version to serve without complex real-time analysis, thereby reducing version mismatch errors while maintaining simple server architecture.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a simplified copy of the version management system on the server side through the auxiliary data table, which contains only the essential version-pinching rules and dependency information. This lightweight copy enables the server to maintain backwards compatibility and service multiple versions without duplicating the full static resource files locally, thus reducing device complexity while maintaining reliability.

Inventive Principle:
Principle #26Copying

3Stability of the object's composition

If web servers update static resource files centrally, then consistency is improved, but update push efficiency decreases due to storage limitations

Engineering Contradiction:
Improveresource file consistencyVSAvoidupdate push efficiency
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent segments the version management system into two parts: the server maintains the authoritative auxiliary data table with version-pinching rules, while the client maintains local copies of static resource files in browser storage. This segmentation allows the server to push updates efficiently by only updating the auxiliary data table, while clients independently manage their local resources, improving update push efficiency while maintaining consistency through the version-pinching mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial updating by allowing the server to update only the auxiliary data table with new version-pinching rules rather than pushing all static resource files to all clients. The clients independently manage their local resource files and use the version-pinching rules to determine when to request updates, enabling efficient partial updates that maintain consistency without requiring complete synchronization of all resources.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10666708B1Systems and methods for updating web pages using static resource version pinning
Publication Date: 2020.05.26 META PLATFORMS INC
  • US10666708B1 patent drawing
  • US10666708B1 patent drawing
  • US10666708B1 patent drawing

AI summary

Systems, methods, and non-transitory computer-readable media can receive a client request from a requesting user. The client request is associated with a web page. A static resource file identifier and a version identifier are determined based on the client request. A response to the client request is generated based on the static resource file identifier and the version identifier.