Parallel Operator Tree Synchronization via Mediator Points

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional parallel data processing models face challenges with synchronization dependencies between operators, leading to deadlocks, increased resource usage, and complexity due to unpredictable synchronization patterns and interactions, as well as inefficient processing where lower-level branch work is performed even if not needed by upper levels.

Innovation Solution

The introduction of synchronization points that isolate sibling operator coordination, allowing for explicit identification of shared units of work and dependencies, and enabling threads to teleport to lower execution contexts, ensuring that shared data is created before use and destroyed only when all branches are finished, thus eliminating the need for a master branch and reducing code complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional parallel data processing models are used with multiple threads operating on duplicate subtrees, then processing speed is improved through parallelization, but synchronization complexity increases and deadlocks occur due to unpredictable synchronization patterns between operators

Engineering Contradiction:
Improveprocessing speedVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A synchronization point object is introduced as an intermediary between parallel operator threads. This object coordinates access to shared data structures (hash tables, buffers) by providing standardized synchronization operations. Instead of direct thread-to-thread synchronization which creates complex dependency patterns, threads interact through the synchronization point mediator that manages the shared resources, thereby reducing synchronization complexity while maintaining parallel processing speed

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The synchronization point object serves multiple functions: it coordinates hash table building, manages buffer access, handles cleanup operations, and provides synchronization barriers. By consolidating these diverse synchronization needs into a single multi-functional object, the system reduces the number of separate synchronization mechanisms needed, thereby reducing overall synchronization complexity while preserving parallel processing capabilities

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

2Reliability

If master branch coordination is implemented to manage synchronization between parallel operators, then synchronization reliability is improved, but code complexity increases due to specialized initialization and coordination logic

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The synchronization point object is self-initializing and self-managing. When any operator thread first accesses the synchronization point, it automatically initializes the shared data structures and sets up the synchronization state. This eliminates the need for specialized master branch initialization code. The synchronization point then manages its own state throughout execution, providing reliable synchronization without requiring complex master branch coordination logic

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Instead of having the master branch actively coordinate and manage synchronization state, the synchronization point object passively provides synchronization services that any thread can access. The control flow is inverted: rather than master->worker coordination, any worker can independently interact with the synchronization point which manages the shared state. This reduces code complexity by eliminating master branch specialization while maintaining synchronization reliability

Inventive Principle:
Principle #13The other way round (Inversion)

3Productivity

If parallel operators independently manage their own data structures and synchronization, then processing efficiency is improved through reduced coordination overhead, but reliability decreases due to unexpected interactions between semaphores and cleanup operations

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidexecution reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Individual operator-specific synchronization mechanisms (semaphores, locks) are merged into a single unified synchronization point object that manages all shared resources. This consolidation maintains processing efficiency by providing localized access points for each operator while eliminating unexpected interactions between multiple independent synchronization mechanisms. The unified object provides consistent behavior for all threads, improving execution reliability

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The synchronization point object acts as an intermediary between parallel operators and shared data structures. Instead of operators directly managing their own synchronization which leads to unexpected interactions, all synchronization requests pass through this mediator that ensures consistent and predictable behavior. This maintains processing efficiency while eliminating reliability issues caused by direct operator-managed synchronization

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If lower-level branch operations are always executed in parallel, then processing throughput is improved, but resource waste occurs when upper-level branches do not need the results

Engineering Contradiction:
Improveprocessing throughputVSAvoidresource waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The parallel execution model is made dynamic through the synchronization point mechanism. Lower-level branches execute in parallel dynamically when needed, but the synchronization point allows upper-level branches to wait for or skip lower-level results based on runtime conditions. This dynamic control enables the system to maintain high throughput by executing parallel operations when beneficial while avoiding resource waste by allowing selective waiting or skipping when results are not needed

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10540372B2Safe synchronization of parallel data operator trees
Publication Date: 2020.01.21 SYBASE INC
  • US10540372B2 patent drawing
  • US10540372B2 patent drawing
  • US10540372B2 patent drawing

AI summary

An operator tree is formed for a data processing plan, the operator tree containing a plurality of interconnected nodes and including a grouping of two or more duplicative portions, each of the two or more duplicative portions having identical nodes and structure such that when the operator tree is executed, operators executed in a first duplicative portion using a first thread perform same functions use different data than operators in a second duplicative portion using a second thread. One or more operators in the first portion and one or more operators in the second portion to be synchronized with each other are identified. A synchronization point is created for the identified operators in the first thread and one or more subsequent threads, wherein the synchronization point receives information from each of the identified operators to build an artifact to deliver to one or more operators that depend on the artifact.