Singly Linked List Data Structure for Concurrent Read-Write Operations

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

VSEngineering 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

Engineering Contradiction:
Improvedata exchange efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple pointer data structures and counters are added to manage concurrent operations, then race conditions are prevented, but device complexity increases

Engineering Contradiction:
Improveconflict-free operationsVSAvoiddata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

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

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12235900B2Computer-implemented data structure, electronic storage medium, and method for data exchange
Publication Date: 2025.02.25 ROBERT BOSCH GMBH
  • US12235900B2 patent drawing
  • US12235900B2 patent drawing
  • US12235900B2 patent drawing

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.