Blocking Bounding Wrapper for Thread-Safe Data Collections

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multithreaded and multiprocessor environments lack efficient mechanisms for implementing blocking and bounding semantics across arbitrary data collections, limiting their application in scenarios requiring thread-safe operations.

Innovation Solution

A membership interface and a blocking-bounding wrapper are introduced, which support blocking and bounding operations on any data collection that provides minimal interface methods, such as add and remove operations, allowing for thread-safe management of heterogeneous data collections without requiring prior knowledge of the data structure's type or implementation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If blocking and bounding semantics are implemented for thread-safe data collections, then thread safety and resource management are ensured, but the complexity of data structure implementation increases

Engineering Contradiction:
Improvethread safetyVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a blocking-bounding wrapper as an intermediary layer between the client code and the underlying data collection implementation. This wrapper handles all blocking and bounding logic, while the underlying data structures remain simple and unchanged. The wrapper translates high-level blocking/bounding operations into thread-safe operations on the underlying collection, thereby ensuring reliability without increasing the complexity of the core data structure implementations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the functionality into distinct layers: the blocking-bounding wrapper handles blocking and bounding semantics, while the underlying data collection implementations focus solely on their organizational structures (queue, stack, set, etc.). This segmentation allows each component to be independently implemented and tested, reducing overall system complexity while maintaining thread safety through the wrapper's coordination of access to the segmented components.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If blocking-bounding wrapper is applied to arbitrary data collections, then versatility and adaptability are improved, but the complexity of managing heterogeneous collections increases

Engineering Contradiction:
Improveapplicability to various data collectionsVSAvoidmanagement complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The blocking-bounding wrapper is designed as a universal interface that can wrap any data collection implementing a minimal interface (add, remove, contains methods). Rather than creating specialized wrappers for each data structure type (queue, stack, set, etc.), the same generic wrapper handles all types uniformly. This universal approach greatly enhances versatility while minimizing management complexity, as the wrapper adapts to different collection types through polymorphism rather than requiring type-specific logic.

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

3Reliability

If blocking operations are implemented on empty data collections, then thread-safe waiting is enabled, but execution time increases due to suspension

Engineering Contradiction:
Improvethread-safe operationVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The blocking-bounding wrapper enables continuous useful action by allowing threads to perform other work while waiting for data collection operations to complete. Instead of busy-waiting or blocking the entire thread, the wrapper uses synchronization mechanisms that allow waiting threads to be suspended and resumed efficiently, and allows other threads to continue productive work. This maintains thread-safe operations while minimizing the time loss associated with suspension through proper thread scheduling and synchronization.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentEP2300914B1Blocking and bounding wrapper for thread-safe data collections
Publication Date: 2016.06.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2300914B1 patent drawingFigure 1~2
  • EP2300914B1 patent drawingFigure 3~5
  • EP2300914B1 patent drawingFigure 6~8

AI summary

A membership interface provides procedure headings to add and remove elements of a data collection, without specifying the organizational structure of the data collection. A membership implementation associated with the membership interface provides thread-safe operations to implement the interface procedures. A blocking-bounding wrapper on the membership implementation provides blocking and bounding support separately from the thread-safety mechanism.