Atomic Data Element Moves in Linked Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata update speedVSAvoidreader delay
Core Design Contradiction:
ProductivityVSLoss of time

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvememory usageVSAvoiddata access safety
Core Design Contradiction:
Loss of substanceVSReliability

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If a status-indicating entity is used to track data element validity, then atomic moves are enabled, but the system complexity increases

Engineering Contradiction:
Improveatomicity guaranteeVSAvoiddata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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

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

Data Source

PatentUS9910907B2Atomically moving data elements between or within linked data structures
Publication Date: 2018.03.06 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9910907B2 patent drawing
  • US9910907B2 patent drawing
  • US9910907B2 patent drawing

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.