Multi-threaded Shared Memory Concurrency via Phase Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multithreaded environments, shared memory can lead to incomplete or corrupt data due to one thread reading while another is writing, necessitating protection of shared resources to ensure atomic updates across threads.

Innovation Solution

Implementing a method that allows all threads access to data during the initial phases of a write operation, blocking only during the commit phase to reduce cross-thread interference and prevent partial write results from being accessed, thereby ensuring atomicity and higher concurrency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional locking mechanisms are used to protect shared memory, then data integrity is maintained, but thread concurrency is reduced due to blocking during entire write operations

Engineering Contradiction:
Improvedata integrityVSAvoidthread concurrency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The write operation is segmented into three distinct phases: (1) a non-blocking phase where readers can access data while the writer prepares updates, (2) a commit phase where the writer atomically publishes results, and (3) a cleanup phase. This segmentation allows readers and writers to operate concurrently in different phases, improving thread concurrency while maintaining data integrity through the atomic commit mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The writer performs all data preparation and computation work in advance during the non-blocking phase, before other threads need to access the updated data. This preliminary action allows the actual memory update to be completed atomically and quickly, reducing the blocking time for other threads while ensuring data integrity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If blocking is applied during entire write operations, then partial write results are prevented from being accessed, but cross-thread interference increases

Engineering Contradiction:
Improveatomic updatesVSAvoidcross-thread interference
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The write operation is divided into phases with different blocking characteristics. During the preparation phase, no blocking occurs allowing maximum concurrency. During the commit phase, brief blocking is applied only when necessary to ensure atomicity. This segmented approach minimizes cross-thread interference while maintaining atomic update guarantees.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A write barrier or memory fence acts as an intermediary mechanism that coordinates between writers and readers. It provides a controlled point where blocking occurs to ensure atomicity, while allowing non-blocking access during other phases. This intermediary reduces overall cross-thread interference by concentrating synchronization only where absolutely necessary.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If full blocking is used during write operations, then data corruption is prevented, but system performance decreases due to reduced concurrency

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The write operation is segmented into phases where blocking is applied only during the critical commit phase rather than throughout the entire operation. This allows the majority of the write work to proceed without blocking other threads, improving system performance while maintaining data consistency through the atomic commit mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

All data preparation and validation is performed in advance during the non-blocking phase. This preliminary action ensures that when the commit phase occurs, only a brief blocking period is needed to publish the pre-validated data atomically, thereby maintaining data consistency while minimizing performance impact.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8161250B2Methods and systems for partially-transacted data concurrency
Publication Date: 2012.04.17 III HOLDINGS 10 LLC
  • US8161250B2 patent drawing
  • US8161250B2 patent drawing
  • US8161250B2 patent drawing

AI summary

Aspects of the present invention comprise systems and methods for protecting multi-threaded access to shared memory. Some aspects provide higher data concurrency than other methods. Some aspects relate to methods and systems that provide access to data for all threads during the first phases of one thread's write operation. Some aspects provide all threads access to a particular data unit until one thread enters the commit phase of the write operation. Some aspects manage a computing data resource such that, when a thread enters the commit phase, all pending read requests are fulfilled, all pending write requests are allowed to proceed to commit phase at which point they are blocked, all new read and write requests are blocked and the commit phase is completed by updating the target data and releasing the blocked requests.Some aspects provide improved concurrency by performing reduced cross-thread interference. Some aspects may be implemented at any level from hardware to high-level languages. Some aspects protect readers from accessing partial write results which avoids retry semantics and data corruption.