Multi-threaded Digital Design System Input Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for processing user inputs on touch screen devices face challenges with multi-frame edits, leading to lags, lost inputs, and incorrect performance due to asynchronous processing between primary and background threads, resulting in poor user experience and increased application crashes.

Innovation Solution

A digital design system that synchronously processes user inputs by creating a communications channel between primary and background threads for caching multi-frame requests, allowing for subsequent processing when the background thread is available, ensuring that inputs are replayed in the correct order and maintaining responsiveness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If asynchronous processing between primary and background threads is used, then processing capacity is improved, but responsiveness and continuity of multi-frame operations deteriorate

Engineering Contradiction:
Improveprocessing capacityVSAvoidresponsiveness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by having the primary thread capture and cache the complete sequence of user inputs for multi-frame operations before the background thread processes them. This ensures that all necessary input data is prepared and stored in advance, allowing the background thread to replay them in the correct order without losing responsiveness or continuity.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If user inputs are processed in the background thread, then the primary thread remains lightly loaded, but multi-frame operations experience lags and lost inputs

Engineering Contradiction:
Improvethread responsivenessVSAvoidoperation continuity
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces a communications channel as an intermediary between the primary and background threads. This channel caches the sequence of user inputs and enables the background thread to replay them in order, ensuring operation continuity while keeping the primary thread responsive and lightly loaded.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If asynchronous processing is used for multi-frame requests, then processing throughput is improved, but input order and correctness are compromised

Engineering Contradiction:
Improveprocessing throughputVSAvoidinput order accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The primary thread performs preliminary action by capturing and caching the complete sequence of user inputs in the correct order before the background thread processes them. This preliminary caching ensures that when the background thread replays the inputs, they maintain their original sequence and correctness, even though processing occurs asynchronously.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If the primary thread processes all user inputs synchronously, then responsiveness is maintained, but processing speed and capacity are reduced

Engineering Contradiction:
Improveapplication responsivenessVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies segmentation by dividing the processing workload between two threads: the primary thread handles user interface responsiveness and caches inputs, while the background thread handles the actual processing of multi-frame operations. This segmentation allows both responsiveness and processing speed to be optimized simultaneously.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11645107B2Processing multi-frame tasks in a multi-threaded digital design system
Publication Date: 2023.05.09 ADOBE INC
  • US11645107B2 patent drawing
  • US11645107B2 patent drawing
  • US11645107B2 patent drawing

AI summary

Embodiments are disclosed for processing multi-frame tasks in a multi-threaded digital design system. In particular, in one or more embodiments, the disclosed systems and methods comprise receiving, by a first thread, a first set of inputs on a graphical user interface, determining that the first set of inputs represent a first multi-frame request, wherein a multi-frame request includes a series of inputs that produce a continuous response, generating a first multi-frame edit task, the first multi-frame edit task including a communications channel between the first thread and a second thread for caching the first set of inputs, enqueuing the first multi-frame edit task in a task queue of the second thread, processing, by the second thread, the first multi-frame edit task.