Linked-List Multi-Process Access via In-Use Marking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Linked-list data structures are not well-suited for multi-processor environments due to their inability to accommodate simultaneous access by multiple processes, leading to delays and potential data corruption when one process needs to search or modify the list, as other processes must wait for completion and cannot access the list during a search.

Innovation Solution

A method that locks a linked-list, allows data retrieval while advancing to a subsequent element without encountering a breakpoint, marks the subsequent element as 'in-use' when a breakpoint is reached, and creates a reference to it before unlocking, enabling other processes to access the list.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a linked-list is locked during a search to prevent data corruption, then data integrity is maintained, but other processes must wait causing delays and reduced productivity

Engineering Contradiction:
Improvedata integrityVSAvoidmulti-process access efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the linked-list into multiple zones or sections that can be independently accessed. Different processes can work on different segments simultaneously, reducing the need for global locking while maintaining data integrity within each segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediary data structures such as shadow entries or placeholder elements that mediate between the searching process and the linked-list. These intermediaries allow the list to be modified (added/removed elements) during searches without corrupting the search operation, eliminating the need for exclusive locking.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a process maintains control over a linked-list during a complete search, then data corruption is prevented, but the list becomes unavailable to other processes causing waiting delays

Engineering Contradiction:
Improvedata consistencyVSAvoidprocess waiting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by creating shadow copies or placeholder entries before modifications are made to the linked-list. This allows the current search process to continue using the original structure while modifications are prepared in advance, preventing blocking without risking data corruption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copies of linked-list elements or the entire list structure that can be modified independently. The searching process operates on the original copy while modifications occur on a duplicate, eliminating mutual exclusion requirements and reducing process waiting time.

Inventive Principle:
Principle #26Copying

3Productivity

If elements are added or removed from a linked-list during a search, then multi-process productivity is improved, but the reference chain may be corrupted causing data integrity issues

Engineering Contradiction:
Improveconcurrent access capabilityVSAvoidreference chain integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent uses intermediary shadow entries that act as placeholders during concurrent modifications. When elements are added or removed from the linked-list, the search process follows these intermediaries instead of the actual list structure, preventing reference chain corruption while allowing concurrent access.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent prepares intermediary structures in advance before modifications occur. This preliminary setup ensures that even if the linked-list structure changes during a search, the reference chains remain intact because the search process is already following the pre-established intermediary paths.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8977651B2Method and apparatus for multi-process access to a linked-list
Publication Date: 2015.03.10 HEWLETT PACKARD ENTERPRISE DEV LP
  • US8977651B2 patent drawing
  • US8977651B2 patent drawing
  • US8977651B2 patent drawing

AI summary

Data is retrieved from a linked-list by locking the linked-list, retrieving data from an element in the linked-list, advancing to a subsequent element in the linked-list while a breakpoint is not encountered and marking the subsequent element as “in-use” when a breakpoint is encountered. A reference to the subsequent element is then created before the linked-list is unlocked.