Optimistic Data Fetching via Diff Queries for Network Bandwidth Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Social networking systems face challenges in maintaining GUI performance due to factors like processing power, network load, and complexity, leading to potential deterioration of GUI quality, particularly in data fetching and rendering processes.

Innovation Solution

An optimistic data fetching and rendering system that constructs static queries for initial data retrieval, stores query results, and uses diff queries to fetch only missing data, reducing network bandwidth usage and enhancing real-time rendering by managing data changes and submissions to the server.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional data fetching methods are used to ensure complete data retrieval, then data completeness is improved, but network bandwidth usage increases and GUI performance deteriorates

Engineering Contradiction:
Improvedata completenessVSAvoidnetwork bandwidth usage
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent extracts and retrieves only the missing data elements that are not yet present in the local data store, rather than fetching complete datasets. The diff query mechanism identifies and retrieves only the specific data portions that need to be updated, reducing network bandwidth consumption while maintaining data completeness.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary actions by maintaining a local data store with previously fetched data and using diff queries to identify what data is missing before initiating network requests. This preliminary assessment prevents unnecessary data retrieval and optimizes network bandwidth usage.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If all data is fetched before rendering to ensure data accuracy, then data accuracy is improved, but rendering speed decreases

Engineering Contradiction:
Improvedata accuracyVSAvoidrendering speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The system performs preliminary actions by maintaining a local data store with previously fetched data and using diff queries to identify what data is missing before initiating network requests. This preliminary assessment enables the client to render data immediately using locally available information while simultaneously fetching missing data in the background, thus maintaining both data accuracy and rendering speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements continuous data fetching and updating mechanisms that operate in parallel with rendering. The diff query process continuously identifies missing data and retrieves it without interrupting the rendering process, ensuring that data accuracy is maintained while rendering proceeds without delays.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If complex queries are constructed to retrieve all necessary data, then data completeness is improved, but network traffic increases

Engineering Contradiction:
Improvedata completenessVSAvoidnetwork traffic
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the data retrieval process into two distinct phases: initial complete data fetching and subsequent diff queries for missing data. This segmentation allows the system to break down the complex query into smaller, more efficient requests that only retrieve the specific missing portions, reducing overall network traffic while maintaining data completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The diff query mechanism extracts and retrieves only the missing data elements that are not yet present in the local data store, rather than fetching complete datasets. This extraction approach significantly reduces network traffic by transmitting only the necessary data portions.

Inventive Principle:
Principle #2Taking out (Extraction)

4Loss of time

If data is fetched in real-time to ensure up-to-date information, then data freshness is improved, but network load increases

Engineering Contradiction:
Improvedata freshnessVSAvoidnetwork load
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The patent implements continuous data fetching and updating mechanisms that operate in parallel with rendering. The diff query process continuously identifies missing data and retrieves it without interrupting the rendering process, ensuring that data freshness is maintained while network load is optimized through targeted requests.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system performs self-service by maintaining a local data store and using diff queries to autonomously identify and retrieve only the missing data elements. This self-service mechanism reduces network load by eliminating redundant data transfers while ensuring data freshness through automatic updates of missing information.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11657111B2Optimistic data fetching and rendering
Publication Date: 2023.05.23 META PLATFORMS INC
  • US11657111B2 patent drawing
  • US11657111B2 patent drawing
  • US11657111B2 patent drawing

AI summary

A data-fetching and data-rendering system may, in response to receiving a page display request, construct a static, possibly nested query for retrieving all the data to be rendered for the page and store the query result in a data store. For a future page display request, the system may similarly construct a query and determine whether the query can be resolved from the data store. If not, the system may construct a “diff query” to fetch only the missing data. In some embodiments, in response to a subsequent page update request, the system may retrieve from the server all the data likely to be viewed or updated and render the data changes corresponding to the requested update. The system may then submit the data changes to the server and undo the rendering of the data changes when the server fails to process the data changes.