Linked-List Multi-Process Access via In-Use Marking
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


