Differential Recursive Evaluation for Efficient Tuple Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for evaluating recursive statements, such as naive and semi-naive evaluation, are computationally inefficient and limited in their applicability, leading to significant time and space bottlenecks due to redundant computations and inability to handle complex programs.

Innovation Solution

Differential recursive evaluation uses approximate difference operators to compute new tuples between iterations, automatically generating delta and epsilon expressions to focus on changed data, sacrificing precision for significant speed-ups and broader applicability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If naive evaluation is used to evaluate recursive statements, then all tuples are considered in each iteration ensuring completeness, but computational efficiency deteriorates due to redundant computations

Engineering Contradiction:
Improvecompleteness of tuple evaluationVSAvoidcomputational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the evaluation process by dividing tuples into three categories: new tuples (added in current iteration), old tuples (present in previous iteration), and removed tuples (no longer valid). This segmentation allows the system to process only relevant tuples rather than all tuples, eliminating redundant computations while maintaining evaluation completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic evaluation by maintaining a differential relation that changes across iterations. The evaluation engine dynamically adjusts which tuples are processed based on the differential between current and previous iterations, transitioning from static complete evaluation to dynamic incremental evaluation, thereby improving computational efficiency.

Inventive Principle:
Principle #15Dynamics

2Productivity

If semi-naive evaluation is used to reduce redundant computations, then computational efficiency improves, but applicability deteriorates due to inability to handle complex programs

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidapplicability to complex programs
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent extends segmentation to handle complex programs by categorizing tuples into new, old, and removed sets, and by applying differential evaluation to all types of terms including existential, universal, and aggregate terms. This comprehensive segmentation approach maintains efficiency while expanding applicability to complex program structures that semi-naive evaluation cannot handle.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal evaluation framework that handles multiple term types (existential, universal, aggregate) and various program structures through a single differential evaluation mechanism. This multi-functional approach replaces the limited semi-naive evaluation with a comprehensive system that maintains computational efficiency across diverse and complex program scenarios.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If differential recursive evaluation uses approximate difference operators to focus on changed data, then evaluation speed improves, but precision deteriorates due to approximation

Engineering Contradiction:
Improveevaluation speedVSAvoidprecision of tuple difference computation
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent applies partial action by computing only the differential portion of tuple changes rather than complete tuple comparisons. The approximate difference operators compute a subset of changes that are sufficient for incremental evaluation, sacrificing some precision in intermediate steps while maintaining overall evaluation accuracy through iterative refinement.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent implements feedback mechanisms where the results of approximate difference computations are fed back into the evaluation process. The evaluation engine uses the approximate differentials to guide subsequent iterations, refining the results and compensating for approximation errors, thereby maintaining precision while benefiting from speed improvements.

Inventive Principle:
Principle #23Feedback

4Reliability

If traditional evaluation methods are used, then computational soundness is maintained, but time consumption increases due to inability to prune redundant computations

Engineering Contradiction:
Improvecomputational soundnessVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing the differential relation between iterations. The evaluation engine prepares differential expressions in advance that identify which tuples have changed, allowing it to prune redundant computations before they occur. This preliminary preparation maintains computational soundness while significantly reducing time consumption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent discards tuples that have not changed between iterations and recovers only the necessary differential information. By discarding redundant tuple evaluations and recovering only the essential changes through differential operators, the system maintains computational soundness while eliminating unnecessary time consumption.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS10055197B1Differential recursive evaluation
Publication Date: 2018.08.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10055197B1 patent drawing
  • US10055197B1 patent drawing
  • US10055197B1 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for performing differential recursive evaluation. One of the methods includes receiving an original recursive expression that defines tuples belonging to an output relation. A final delta expression is generated including repeatedly applying one or more delta rules to the initial delta expression, wherein the final delta expression has at least one call to a delta relation that represents tuples generated by the final delta expression on a previous iteration. Until the final delta expression generates no new tuples, the final delta expression is evaluated using the tuples computed by the final delta expression on the previous iteration wherever the call to the delta relation occurs and the output relation is updated including adding to the output relation any tuples newly generated by evaluating the final delta expression.