Concurrent Data Structure Read Elision via Safe Point Indicators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Concurrent data access synchronization mechanisms in computer systems often inhibit performance and scalability by serializing access to data, particularly when multiple execution contexts attempt to add or remove data from a collective set.

Innovation Solution

A concurrent data structure that allows read accesses to be unsynchronized and permits deletion only after all processing resources have reached a safe point, indicated by maintaining indicators that show they will not access the data structure, enabling efficient management of data structure elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronization mechanisms are used to protect concurrent data access, then data integrity is maintained, but performance and scalability are inhibited due to serialization of access

Engineering Contradiction:
Improvedata integrityVSAvoidperformance and scalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the data structure into multiple independent regions or elements that can be accessed concurrently without full serialization. By dividing the data structure into manageable units with individual protection mechanisms, multiple execution contexts can access different segments simultaneously, maintaining data integrity while improving parallelism and performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different synchronization strategies to different parts of the data structure based on their access patterns and criticality. Read-heavy regions use optimistic concurrency control, while write-heavy regions use more conservative synchronization. This localized approach optimizes performance for each region while maintaining overall data integrity.

Inventive Principle:
Principle #3Local quality

2Reliability

If locks are invoked for each data access to prevent corruption, then data corruption is prevented, but processing overhead increases and access is serialized

Engineering Contradiction:
Improvedata corruption preventionVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary validation and version checking before data access operations. By checking version numbers or timestamps beforehand, the system can determine whether synchronization is actually needed, avoiding the overhead of full locking mechanisms for read operations that don't require protection. This preliminary action reduces processing overhead while maintaining data corruption prevention.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces version numbers, timestamps, or metadata as intermediary elements that mediate between execution contexts and the actual data. These intermediaries provide information about data state without requiring direct locking, allowing the system to prevent data corruption through version validation while minimizing the overhead of actual synchronization operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If synchronization mechanisms are used to allow element removal, then safe deletion is ensured, but performance and scalability are inhibited

Engineering Contradiction:
Improvesafe deletionVSAvoidperformance and scalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent marks elements for deletion using version numbers or deletion flags before actual removal. Execution contexts check these markers to determine whether elements should be accessed or removed. This preliminary marking action allows safe deletion without requiring execution contexts to wait for locks, improving performance and scalability while ensuring that no executing context will access deleted elements.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses version numbers and deletion markers as feedback mechanisms to inform execution contexts about the state of data elements. When an element is marked for deletion, the version number is updated, and executing contexts can check this feedback to determine whether to proceed with access or wait for deletion. This feedback-based approach ensures safe deletion while maintaining high concurrency and performance.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9384063B2Eliding synchronization in a concurrent data structure
Publication Date: 2016.07.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9384063B2 patent drawing
  • US9384063B2 patent drawing
  • US9384063B2 patent drawing

AI summary

A concurrent data structure allows synchronization to be elided for read accesses. Processing resources that remove one or more elements of the concurrent data structure are allowed to delete the elements only after all other processing resources have reached a safe point. Each processing resource maintains an indicator that indicates whether the processing resource has reached as safe point (i.e., will not access the concurrent data structure). When the indicators indicate that all processing resources have reached a safe point, elements of the data structure may be deleted.