Atomic Data Element Moves in Linked Structures
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing linked data structures lack the ability to atomically move data elements between them without delaying lockless readers, particularly in non-transactional-memory-based systems.
Innovation Solution
The method involves allocating a status-indicating entity for data elements, copying the element to be moved, updating the status to indicate validity in the destination structure, and deferring deallocation to avoid disrupting lockless readers, using concepts like data element existence or allegiance to ensure atomicity and validity status management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a data element is moved from one linked data structure to another, then the data element can be updated in the destination structure, but lockless readers that reference the data element may be delayed or disrupted
Solution Approach 1:
The data element is segmented into two parts: the original element in the source structure and a copy in the destination structure. The status-indicating entity is also segmented to separately track validity for each structure, allowing independent management of each element instance without blocking readers
Solution Approach 2:
A status-indicating entity acts as an intermediary between the data element and the linked data structures. This intermediary tracks validity status for both source and destination structures, enabling readers to continue accessing the original element while updates proceed to the copy without disruption
2Loss of substance
If the data element is immediately deleted from the source structure after moving, then memory is freed, but lockless readers may access invalid or deleted data
Solution Approach 1:
The status-indicating entity is preliminarily configured to track validity for both source and destination structures before the move operation completes. This preliminary setup ensures that readers can safely determine whether to access the original or copied element, preventing access to invalid data even during deletion
Solution Approach 2:
The original data element is discarded from the source structure while the status-indicating entity maintains validity tracking. Memory is recovered through deferred deletion mechanisms that ensure no active readers reference the discarded element, balancing memory efficiency with reader safety
3Reliability
If a status-indicating entity is used to track data element validity, then atomic moves are enabled, but the system complexity increases
Solution Approach 1:
The status-indicating entity serves multiple functions: tracking validity for the source structure, tracking validity for the destination structure, and enabling atomic move operations. This multi-functionality reduces the need for separate tracking mechanisms for each structure, managing complexity through consolidation
Data Source
AI summary
A data element of a linked data structure is atomically moved without delaying lockless readers. A status-indicating entity is allocated, associated with the data element, and indicates validity of the data element with respect to the first linked data structure. A copy element, or a pointer thereto, is created from the data element. The status-indicating entity is associated with the copy element and indicates no validity of the copy element with respect to a second linked data structure. The copy element is linked to the second linked data structure. The status-indicating entity is atomically updated to indicate no validity of the data element with respect to the first linked data structure and validity of the copy element with respect to the second linked data structure. The data element is deleted and the status-indicating entity is disassociated from the copy element. Both structures may be deallocated in a deferred reader-friendly manner.


