Futures Linearizability Policies Multicore Data Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in improving the performance of long-lived shared data structures in multicore systems, particularly in managing parallel computations and reducing contention and communication costs, as they rely on outdated futures concepts that do not account for side effects and type-specific optimizations.

Innovation Solution

The implementation of futures with side effects and type-specific optimizations, including strong, medium, and weak futures linearizability policies, allows for non-blocking and compositional management of operations on shared data structures, enabling optimizations such as combining and elimination of operations, and flexible scheduling, which improves cache locality and reduces contention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional lock-free data structures are used, then scalability is achieved, but performance is limited due to inability to perform type-specific optimizations

Engineering Contradiction:
ImproveperformanceVSAvoidoptimization capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent changes the parameter of futures from untyped/implicit to typed/explicit, enabling type-specific optimizations. By introducing type information as a parameter of futures, the system can perform optimizations tailored to specific data types while maintaining scalability, thus resolving the contradiction between performance and optimization capability.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments the optimization process into distinct phases: futures are created with type information, stored in thread-local lists, and processed through type-specific optimization operations. This segmentation allows different types of optimizations to be applied independently to different future types, improving overall performance while maintaining system versatility.

Inventive Principle:
Principle #1Segmentation

2Reliability

If strong futures linearizability policy is used, then determinism is improved, but flexibility for optimizations is reduced

Engineering Contradiction:
ImprovedeterminismVSAvoidoptimization flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamic selection of futures linearizability policies (strong, medium, weak) based on the specific optimization operations needed. The system can dynamically switch between policies to balance determinism and optimization flexibility in different contexts, resolving the contradiction between these two requirements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the linearizability policy parameter to control the balance between determinism and optimization flexibility. By allowing parameterization of the linearizability strength, the system can adapt to different workload requirements and optimization opportunities, thus resolving the contradiction.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If multiple pending operations are processed individually, then correctness is maintained, but performance is reduced due to repeated traversals

Engineering Contradiction:
ImproveperformanceVSAvoidcorrectness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent merges multiple pending operations into batches and applies type-specific optimizations to combine equivalent operations. By grouping operations with the same type or targeting the same data structure elements, the system reduces the number of traversals while maintaining correctness through careful ordering and validation of merged operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary organization of futures into thread-local lists and classification by type before processing. This preliminary action enables efficient batching and optimization of operations, reducing repeated traversals while maintaining correctness through structured processing order.

Inventive Principle:
Principle #10Preliminary action

4Productivity

If polling mechanism is used to determine operation completion, then simplicity is maintained, but performance is reduced due to continuous checking

Engineering Contradiction:
ImproveperformanceVSAvoidmechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a feedback mechanism where threads evaluate futures and receive results without continuous polling. The system uses future evaluation to automatically retrieve results and trigger optimizations, eliminating the need for continuous polling while maintaining simplicity through a clean feedback loop between operation creation and result retrieval.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9424080B2Systems and methods for utilizing futures for constructing scalable shared data structures
Publication Date: 2016.08.23 ORACLE INT CORP
  • US9424080B2 patent drawing
  • US9424080B2 patent drawing
  • US9424080B2 patent drawing

AI summary

A multithreaded application that includes operations on a shared data structure may exploit futures to improve performance. For each operation that targets the shared data structure, a thread of the application may create a future and store it in a thread-local list of futures (under weak or medium futures linearizability policies) or in a shared queue of futures (under strong futures linearizability policies). Prior to a thread evaluating a future, type-specific optimizations may be performed on the list or queue of pending futures. For example, futures may be sorted temporally or by key, or multiple operations indicated in the futures may be combined or eliminated. During an evaluation of a future, a thread may compute the results of the operations indicated in one or more other futures. The order in which operations take effect and the optimization operations performed may be dependent on the futures linearizability policy.