Dynamic Expression Cache for Online System Adaptability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Online systems face challenges in dynamically updating computations due to frequent changes in user interactions and system upgrades, which can be resource-intensive and complex, especially in social networking systems that need to continuously present relevant information to users.

Innovation Solution

The system dynamically incorporates expressions based on user attributes using a cache that selects the most efficient representation, such as postfix or tree representations, to evaluate computations efficiently, allowing for dynamic modifications without requiring system upgrades.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional systems use system upgrades to introduce changes in computations, then the system can adapt to new functionality, but the upgrade process becomes complex and resource-intensive

Engineering Contradiction:
Improveadaptability to new functionalityVSAvoidcomplexity of system upgrades
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments computation logic into separate, independently manageable expression components that can be modified without affecting the entire system. Expressions are stored as discrete units in a cache, allowing individual expressions to be updated, added, or removed without requiring system-wide upgrades.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system creates and maintains copies of expression representations in a cache memory structure. These copied expressions can be evaluated repeatedly without modifying the original system code, enabling rapid adaptation through expression substitution rather than system upgrades.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If system upgrades are performed frequently to incorporate new computations, then the system remains current with user needs, but significant resources are consumed during upgrades

Engineering Contradiction:
Improveability to incorporate new computationsVSAvoidresource consumption during upgrades
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

Expressions are pre-compiled and stored in the cache in advance, with their representations prepared beforehand. When computation changes are needed, the system simply retrieves or updates expressions in the cache rather than performing resource-intensive compilation and system upgrades at runtime.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses cached copies of expression representations that can be rapidly updated and re-evaluated without consuming the significant resources required for full system upgrades. This copying mechanism enables frequent adaptation with minimal resource expenditure.

Inventive Principle:
Principle #26Copying

3Manufacturing precision

If the system evaluates expressions multiple times using multiple entities, then comprehensive rankings can be generated, but computation time increases

Engineering Contradiction:
Improveaccuracy of entity rankingsVSAvoidcomputation time for multiple evaluations
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

Expression representations are pre-processed and cached in an optimized format before being applied to multiple entities. This preliminary preparation enables rapid evaluation across numerous entities without repeating the full computation each time, significantly reducing the time loss from multiple evaluations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10395321B2Dynamic expressions for representing features in an online system
Publication Date: 2019.08.27 META PLATFORMS INC
  • US10395321B2 patent drawing
  • US10395321B2 patent drawing
  • US10395321B2 patent drawing

AI summary

Online systems, for example, social networking systems evaluate expressions based on features describing relations between entities represented in the online system. These expressions are represented using an expression language. The expression language allows features to be specified as functions of attributes from user accounts. The expressions support use of variables to represent computations, for example, sub-expressions. The expressions are dynamic, since expressions can be specified and executed at call time. The same set of expressions is used many times, e.g., to compute the same function for multiple feature sets, for example, user accounts. Expressions are preferably represented using postfix representation. However some expressions, for example, expressions using variables are represented as trees. To optimize the expressions at runtime, the expressions are cached using a representation determined to be efficient for executing the expression. The cached representation of the expression is applied to multiple feature sets, for example, user accounts.