Aspected Interfaces for Synchronized Containers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data structures in concurrent/multi-threaded environments face performance and productivity issues due to coarse synchronization, with existing alternatives either offering reduced productivity or performance, requiring developers to choose between mixed interfaces with compromised performance and exclusive interfaces with reduced concurrency.

Innovation Solution

Implementing a data structure with exclusive, shared-read-only, and shared-read-write interfaces that vary synchronization semantics based on use cases, allowing developers to choose the appropriate interface for performance, productivity, or concurrency needs, ensuring synchronization overhead is minimized and conflicting use cases are not active simultaneously.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If coarse synchronization is used to achieve thread-safety, then reliability is improved, but speed deteriorates

Engineering Contradiction:
Improvethread-safetyVSAvoidperformance
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The interface is segmented into multiple specialized interfaces (exclusive interface, shared-read-only interface, shared-read-write interface) instead of using a single coarse-grained interface. Each interface type provides synchronization appropriate to its specific use case, allowing fine-grained control over synchronization overhead while maintaining thread-safety where needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The synchronization behavior is made dynamic by allowing the user to select different interface types based on the current operational context. The system adapts its synchronization strategy at runtime by choosing the appropriate interface (exclusive for writes, shared-read-only for reads, shared-read-write for concurrent access), optimizing performance while ensuring reliability.

Inventive Principle:
Principle #15Dynamics

2Speed

If mixed interface with fine grain synchronized and unsynchronized methods is used, then speed is improved, but productivity deteriorates

Engineering Contradiction:
ImproveperformanceVSAvoiddeveloper productivity
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

Different parts of the interface have different synchronization characteristics tailored to their specific needs. Read-only methods are provided without synchronization overhead when no writers are present, while write methods provide appropriate synchronization. This local optimization eliminates the need for developers to manually add synchronization to unsynchronized methods while maintaining high performance.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The interface automatically provides the appropriate level of synchronization based on the operation being performed and the current state of the data structure. The system self-manages synchronization requirements without requiring developer intervention, eliminating the productivity burden of manually synchronizing unsynchronized methods while maintaining performance.

Inventive Principle:
Principle #25Self-service

3Speed

If exclusive interface is used for high performance, then speed is improved, but adaptability deteriorates

Engineering Contradiction:
ImproveperformanceVSAvoidinterface versatility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The system provides a universal interface family that can serve multiple purposes. The exclusive interface provides high-performance access when needed, while shared-read-only and shared-read-write interfaces provide concurrent access capabilities. All three interface types operate on the same underlying data structure, making the system adaptable to different usage scenarios while maintaining high performance in each case.

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

Data Source

PatentUS9002897B2Aspected interfaces and methods for synchronized containers and other data structures
Publication Date: 2015.04.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9002897B2 patent drawing
  • US9002897B2 patent drawing
  • US9002897B2 patent drawing

AI summary

The subject disclosure is directed towards an object (e.g., an aspected vector, queue, map, stack and so forth) container having an exclusive interface, a shared-read-only interface and a shared-write (and read) interface to a common set of data. Use cases during runtime determine the appropriate interface to use. No locking is needed with methods of the exclusive interface or the read-only interface. The shared-write interface is configured to have only concurrency safe methods. Also described is blocking the use of other interfaces while one interface is in use, and the use of reference counter tracking to know when no concurrent readers and/or writers remain, to allow transitioning to use a different interface.