Parallel Rule Execution via Dependency Graph Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional rule engines execute rules sequentially, leading to inefficiencies and resource wastage due to dependencies between rules, which slows down processing and increases network resource usage.

Innovation Solution

A new graph is generated based on the rule flow graph, allowing parallel execution of rules that are not interdependent, utilizing multiple threads to execute rules independently, thereby optimizing computer resources and speeding up processing without distorting results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If rules are executed sequentially in conventional rule engines, then execution simplicity is maintained, but processing speed and resource efficiency deteriorate

Engineering Contradiction:
Improveprocessing speedVSAvoidexecution complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the rule execution process by dividing rules into independent groups that can be executed in parallel. The rule flow graph is transformed into a new graph where rules without dependencies are separated into distinct execution threads, allowing simultaneous processing while maintaining simplicity through structured organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from one-dimensional sequential execution to multi-dimensional parallel execution by introducing thread-level concurrency. Rules are distributed across multiple execution threads that operate simultaneously, effectively adding a temporal parallelism dimension to the execution model while preserving logical correctness.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If parallel execution is implemented, then processing efficiency improves, but system complexity increases

Engineering Contradiction:
Improveexecution efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary analysis of rule dependencies before execution by scanning the rule flow graph and identifying interdependencies. This pre-processing step creates a dependency-aware execution plan that enables parallel execution without requiring complex runtime dependency resolution, thereby improving efficiency while controlling system complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary transformation step that converts the original rule flow graph into a new graph optimized for parallel execution. This intermediary representation serves as a bridge between sequential rule definitions and parallel execution requirements, managing complexity by handling dependency analysis and thread allocation in the transformation layer rather than in the core execution engine.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If sequential execution is used, then resource usage is lower, but wait times and processing delays increase

Engineering Contradiction:
Improvewait timeVSAvoidnetwork resource usage
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

The patent ensures continuous useful action by eliminating idle wait times through parallel execution. While one rule group is being processed, other independent rule groups can execute simultaneously, keeping computational resources continuously utilized rather than idle. This reduces total processing time and associated network resource usage by preventing sequential bottlenecks.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11593813B2Rule engine optimization via parallel execution
Publication Date: 2023.02.28 PAYPAL INC
  • US11593813B2 patent drawing
  • US11593813B2 patent drawing
  • US11593813B2 patent drawing

AI summary

A first graph that includes a plurality of containers is accessed. The containers each contain one or more rules that each have corresponding computer code. The containers are configured for sequential execution by a rule engine. The computer code corresponding to the one or more rules in each of the containers is electronically scanned. Based on the electronic scan, an interdependency among the rules is determined. Based on the determined interdependency, a second graph is generated. The second graph includes all of the rules of the containers, but not the containers themselves. At least some of the rules are configured for parallel execution by the rule engine.