Concurrent Object Management via Transactional Memory Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional garbage collection techniques cause performance penalties in multi-process environments due to the 'stop the world' effect, where all processing threads are temporarily suspended during heap compaction, which is detrimental to time-critical applications like online stock trading.
Innovation Solution
Implementing concurrent copying of objects in memory by a garbage collector while allowing processing threads to execute simultaneously, using transactional memory to manage data versions and track conflicts, ensuring only threads accessing moved objects are suspended, thus enabling seamless operation and higher efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If conventional garbage collection performs heap compaction by copying objects to contiguous memory space, then memory fragmentation is reduced and larger contiguous memory portions are created, but all processing threads must be temporarily suspended causing significant performance penalty
Solution Approach 1:
The patent divides the heap into multiple segments or regions, allowing the garbage collector to perform compaction operations on individual segments rather than requiring suspension of all threads for the entire heap. This segmentation enables partial parallelism where some threads can continue processing while others are suspended for specific segment operations.
Solution Approach 2:
The garbage collector performs preliminary actions by marking objects for collection and preparing compaction plans before actually moving objects. This allows processing threads to be notified in advance and adjust their behavior, reducing the need for complete suspension and enabling smoother transitions during memory reorganization.
2Reliability
If garbage collection suspends all processing threads during object copying, then data consistency is maintained, but system responsiveness and real-time performance deteriorate
Solution Approach 1:
The patent implements dynamic thread suspension strategies where the garbage collector selectively suspends only those processing threads that are currently accessing objects being moved, rather than suspending all threads uniformly. This dynamic approach maintains data consistency for affected objects while allowing other threads to continue processing, reducing overall suspension time.
Solution Approach 2:
The system maintains continuity of useful action by allowing processing threads to continue executing their operations on objects that are not being moved or copied by the garbage collector. This partial continuity reduces the impact on system responsiveness while still ensuring data consistency for the specific objects undergoing memory relocation.
Data Source
AI summary
A processing thread obtains an initial status of a reference field associated with an object having data stored in memory. The reference field represents, at least in part, a status of current modification operations (e.g., a status of moving the object from one location in memory to another), if any, applied to the object. The processing thread applies a sequence of instructions to data retrieved from the object to produce computational results for storage in the object. Prior to storing the computational results in the object, the processing thread can confirm whether the reference field has changed since obtaining the initial status.


