Thread-Local Counter for Interval Callbacks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for performing tasks at regular intervals, such as checking for user cancellation requests, are resource-intensive and inefficient, especially in single-threaded environments or when using virtual machines with safepoint mechanisms, which do not support periodic interruptions.

Innovation Solution

A method and system that utilize a thread-local counter to approximate recurring intervals by adjusting a counter value and invoking a callback handler when the counter trigger is satisfied, allowing for efficient execution of recurring tasks without frequent system clock requests, and modifying the counter value based on elapsed time for accurate interval approximation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a helper thread is started to perform tasks at regular intervals, then the task execution reliability is improved, but the CPU and operating system resource usage increases considerably

Engineering Contradiction:
Improvetask execution reliabilityVSAvoidCPU and OS resource usage
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the interval timing logic from a separate thread and integrates it into the existing single thread through a thread-local counter variable. This eliminates the need for an additional helper thread while maintaining the ability to execute tasks at regular intervals, thus improving reliability without increasing CPU and OS resource usage.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The single thread is made multi-functional by combining both the main application logic and the interval-based task execution within the same thread context. The thread-local counter serves multiple purposes: tracking elapsed time, determining when to execute recurring tasks, and managing callback invocations, thereby eliminating the need for a dedicated helper thread.

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

2Use of energy by moving object

If checks are introduced directly into the application code to perform tasks at regular intervals, then the resource usage is reduced, but the code maintainability and reliability deteriorate

Engineering Contradiction:
ImproveCPU and OS resource usageVSAvoidcode maintainability
Core Design Contradiction:
Use of energy by moving objectVSEase of manufacture

Solution Approach 1:

The patent segments the interval management logic into a distinct mechanism using a thread-local counter variable that is separately initialized and managed. This counter is adjusted at specific points in the code (e.g., at safepoints or method returns), and when it reaches a threshold, it triggers a callback. This segmentation maintains clean code structure while enabling regular task execution without scattering checks throughout the application code.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The thread-local counter acts as an intermediary between the application code and the recurring task execution mechanism. Instead of embedding complex timing checks directly in the application logic, the counter serves as a simple mediator that tracks elapsed time and triggers callbacks at appropriate intervals, thereby maintaining code simplicity and maintainability while reducing resource usage.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Extent of automation

If the safepoint mechanism is used to interrupt application code, then the ability to perform VM tasks is improved, but the capability to perform periodic interruptions for recurring tasks is lost

Engineering Contradiction:
ImproveVM task automationVSAvoidperiodic interruption capability
Core Design Contradiction:
Extent of automationVSAdaptability or versatility

Solution Approach 1:

The patent merges the safepoint mechanism with the interval-based task execution by using the same thread-local counter that is already adjusted at safepoints. The counter serves dual purposes: tracking VM safepoint events and measuring elapsed time for recurring tasks. This combination allows the system to maintain automated VM task execution while simultaneously enabling periodic interruptions for application-level recurring tasks within the single-threaded environment.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10776161B2Application code callbacks at regular intervals
Publication Date: 2020.09.15 ORACLE INT CORP
  • US10776161B2 patent drawing
  • US10776161B2 patent drawing
  • US10776161B2 patent drawing

AI summary

A method may include obtaining, for a thread executing application code, a recurring task, a recurring interval, a previous callback time, a starting counter value, and a counter trigger, initializing a current counter value to the starting counter value, and performing checks in response to adjustments to the current counter value. Each check may determine whether the respective adjusted current counter value satisfies the counter trigger. The method may further include in response to a check determining that the adjusted current counter value satisfies the counter trigger, invoking a callback handler with a callback that performs the recurring task, and in response to an elapsed time exceeding the recurring interval, executing, by the callback handler, the callback. The elapsed time may be an amount of time elapsed between the previous callback time and the first invocation. The method may further include modifying the starting counter value using the elapsed time.