Lock-Free Linked List for Distributed Data Transmission
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Reliability
If locks are used to prevent collisions in shared memory access, then data security is improved, but data processing performance deteriorates
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.
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.
2Reliability
If locks are used to prevent memory state corruption, then data integrity is improved, but processing speed deteriorates
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.
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.
3Adaptability or versatility
If distributed access to shared memory is enabled, then system flexibility is improved, but collision risk increases
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.
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.
Data Source
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.


