Lock-Free Linked List for Distributed Data Transmission

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for accessing shared data containers in distributed systems, such as lists or arrays, often result in performance losses due to collisions from read and write access, which can be mitigated by using locks but at the cost of hindering further data processing.

Innovation Solution

A method for transmitting structured data between data modules that uses a special linked list structure operated without locks, employing atomic operations for adding or deleting data blocks, allowing for distributed access without the need for locks, thus ensuring high performance and security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If locks are used to prevent collisions in shared memory access, then data security is improved, but data processing performance deteriorates

Engineering Contradiction:
Improvedata securityVSAvoiddata processing performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the data structure into individual data blocks, each with its own pointer fields. This allows fine-grained access control where only specific blocks need to be locked during modification, rather than locking the entire data structure. The segmentation enables concurrent access to different blocks by different modules, improving throughput while maintaining data integrity through selective locking of only the affected blocks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces pointer fields as intermediaries that manage access to data blocks. These pointers act as mediators between multiple data processing modules and the shared memory regions, enabling coordinated access without requiring comprehensive locks. The pointer mechanism allows modules to safely read or write specific blocks while others remain accessible, resolving the contradiction between security and performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If locks are used to prevent memory state corruption, then data integrity is improved, but processing speed deteriorates

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent applies preliminary action by pre-allocating data blocks with their pointer fields and organizing them in a linked list structure before actual data processing begins. This preparation allows data processing modules to immediately access and modify blocks without requiring locking overhead during normal operations. The preliminary structure enables efficient concurrent access patterns that maintain integrity while preserving speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic access patterns where data blocks can be freely read by multiple modules simultaneously, and written by single modules when needed. The linked list structure with pointers allows the system to dynamically adapt to different access patterns without rigid locking constraints. This dynamic approach maintains data integrity through pointer-based coordination while enabling high-speed processing through concurrent access.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If distributed access to shared memory is enabled, then system flexibility is improved, but collision risk increases

Engineering Contradiction:
Improvesystem flexibilityVSAvoidcollision risk
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the shared memory into independent data blocks that can be individually accessed by different data processing modules. This segmentation allows high system flexibility where multiple modules can simultaneously access different blocks without coordination overhead, while reducing collision risk by isolating access to specific blocks rather than the entire shared memory region.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by giving each data block its own pointer fields and access characteristics. Different blocks can have different access patterns and locking requirements based on their specific usage. This local differentiation enables flexible distributed access where modules can freely access blocks they need while maintaining reliability through localized pointer-based access control at each block level.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20240283755A1Method for transmitting structured data
Publication Date: 2024.08.22 ROBERT BOSCH GMBH
  • US20240283755A1 patent drawing
  • US20240283755A1 patent drawing
  • US20240283755A1 patent drawing

AI summary

A method for transmitting structured data between a data-transmitting module and a data-receiving module. The structured data are structured as data blocks. The method uses a memory region for storing the data using the data-transmitting module and for reading the data using the data-receiving module to transmit data from the data-transmitting module to the data-receiving module. Data blocks in each case include a first field with an address, and at least one further field for storing links to further data blocks, so that a list of interlinked data blocks can be formed. An access data memory stores a start pointer to a first data block of the list and stores an end pointer to a last data block of the list.