Patchpointing Shared Resource Access for Lockless Concurrency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing technologies face challenges in optimizing transaction processing on shared resources in concurrent environments, leading to scalability, performance, and predictability issues due to contention, data corruption, system crashes, and poor interoperability among heterogeneous system components, especially in distributed settings.
Innovation Solution
A method for scalable, correct, and high-performance asynchronous lockless sharing of computer resources using patchpointing, which involves determining contention, adding processes to a priority queue, retrieving and sanitizing work areas, and processing them through a patchpointer data structure to manage concurrent access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If locking mechanisms are used to manage concurrent access to shared resources, then data consistency and reliability are improved, but system performance and scalability deteriorate due to serialization overhead
Solution Approach 1:
The patent replaces traditional locking mechanisms (mechanical synchronization) with a software-based patchpointing system that uses atomic transitions and work area sharing. This substitution eliminates the need for physical lock acquisition and release operations, thereby maintaining data consistency while significantly improving system performance and reducing serialization overhead.
Solution Approach 2:
The patent introduces work areas as intermediary structures that mediate between competing processes and shared resources. Instead of direct locking on shared data, processes operate on private work areas that are then patched into the shared resource, eliminating contention while ensuring consistency through the patchpointing mechanism.
2Productivity
If lockless algorithms are used to improve concurrency performance, then system scalability is improved, but correctness and reliability worsen due to difficulty in verifying atomic transitions
Solution Approach 1:
The patent performs preliminary sanitization of work areas before they are patched into shared resources. This preliminary action ensures that only valid, consistent data is transferred to shared memory, eliminating the need for complex runtime verification while maintaining correctness. The work area is prepared and validated before concurrent access occurs.
Solution Approach 2:
The patent segments the shared resource access into two distinct phases: private work area manipulation and atomic patching to shared resource. This segmentation allows each phase to be independently verified and managed, with the patchpointing mechanism ensuring atomic transitions, thereby maintaining correctness while enabling high concurrency.
3Productivity
If specialized lockless algorithms are optimized for specific data structures, then performance on those structures is improved, but adaptability to other data structures deteriorates
Solution Approach 1:
The patent creates a universal patchpointing mechanism that can be applied to any data structure type (queues, stacks, trees, graphs, etc.). Instead of implementing separate lockless algorithms for each data structure, the same work area sanitization and atomic patching approach works across all data structures, maintaining high performance while achieving broad adaptability.
4Reliability
If numerous atomic operations are used in lockless mechanisms, then concurrency control is improved, but overhead and execution time worsen
Solution Approach 1:
The patent merges multiple atomic operations into a single atomic patching operation. Instead of performing separate atomic reads, writes, and validations, the entire work area transition is performed as one atomic operation, significantly reducing the number of atomic instructions executed and minimizing execution time while maintaining synchronization reliability.
Data Source
AI summary
In one aspect, a computerized method for scalable, correct, and high-performance asynchronous lockless sharing of a computer resource comprising: determining there is a contention for a shared computer resource by a plurality of competing processes, wherein the plurality of competing processes are competing to access a same portion of the shared resource; adding the plurality of competing processes a priority queue; retrieving a process at a front of the queue of the plurality of competing processes; access a work area of the process at a front of the queue; sharing the work area with other processes of the plurality of competing processes in priority queue; sanitizing the work area to obtain a plurality of code bundles; placing the code bundles into a patchpointer; and processing the patchpointer until the patchpointer is empty.


