Singly Linked List Data Structure for Concurrent Read-Write Operations
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data structures for exchanging data between a write process and read processes, such as the 'first in, first out' (FIFO) scheme, face challenges in efficiently managing data exchange, particularly in handling concurrent operations and avoiding conflicts between write and read processes.
Innovation Solution
A computer-implemented data structure using a singly linked list with multiple pointer data structures and counters, allowing for simultaneous writing and reading operations without conflicts. The data structure includes first and second pointer data structures for the oldest and next writable elements, and additional pointers and counters for managing unread elements and preventing race conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a singly linked list is used for data exchange between write and read processes, then data exchange functionality is achieved, but race conditions and conflicts occur during concurrent operations
Solution Approach 1:
The patent segments the pointer management into multiple independent pointer data structures (first pointer for oldest element, second pointer for next writable element, third pointer for next unread element, fourth pointer for current unread element, fifth pointer for last unread element). Each pointer is managed independently, allowing write and read processes to operate on different parts of the list simultaneously without conflicts, thus resolving the race condition problem while maintaining data integrity.
Solution Approach 2:
The patent introduces multiple pointer data structures as intermediaries between the write and read processes. These pointers act as mediators that coordinate access to the linked list, enabling concurrent operations by clearly defining the boundaries and states of writable and readable regions, thereby preventing direct conflicts between writers and readers.
2Reliability
If multiple pointer data structures and counters are added to manage concurrent operations, then race conditions are prevented, but device complexity increases
Solution Approach 1:
The patent designs each pointer data structure to serve multiple functions. For example, the first pointer data structure not only indicates the oldest element but also helps determine the writable region boundary. The fifth pointer data structure tracks both the last unread element and the end of the unread region. This multi-functionality reduces the need for separate dedicated structures, managing complexity while ensuring reliable concurrent operations.
Solution Approach 2:
The patent incorporates counters that provide feedback about the state of the linked list (e.g., number of unread elements, position of pointers). This feedback mechanism allows the write and read processes to make informed decisions about concurrent access, reducing the need for complex synchronization protocols and simplifying the overall system design while maintaining reliability.
Data Source
AI summary
A computer-implemented data structure for a singly linked list for data exchange between a write process and at least one read process. The data structure includes a first pointer data structure and a second pointer data structure, wherein the first pointer data structure points to the oldest element in the list, and the second pointer data structure points to the next writable element in the list. The data structure also includes a third pointer data structure, a fourth pointer data structure, and a fifth pointer data structure, wherein the third pointer data structure has a corresponding first counter, the fourth pointer data structure has a corresponding second counter, and the fifth pointer data structure has a corresponding counter.


